diff options
104 files changed, 45777 insertions, 0 deletions
diff --git a/release-notes/OTP-18.0.1.README.txt b/release-notes/OTP-18.0.1.README.txt new file mode 100644 index 0000000..f38b0e7 --- /dev/null +++ b/release-notes/OTP-18.0.1.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 18.0.1 +Git Tag: OTP-18.0.1 +Date: 2015-06-30 +Trouble Report Id: OTP-12859 +Seq num: seq12882 +System: OTP +Release: 18 +Application: erts-7.0.1 +Predecessor: OTP 18.0 + + Check out the git tag OTP-18.0.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. + + --------------------------------------------------------------------- + --- erts-7.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-7.0.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12859 Application(s): erts + Related Id(s): seq12882 + + Fix a rare hanging of the VM seen to happen just after + emulator start. Bug exists since R14. + + + Full runtime dependencies of erts-7.0.1: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.0.2.README.txt b/release-notes/OTP-18.0.2.README.txt new file mode 100644 index 0000000..578c147 --- /dev/null +++ b/release-notes/OTP-18.0.2.README.txt @@ -0,0 +1,115 @@ +Patch Package: OTP 18.0.2 +Git Tag: OTP-18.0.2 +Date: 2015-07-08 +Trouble Report Id: OTP-12889, OTP-12890, OTP-12892, OTP-12894, + OTP-12895, OTP-12896 +Seq num: seq12885 +System: OTP +Release: 18 +Application: erts-7.0.2, runtime_tools-1.9.1 +Predecessor: OTP 18.0.1 + + Check out the git tag OTP-18.0.2, 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. + + --------------------------------------------------------------------- + --- erts-7.0.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-7.0.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12889 Application(s): erts + Related Id(s): seq12885 + + A process could end up in an inconsistent half exited + state in the runtime system without SMP support. This + could occur if the processes was traced by a port that + it also was linked to, and the port terminated + abnormally while handling a trace message for the + process. + + This bug has always existed in the runtime system + without SMP support, but never in the runtime system + with SMP support. + + + OTP-12894 Application(s): erts + + Removed unnecessary copying of data when retrieving + corrected Erlang monotonic time. + + + OTP-12895 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Changed default OS monotonic clock source chosen at + build time. This in order to improve performance. The + behavior will now on most systems be that (both OS and + Erlang) monotonic time stops when the system is + suspended. + + If you prefer that monotonic time elapse during suspend + of the machine, you can pass the command line argument + --enable-prefer-elapsed-monotonic-time-during-suspend + to configure when building Erlang/OTP. The + configuration stage will try to find such a clock + source, but might not be able to find it. Note that + there might be a performance penalty associated with + such a clock source. + + + OTP-12896 Application(s): erts + + erlang:system_info(end_time) returned a faulty value on + 32-bit architectures. + + + --- Improvements and New Features --- + + OTP-12892 Application(s): erts + + The configure command line argument + --enable-gettimeofday-as-os-system-time has been added + which force usage of gettimeofday() for OS system time. + This will improve performance of os:system_time() and + os:timestamp() on MacOS X, at the expense of worse + accuracy, resolution and precision of Erlang monotonic + time, Erlang system time, and OS system time. + + + Full runtime dependencies of erts-7.0.2: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.9.1 --------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.9.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12890 Application(s): runtime_tools + Related Id(s): seq12885 + + The trace_file_drv did not handle EINTR correct which + caused it to fail when the runtime system received a + signal. + + + Full runtime dependencies of runtime_tools-1.9.1: erts-7.0, + kernel-3.0, mnesia-4.12, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.0.3.README.txt b/release-notes/OTP-18.0.3.README.txt new file mode 100644 index 0000000..7edfb29 --- /dev/null +++ b/release-notes/OTP-18.0.3.README.txt @@ -0,0 +1,52 @@ +Patch Package: OTP 18.0.3 +Git Tag: OTP-18.0.3 +Date: 2015-08-20 +Trouble Report Id: OTP-12941, OTP-12942 +Seq num: +System: OTP +Release: 18 +Application: erts-7.0.3 +Predecessor: OTP 18.0.2 + + Check out the git tag OTP-18.0.3, 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. + + --------------------------------------------------------------------- + --- erts-7.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-7.0.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12941 Application(s): erts + + Fixed a binary memory leak when printing to shell using + the tty driver (i.e. not -oldshell). + + + OTP-12942 Application(s): erts + + Fix a bug where the standard error port sometimes + crashes with eagain as the reason. + + + Full runtime dependencies of erts-7.0.3: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Steve Vinoski + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.0.README.txt b/release-notes/OTP-18.0.README.txt new file mode 100644 index 0000000..6ca39f1 --- /dev/null +++ b/release-notes/OTP-18.0.README.txt @@ -0,0 +1,1640 @@ +Major release : otp_src_18 +Build date : 2015-06-24 + +18 is a major new release of Erlang/OTP. +You can download the full source distribution from + + http://www.erlang.org/download/otp_src_18.0.tar.gz + http://www.erlang.org/download/otp_src_18.0.readme (this file) + +Note: To unpack the TAR archive you need a GNU TAR compatible program. + +For installation instructions please read the README that is part of +the distribution. + +The Windows binary distribution can be downloaded from + + http://www.erlang.org/download/otp_win32_18.0.exe + http://www.erlang.org/download/otp_win64_18.0.exe + + +On-line documentation can be found at http://www.erlang.org/doc/. +You can also download the complete HTML documentation or the Unix manual files + + http://www.erlang.org/download/otp_doc_html_18.0.tar.gz + http://www.erlang.org/download/otp_doc_man_18.0.tar.gz + +We also want to thank those that sent us patches, suggestions and bug reports, + +The OTP Team + +--- HIGHLIGHTS ---------------------------------------------------------- + + OTP-11997 == erts == + + The time functionality of Erlang has been extended. This both + includes a new API for time, as well as time warp modes which + alters the behavior of the system when system time changes. + You are strongly encouraged to use the new API instead of the + old API based on erlang:now/0. erlang:now/0 has been + deprecated since it is and forever will be a scalability + bottleneck. For more information see the Time and Time + Correction chapter of the ERTS User's Guide. + + Besides the API changes and time warp modes a lot of + scalability and performance improvements regarding time + management has been made internally in the runtime system. + Examples of such improvements are scheduler specific timer + wheels, scheduler specific BIF timer management, parallel + retrieval of monotonic time and system time on systems with + primitives that are not buggy. + + OTP-12029 == ssh == + + A new option 'preferred_algorithms' is available for + ssh:daemon and ssh:connect. + + This option defines the algorithms presented to the peer in + the algorithm negotiation phase of the ssh protocol. + + The default list can be obtained from the new function + ssh:default_algorithms/0. + + OTP-12218 == compiler debugger stdlib == + + Support variables as Map keys in expressions and patterns + + Erlang will accept any expression as keys in Map expressions + and it will accept literals or bound variables as keys in Map + patterns. + + OTP-12309 == erts stdlib == + + New function ets:take/2. Works the same as ets:delete/2 but + also returns the deleted object(s). + + OTP-12585 == erts == + + Use persistent hashmaps for large Maps + + Maps will use a persistent hashmap implementation when the + number of pairs in a Map becomes sufficiently large. The + change will occur when a Map reaches 33 pairs in size but + this limit might change in the future. + + The most significant impact for the user by this change is + speed, and to a lesser degree memory consumption and + introspection of Maps. Memory consumption size is probalistic + but lesser than gb_trees or dict for instance. Any other + impacts will be transparent for the user except for the + following changes. + + Semantics of Maps have changed in two incompatible ways + compared to the experimental implementation in OTP 17: + + -- Hashing of maps is done different by erlang:phash2/1,2, + erlang:phash/1 and erlang:hash/2. + + -- Comparing two maps with ==, /=, =<, <, >= and >, is done + different if the keys contain floating point numbers. + + OTP-12650 == erts == + + Optimization of timers internally in the VM. This include + process timers (receive ... after), port timers + (driver_set_timer()) as well as BIF timers + (erlang:send_after()/erlang:start_timer()). + + Each scheduler thread now has its own lock-free timer service + instead of one locked central service. This dramatically + improves performance of timer management on systems with a + large amount of schedulers and timers. + + The timer service internal data structure has also been + optimized to be able to handle more timers than before. That + is, each timer service is by its self able to handle more + timers without dramatic performance loss than the old + centralized timer service. + + The API of BIF timers has also been extended. Timeout values + are for example no longer limited to 32-bit integers. For + more information see the documentation of + erlang:start_timer/4, erlang:send_after/4, + erlang:cancel_timer/2, and erlang:read_timer/2. + + Characteristics impact: Calls to the synchronous versions of + erlang:cancel_timer(), and erlang:read_timer() may take + substantially longer time to complete than before. This occur + when the timer that is accessed is managed by a remote + scheduler. You typically want to use the new asynchronous + option in order to avoid blocking the calling process. + + OTP-12854 == otp == + + Change license text from Erlang Public License to Apache + Public License v2 + +--- POTENTIAL INCOMPATIBILITIES ----------------------------------------- + + OTP-11905 == erts == + + Fix issuing with spaces and quoting in the arguments when + using erlang:open_port spawn_executable on windows. The + behavior now mimics how unix works. This change implies a + backwards incompatibility for how spawn_executable works on + windows. + + OTP-11940 == erts == + + Add md5 and module entries to ?MODULE:module_info/0/1 and + remove obsolete entry 'import'. + + OTP-12099 == erts == + + erlang:function_exported(M, F, A) will now return true if + M:F/A refers to a BIF. + + OTP-12100 == compiler == + + The deprecated 'asm' option has been removed. + + OTP-12240 == erts kernel ssh == + + The internal group to user_drv protocol has been changed to + be synchronous in order to guarantee that output sent to a + process implementing the user_drv protocol is printed before + replying. This protocol is used by the standard_output device + and the ssh application when acting as a client. + + This change changes the previous unlimited buffer when + printing to standard_io and other devices that end up in + user_drv to 1KB. + + OTP-12292 == erts == + + The notice that a crashdump has been written has been moved + to be printed before the crashdump is generated instead of + afterwords. The wording of the notice has also been changed. + + OTP-12585 == erts == + + Use persistent hashmaps for large Maps + + Maps will use a persistent hashmap implementation when the + number of pairs in a Map becomes sufficiently large. The + change will occur when a Map reaches 33 pairs in size but + this limit might change in the future. + + The most significant impact for the user by this change is + speed, and to a lesser degree memory consumption and + introspection of Maps. Memory consumption size is probalistic + but lesser than gb_trees or dict for instance. Any other + impacts will be transparent for the user except for the + following changes. + + Semantics of Maps have changed in two incompatible ways + compared to the experimental implementation in OTP 17: + + -- Hashing of maps is done different by erlang:phash2/1,2, + erlang:phash/1 and erlang:hash/2. + + -- Comparing two maps with ==, /=, =<, <, >= and >, is done + different if the keys contain floating point numbers. + + OTP-12610 == erts == + + Scalability improvement for erlang:make_ref/0, and other + functionality that create references. Each scheduler now + manage its own set of references. By this no communication at + all is needed when creating references. + + Previous implementation generated a strictly monotonically + increasing sequence of references corresponding to creation + time on the runtime system instance. This is not the case + with current implementation. You can only expect reference to + be unique. The Erlang/OTP documentation has never mentioned + anything else but the uniqueness property, so this change is + fully compatible. The only reason we've marked this as a + potential incompatibility is since an early draft for an + Erlang specification mentions strict monotonicity as a + property. + + If you need to create data with a strict monotonicity + property use erlang:unique_integer([monotonic]). Do not use + the deprecated erlang:now(). + +--- otp ----------------------------------------------------------------- + + OTP-11306 The type identifier() is documented in the reference manual, + in section Types and Function Specifications. + + OTP-12854 Change license text from Erlang Public License to Apache + Public License v2 + +--- asn1-4.0 ------------------------------------------------------------ + + OTP-12395 Many bugs have been eliminated in the the ASN.1 compiler so + that it can now successfully compile many more ASN.1 + specifications. Error messages have also been improved. + + OTP-12765 The documentation for asn1ct:test/1,2,3 and asn1ct:value/2 + has been updated with information about the limitations of + the functions. + +--- common_test-1.11 ---------------------------------------------------- + + OTP-10446 Earlier there was no way to add optional parameters like + default-operation to an edit-config request sent with + ct_netconfc:edit_config/3,4, you had to use + ct_netconfc:send_rpc/2,3. For simplicity and completion, a + new optional argument, OptParams, is now added to the + edit_config function. + + OTP-10816 The status of an aborted test due to test suite compilation + error has changed from 'auto_skipped' to 'failed'. This + affects both the textual log file, event handling and CT hook + callbacks. The logging of compilation failures has also been + improved, especially in the case of multiple test suites + failing compilation. + + OTP-11962 When running OTP tests using the ts interface, it is now + possible to specify so called test categories per OTP + application. A test category is represented by a CT test + specification and defines an arbitrary subset of existing + test suites, groups and cases. Examples of test categories + are 'smoke' (smoke tests) and 'bench' (benchmarks). (Call + ts:help() for more info). Also, functions for reading terms + from the current test specification during test, + ct:get_testspec_terms/0 and ct:get_testspec_terms/1, have + been implemented. + + OTP-12421 Obsolete scripts and make file operations have been removed + and the installation chapter in the Common Test User's Guide + has been updated. + + OTP-12678 The 'keep_alive' interval has been reduced to 8 seconds, + which is two seconds shorter than the default 'idle_timeout' + value for ct_telnet:expect/3. This way, the telnet server + receives a NOP message (which might trigger an action) before + the operation times out. Also the TCP option 'nodelay' has + been enabled per default for all telnet connections, in order + to reduce the risk for communication timeouts. + + OTP-12684 When the ct_run program is executed without any flags, "-dir + ." is now used as default start flag. Similarly, the option + {dir,"."} is used by ct:run_test/1 if called with an empty + list. Also, the help text (ct_run -help) has been updated, as + well as the Running Tests chapter in the Common Test User's + Guide. + + OTP-12740 The Test Server source code parser (erl2html2) failed to + handle the macro tuple in the syntax tree returned by + epp_dodger. This error has been corrected. + + OTP-12809 New options to make it possible to specify ssh_port in a + .spec file: [{node_start, [{ssh_port, 9999}]}]. + + And also to specify additional ssh options like paths to + public-key files: [{node_start, [{ssh_opts, [{user_dir, + "/home/shrek/e2/"}]}]}]. + +--- compiler-6.0 -------------------------------------------------------- + + OTP-11978 The cerl and cerl_trees modules in the compiler application + are now documented. + + OTP-12100 The deprecated 'asm' option has been removed. + + OTP-12218 Support variables as Map keys in expressions and patterns + + Erlang will accept any expression as keys in Map expressions + and it will accept literals or bound variables as keys in Map + patterns. + + OTP-12253 Infer Map type information in beam_type compiler optimization + pass. + + OTP-12393 Compiler optimizations have been improved. + + OTP-12453 The compiler optimizes away building of terms that are never + actually used. As a result, the compiler in OTP 18 may + produce more warnings for terms that are built but not used + than the compiler in OTP 17. + + OTP-12497 Five undocumented functions in the module core_lib have been + deprecated and will be removed in the next major release. The + functions are: get_anno/{1,2}, is_literal/1, + is_literal_list/1, and literal_value. Use the appropriate + functions in the cerl module instead. + + OTP-12515 Using a map could incorrectly suppress warnings for unused + variables. + + OTP-12723 The compiler now properly reports unknown parse transforms. + That is, undef exceptions coming from the parse transform + itself is reported differently from the absence of the parse + transform. + + OTP-12758 Allow for 'creation of sub binary delayed' optimization if + maps instructions are in a clause. + + OTP-12774 Change some internal data structures to Maps in order to + speed up compilation time. Measured speed up is around + 10%-15%. + + OTP-12844 Fix beam_bool pass for Maps instruction get_map_elements + + Before beam_split the get_map_elements instruction is still + in blocks and the helper function in beam_jump did not + reflect this. + +--- cosEvent-2.2 -------------------------------------------------------- + + OTP-12687 Remove the usage of erlang:now() from all Corba applications + and use the new rand module instead of random. + +--- cosEventDomain-1.2 -------------------------------------------------- + + OTP-12687 Remove the usage of erlang:now() from all Corba applications + and use the new rand module instead of random. + +--- cosFileTransfer-1.2 ------------------------------------------------- + + OTP-12687 Remove the usage of erlang:now() from all Corba applications + and use the new rand module instead of random. + +--- cosNotification-1.2 ------------------------------------------------- + + OTP-12687 Remove the usage of erlang:now() from all Corba applications + and use the new rand module instead of random. + +--- cosProperty-1.2 ----------------------------------------------------- + + OTP-12687 Remove the usage of erlang:now() from all Corba applications + and use the new rand module instead of random. + +--- cosTime-1.2 --------------------------------------------------------- + + OTP-12687 Remove the usage of erlang:now() from all Corba applications + and use the new rand module instead of random. + +--- cosTransactions-1.3 ------------------------------------------------- + + OTP-12687 Remove the usage of erlang:now() from all Corba applications + and use the new rand module instead of random. + +--- crypto-3.6 ---------------------------------------------------------- + + OTP-12380 Use the EVP API for AES-CBC crypto to enables the use of + hardware acceleration for AES-CBC crypto on newer Intel CPUs + (AES-NI), among other platforms. + + OTP-12394 Enhance crypto:generate_key to calculate ECC public keys from + private key. + + OTP-12403 Add AES ECB block encryption. + + OTP-12733 Fix bug in crypto:generate_key for ecdh that could cause VM + crash for faulty input. + +--- debugger-4.1 -------------------------------------------------------- + + OTP-12218 Support variables as Map keys in expressions and patterns + + Erlang will accept any expression as keys in Map expressions + and it will accept literals or bound variables as keys in Map + patterns. + +--- dialyzer-2.8 -------------------------------------------------------- + + OTP-10280 The -dialyzer() attribute can be used for suppressing + warnings in a module by specifying functions or warning + options. It can also be used for requesting warnings in a + module. + + OTP-11445 The pre-defined types array(), dict(), digraph(), gb_set(), + gb_tree(), queue(), set(), and tid() have been removed. + + OTP-11851 A few type names that have been used for representing certain + predefined types can now be used for user-defined types. This + affects the types product/_, union/_, and range/2 as well as + tuple/N (N > 0), map/N (N > 0), atom/1, integer/1, binary/2, + record/_, and 'fun'/_. A consequence is that, for example, it + is no longer possible to refer to a record type with + record(r); instead the usual record notation, #r{}, is to be + used. + + OTP-11861 When implementing user-defined behaviours it is now possible + to specify optional callback functions. See OTP Design + Principles User's Guide, Sys and Proc_Lib, User-Defined + Behaviours, for details. + + OTP-12350 The translation of Erlang forms to the type representation + used by Dialyzer has been improved in several ways. The most + important change is that deeply nested records can be + handled. + + OTP-12493 Fix a bug that could cause bogus warnings for opaque types. + + In Erlang/OTP 18 two parameterized types declared in the same + module always result in a contradiction (none()) when + combined outside of the module where they are declared, + unless they have the same number of parameters. + + The behaviour is different from Erlang/OTP 17 where, for + instance, dict:dict() and dict:dict(_, _), which are both + opaque, can be combined outside of the dict module. + + In Erlang/OTP 18, dict:dict() and dict:dict(_, _) can still + be combined outside of the dict module. That has been made + possible by not declaring dict:dict() as opaque. + + OTP-12637 Update the PLT properly when a module is changed. (Thanks to + James Fish for the bug report, and to Stavros Aronis for + fixing the bug.) + + OTP-12682 Add two options to the Dialyzer: no_missing_calls suppresses + warnings about calls to missing or unexported functions; + unknown lets warnings about unknown functions or types affect + the exit status. See also dialyzer(3). + + OTP-12725 An argument of '*'/2 is not constraind if the other operand + can be zero. + + OTP-12750 Mention the option check_plt among the dialyzer:gui() + options. (Thanks to James Fish.) + + OTP-12779 By default, dialyzer will now cache native versions of + dialyzer modules to avoid having to re-compile them each time + dialyzer is started. Caching can be disabled using the option + --no_native_cache. + + OTP-12826 Fix a bug which could cause an infinite loop in Dialyzer. + +--- diameter-1.10 ------------------------------------------------------- + + OTP-12721 Fix decode of Grouped AVPs containing errors. + + RFC 6733 says this of Failed-AVP in 7.5: + + -- + + In the case where the offending AVP is embedded within a + Grouped AVP, the Failed-AVP MAY contain the grouped AVP, + which in turn contains the single offending AVP. The same + method MAY be employed if the grouped AVP itself is embedded + in yet another grouped AVP and so on. In this case, the + Failed-AVP MAY contain the grouped AVP hierarchy up to the + single offending AVP. This enables the recipient to detect + the location of the offending AVP when embedded in a group. + + It says this of DIAMETER_INVALID_AVP_LENGTH in 7.1.5: + + -- + + The request contained an AVP with an invalid length. A + Diameter message indicating this error MUST include the + offending AVPs within a Failed-AVP AVP. In cases where the + erroneous AVP length value exceeds the message length or is + less than the minimum AVP header length, it is sufficient to + include the offending AVP header and a zero filled payload of + the minimum required length for the payloads data type. If + the AVP is a Grouped AVP, the Grouped AVP header with an + empty payload would be sufficient to indicate the offending + AVP. In the case where the offending AVP header cannot be + fully decoded when the AVP length is less than the minimum + AVP header length, it is sufficient to include an offending + AVP header that is formulated by padding the incomplete AVP + header with zero up to the minimum AVP header length. + + The AVPs placed in the errors field of a diameter_packet + record are intended to be appropriate for inclusion in a + Failed-AVP, but neither of the above paragraphs has been + followed in the Grouped case: the entire faulty AVP + (non-faulty components and all) has been included. This made + it difficult to identify the actual faulty AVP in all but + simple cases. + + The decode is now adapted to the RFC, and implements the + suggested single faulty AVP, nested in as many Grouped + containers as required. + + OTP-12768 Fix SCTP problems on Solaris. + + The allocation of association ids in Solaris was in conflict + with an assumption made in diameter_sctp, resulting in + failures when accepting multiple peer connections. + + OTP-12845 Change license text from Erlang Public License to Apache + Public License v2 + + OTP-12851 Fix start order of alternate transports. + + A transport configured with diameter:add_transport/2 can be + passed multiple transport_module/transport_config tuples in + order to specify alternate configuration, modules being + attempted in order until one succeeds. This is primarily for + the connecting case; for example, to allow a transport to be + configured to first attempt connection over SCTP, and then + TCP in case SCTP fails. Multiple module tuples can be paired + with a single config tuple, but in this case the start order + was reversed relative to the order in which the modules were + specifed. + +--- edoc-0.7.17 --------------------------------------------------------- + + OTP-12431 Remove functionality related to packages + +--- eldap-1.2 ----------------------------------------------------------- + + OTP-12282 Support added for LDAP Password Modify Extended Operation + (RFC 3062). Thanks to danielwhite. + +--- erl_docgen-0.4 ------------------------------------------------------ + + OTP-12722 Add possibility to add extra information on documentation + front pages. + +--- erl_interface-3.8 --------------------------------------------------- + + OTP-12801 Do not accept Nan and Infinity values + + Erlang does not accept these values, so we return an error in + the C interface rather than letting them through to the + Erlang VM, which rejects the message with a somewhat cryptic + "bad external term". + +--- erts-7.0 ------------------------------------------------------------ + + OTP-11905 Fix issuing with spaces and quoting in the arguments when + using erlang:open_port spawn_executable on windows. The + behavior now mimics how unix works. This change implies a + backwards incompatibility for how spawn_executable works on + windows. + + OTP-11939 Fix global call trace when hipe compiled code call beam + compiled functions. Tracing of beam functions should now + alway work regardless who the caller is. + + OTP-11940 Add md5 and module entries to ?MODULE:module_info/0/1 and + remove obsolete entry 'import'. + + OTP-11941 Debug function erlang:display/1 shows content of binaries and + bitstrings, not only the length. + + OTP-11974 Correct cache alignment for ETS write_concurrency locks to + improve performance by reduced false sharing. May increase + memory footprint for tables with write_concurrency. + + OTP-11997 The time functionality of Erlang has been extended. This both + includes a new API for time, as well as time warp modes which + alters the behavior of the system when system time changes. + You are strongly encouraged to use the new API instead of the + old API based on erlang:now/0. erlang:now/0 has been + deprecated since it is and forever will be a scalability + bottleneck. For more information see the Time and Time + Correction chapter of the ERTS User's Guide. + + Besides the API changes and time warp modes a lot of + scalability and performance improvements regarding time + management has been made internally in the runtime system. + Examples of such improvements are scheduler specific timer + wheels, scheduler specific BIF timer management, parallel + retrieval of monotonic time and system time on systems with + primitives that are not buggy. + + OTP-12099 erlang:function_exported(M, F, A) will now return true if + M:F/A refers to a BIF. + + OTP-12151 New BIF: erlang:get_keys/0, lists all keys associated with + the process dictionary. Note: erlang:get_keys/0 is + auto-imported. + + OTP-12232 Make distributed send of large messages yield to improve + real-time characteristics. + + OTP-12236 Use high accuracy poll timeouts + + Where available, use poll/select API's that can handle time + resolutions less than 1ms. In the cases where such API's are + not available the timeout is rounded up to the nearest ms. + + OTP-12239 All possibly blocking operations in the fd/spawn and terminal + driver have been converted to non-blocking operations. Before + this fix it was possible for the VM to be blocked for a long + time if the entity consuming stdout/stderr did not consume it + fast enough. + + OTP-12240 The internal group to user_drv protocol has been changed to + be synchronous in order to guarantee that output sent to a + process implementing the user_drv protocol is printed before + replying. This protocol is used by the standard_output device + and the ssh application when acting as a client. + + This change changes the previous unlimited buffer when + printing to standard_io and other devices that end up in + user_drv to 1KB. + + OTP-12254 The previously introduced "eager check I/O" feature is now + enabled by default. + + Eager check I/O can be disabled using the erl command line + argument: +secio false + + Characteristics impact compared to previous default: + + -- Lower latency and smoother management of externally + triggered I/O operations. + + -- A slightly reduced priority of externally triggered I/O + operations. + + OTP-12270 Properly support maps in match_specs + + OTP-12292 The notice that a crashdump has been written has been moved + to be printed before the crashdump is generated instead of + afterwords. The wording of the notice has also been changed. + + OTP-12309 New function ets:take/2. Works the same as ets:delete/2 but + also returns the deleted object(s). + + OTP-12366 Tracing with cpu_timestamp option has been enabled on Linux. + + OTP-12376 ets:info/1,2 now contains information about whether + write_concurrency or read_concurrency is enabled. + + OTP-12377 Crashdumps have been expanded to include: + + -- Stack trace of currently running process (including + processes that are being garbage collected) + + -- Data about the state of the erts schedulers + + -- Extended statistics about ets tables of the types; set, + bag or dublicate_bag. + + -- All configurable options for ets tables + + For more detailed information see How to interpret the Erlang + crash dumps in the ERTS User's Guide. + + OTP-12383 Improved usage of gcc's builtins for atomic memory access. + These are used when no other implementation of atomic memory + operations is available. For example, when compiling for ARM + when libatomic_ops is not available. + + The largest improvement will be seen when compiling with a + gcc with support for the __atomic_* builtins (using a gcc of + at least version 4.7), but also when only the legacy __sync_* + builtins are available (using a gcc of at least version 4.1) + an improvement can be seen. + + For more information see the "Atomic Memory Operations and + the VM" section of $ERL_TOP/HOWTO/INSTALL.md. + + OTP-12411 Introduce math:log2/1 function to math module. + + OTP-12492 The documentation of the Abstract Format (in the ERTS User's + Guide) has been updated with types and specification. (Thanks + to Anthony Ramine.) + + The explicit representation of parentheses used in types of + the abstract format has been removed. Instead the new + functions erl_parse:type_inop_prec() and + erl_parse:type_preop_prec() can be used for inserting + parentheses where needed. + + OTP-12508 Remove perfctr support + + Development of perfctr in the linux kernel ceased in 2010. + The perfctr support code in the Erlang VM is thus effectively + dead code and therefor removed. + + OTP-12548 zlib:inflateChunk/2 has been added. It works like + zlib:inflate/2, but decompresses no more data than will fit + in the buffer configured by zlib:setBufSize/2. + + OTP-12554 Add missing overhead for offheap binaries created from + external format. This fix can improve the garbage collection + of large binaries originating from binary_to_term or messages + from remote nodes. + + OTP-12555 Use linear search for small select_val arrays + + OTP-12563 New BIF ets:update_counter/4 with a default object as + argument, which will be inserted in the table if the key was + not found. + + OTP-12584 Export missing types from zlib module + + OTP-12585 Use persistent hashmaps for large Maps + + Maps will use a persistent hashmap implementation when the + number of pairs in a Map becomes sufficiently large. The + change will occur when a Map reaches 33 pairs in size but + this limit might change in the future. + + The most significant impact for the user by this change is + speed, and to a lesser degree memory consumption and + introspection of Maps. Memory consumption size is probalistic + but lesser than gb_trees or dict for instance. Any other + impacts will be transparent for the user except for the + following changes. + + Semantics of Maps have changed in two incompatible ways + compared to the experimental implementation in OTP 17: + + -- Hashing of maps is done different by erlang:phash2/1,2, + erlang:phash/1 and erlang:hash/2. + + -- Comparing two maps with ==, /=, =<, <, >= and >, is done + different if the keys contain floating point numbers. + + OTP-12610 Scalability improvement for erlang:make_ref/0, and other + functionality that create references. Each scheduler now + manage its own set of references. By this no communication at + all is needed when creating references. + + Previous implementation generated a strictly monotonically + increasing sequence of references corresponding to creation + time on the runtime system instance. This is not the case + with current implementation. You can only expect reference to + be unique. The Erlang/OTP documentation has never mentioned + anything else but the uniqueness property, so this change is + fully compatible. The only reason we've marked this as a + potential incompatibility is since an early draft for an + Erlang specification mentions strict monotonicity as a + property. + + If you need to create data with a strict monotonicity + property use erlang:unique_integer([monotonic]). Do not use + the deprecated erlang:now(). + + OTP-12613 Enable different abort signal from heart + + By using environment variable HEART_KILL_SIGNAL, heart can + now use a different signal to kill the old running Erlang. + + By default the signal is SIGKILL but SIGABRT may also be used + by setting environment variable: HEART_KILL_SIGNAL=SIGABRT + + OTP-12641 Ensure hashing of zero is consistent + + Erlang treats positive and negative zero as equal: + + true = 0.0 =:= 0.0/-1 + + However, Erlangs hash functions: hash, phash and phash2 did + not reflect this behaviour. The hash values produced by the + different hash functions would not be identical for positive + and negative zero. + + This change ensures that hash value of positive zero is + always produced regardless of the signedness of the zero + float, i.e., + + true = erlang:phash2(0.0) =:= erlang:phash2(0.0/-1) + + OTP-12646 Update autconf to latest version 2015-03-04 + + OTP-12650 Optimization of timers internally in the VM. This include + process timers (receive ... after), port timers + (driver_set_timer()) as well as BIF timers + (erlang:send_after()/erlang:start_timer()). + + Each scheduler thread now has its own lock-free timer service + instead of one locked central service. This dramatically + improves performance of timer management on systems with a + large amount of schedulers and timers. + + The timer service internal data structure has also been + optimized to be able to handle more timers than before. That + is, each timer service is by its self able to handle more + timers without dramatic performance loss than the old + centralized timer service. + + The API of BIF timers has also been extended. Timeout values + are for example no longer limited to 32-bit integers. For + more information see the documentation of + erlang:start_timer/4, erlang:send_after/4, + erlang:cancel_timer/2, and erlang:read_timer/2. + + Characteristics impact: Calls to the synchronous versions of + erlang:cancel_timer(), and erlang:read_timer() may take + substantially longer time to complete than before. This occur + when the timer that is accessed is managed by a remote + scheduler. You typically want to use the new asynchronous + option in order to avoid blocking the calling process. + + OTP-12655 Ensure NIF term creation disallows illegal floating point + values and too long atoms. Such values will cause a NIF to + throw badarg exception when it returns. + + OTP-12656 Fixed building of Map results from match_specs + + A faulty "box-value" entered into the heap which could cause + a segmentation fault in the garbage collector if it was + written on a heap fragment. + + OTP-12667 Fix hipe bug when matching a "writable" binary. The bug has + been seen to sometimes cause a failed binary matching of a + correct utf8 character, but other symptoms are also possible. + + OTP-12685 Keep dirty schedulers from waking other schedulers. + + OTP-12690 Specialize instructions from common assembler patterns + + Specialize common instructions of rem, band, minus and plus + in the beam loader. This will reduce the number of fetches + and thus lessen the instruction dispatch pressure during + runtime and speed up those operations in some common cases. + + Specialize move patterns from x-registers to the stack with a + new move_window instruction. This change will reduce + instruction dispatch pressure. + + OTP-12693 Fix cross compilation for Android. + + OTP-12706 Fix incorrect use of autoconf macro AC_EGREP_CPP, which could + cause faulty configuration if run from a path containing the + string 'yes'. + + OTP-12715 Minimal Java version is now 1.6 + + OTP-12717 Disable floating point exceptions if the VM is compiled by + clang/llvm. This is a known long-standing problem in + clang/llvm. + + OTP-12720 Fix bug in file:sendfile for FreeBSD causing not the entire + file to be sent. + + OTP-12735 Send format and args on process exit to error_logger + + Previously, the emulator would generate a whole string with + values and call the error_logger passing "~s~n". This changes + it to a format string containing ~p with the respective + values as arguments. + + OTP-12751 Fix the broken Android support in erl_child_setup.c + + OTP-12755 Map error logger warnings to warning messages by default. + + OTP-12761 Configure architecture ppc64le architecture as a ppc64 + + OTP-12766 Faulty statistics reported by the fix_alloc allocator. + + OTP-12770 Add function enif_raise_exception to allow a NIF to raise an + error exception with any type of reason. + + OTP-12771 Fix two erts_snprintf() calls to correct sizes. + + - run_erl.c (ose): Use the size of the signal type, not its + pointer. - erl_node_tables.c: Use the size of the _BUFFER in + erts_snprintf() to make sure we can use the full space. + + OTP-12777 Optimized node table statistics retrieval. + + OTP-12781 Map beam error logger warnings to warning messages by + default. Previously these messages were mapped to the error + channel by default. + + OTP-12797 gen_tcp:shutdown/2 is now asynchronous + + This solves the following problems with the old + implementation: + + It doesn't block when the TCP peer is idle or slow. This is + the expected behaviour when shutdown() is called: the caller + needs to be able to continue reading from the socket, not be + prevented from doing so. + + It doesn't truncate the output. The current version of + gen_tcp:shutdown/2 will truncate any outbound data in the + driver queue after about 10 seconds if the TCP peer is idle + of slow. Worse yet, it doesn't even inform anyone that the + data has been truncated: 'ok' is returned to the caller; and + a FIN rather than an RST is sent to the TCP peer. + + OTP-12802 Introduced delayed node table GC. This in order to avoid + oscillation of entries in and out of the tables. The + oscillation caused unnecessary lock contention on the table + locks. The delay length can be set by passing the +zdntgc + command line argument. + + Characteristics impact: The tables can grow to very large + sizes with unused entries if the node is get huge amounts of + short lived connections from other nodes. This problem can be + alleviated by shortening the length of the delay using the + +zdntgc command line argument. + + OTP-12812 Delayed memory allocations could be delayed an unnecessarily + long time. + + OTP-12817 Make sure that timeouts on a pool of acceptors are released + in the correct order. + + OTP-12820 Fix segmentation fault in module_info for deleted modules + + OTP-12821 Fix garbage collection of literals in code purge + + During code purging and check_process_code, the checking of + the binary reference embedded in the match binary state was + omitted for the tracing tests. This would cause the binary + match state to reference deallocated memory. + + OTP-12840 A bug has been corrected for gen_tcp:close so when + {linger,{true,0}} is in effect it does not wait for data in + the driver queue to transfer out before closing the port. Bug + fix by Rory Byrne. + + OTP-12842 Improved implementation of erlang:statistics(io) in order to + reduce contention between schedulers. + + Characteristics impact: The actual call to + erlang:statistics(io) takes longer time to complete, but the + overall impact on the system is improved. + + OTP-12843 There are many cases where user code needs to be able to + distinguish between a socket that was closed normally and one + that was aborted. Setting the option {show_econnreset, true} + enables the user to receive ECONNRESET errors on both active + and passive sockets. + + OTP-12849 Do not preallocate too large event pool + + A default pool size of 4000 is too excessive for the common + case. This corresponds directly to the number of threads in + the system. Change ERTS_TS_EV_ALLOC_DEFAULT_POOL_SIZE to + 2048. Change ERTS_TS_EV_ALLOC_POOL_SIZE to 32. + + OTP-12855 The documentation of the driver callback start() erroneously + stated that a return value of ERL_DRV_ERROR_ERRNO caused the + error value to be passed via erl_errno when it should have + been errno. + +--- et-1.5.1 ------------------------------------------------------------ + + OTP-12780 The et application must continue to use erlang:now/0 in order + to obtain timestamps that are consistent with timestamps + obtained from tracing. The application has been updated to + suppress the warning for erlang:now/0. + +--- eunit-2.2.10 -------------------------------------------------------- + + OTP-11660 The eunit application is now unicode safe. + +--- gs-1.6 -------------------------------------------------------------- + + OTP-12845 Change license text from Erlang Public License to Apache + Public License v2 + +--- hipe-3.12 ----------------------------------------------------------- + + OTP-12666 Fix a minor bug in the handling of opaque types. + + OTP-12667 Fix hipe bug when matching a "writable" binary. The bug has + been seen to sometimes cause a failed binary matching of a + correct utf8 character, but other symptoms are also possible. + + OTP-12794 Allow use of complete interface of cerl_pmatch module + + OTP-12816 Optimizations and code cleanup in hipe code loader. + +--- ic-4.4 -------------------------------------------------------------- + + OTP-12845 Change license text from Erlang Public License to Apache + Public License v2 + +--- inets-6.0 ----------------------------------------------------------- + + OTP-11845 Fix race condition in httpc. If the socket is closed by the + peer do not try to close it again. + + OTP-12156 Remove Server Side Include support from inets, as this is an + old technic that has security issues and was not well tested. + + OTP-12362 Avoid process leak by gracefully terminating httpc request + handler process when send operation fails. + + OTP-12674 To enable the HTTP server to run in a virtualized + environment, where there can be more that one server that has + the same ip-address and port, we add a new option profile. + + OTP-12798 Let gen_tcp:controlling_process/2 and inet_sctp:connect/[45] + propagate prim_inet:setopt/3 errors instead of having them + generate badmatch exceptions. + + OTP-12803 httpc: Fix implementation of gracefull shudown to work as + intended for keep alive connections not using pipelining. + + OTP-12822 Correct handling of proxy options when using persistent + connections. + +--- jinterface-1.6 ------------------------------------------------------ + + OTP-12333 Reformat the sources for JInterface uniformly and according + to the standard Java style guidelines. Provide description of + the rules applied in Eclipse format (for other editors one + can check the settings against these). + + In short, the formatting style is: * indentation uses only + spaces; each level is 4 positions * no trailing whitespace * + mostly default Java style formatting (any difference is + minor) * always use {} blocks * use 'final' as much as + possible + + OTP-12686 Add basic transport factory implementation. This makes + possible creating connections between nodes using ssh + channels for example. + + OTP-12691 Add Jinterface generic match and bind methods to provide low + level interface base methods sufficient for variety of higher + level pattern matching/variable binding implementations. + + OTP-12715 Minimal Java version is now 1.6 + + OTP-12746 Remove extra @param in javadoc as this gives an error when + building the docs in java 1.8 + +--- kernel-4.0 ---------------------------------------------------------- + + OTP-12144 Fix error handling in file:read_line/1 for Unicode contents. + + OTP-12151 New BIF: erlang:get_keys/0, lists all keys associated with + the process dictionary. Note: erlang:get_keys/0 is + auto-imported. + + OTP-12240 The internal group to user_drv protocol has been changed to + be synchronous in order to guarantee that output sent to a + process implementing the user_drv protocol is printed before + replying. This protocol is used by the standard_output device + and the ssh application when acting as a client. + + This change changes the previous unlimited buffer when + printing to standard_io and other devices that end up in + user_drv to 1KB. + + OTP-12342 Introduce os:getenv/2 which is similar to os:getenv/1 but + returns the passed default value if the required environment + variable is undefined. + + OTP-12564 The inflateInit/2 and deflateInit/6 functions now accepts a + WindowBits argument equal to 8 and -8. + + OTP-12673 It is now possible to paste text in JCL mode (using Ctrl-Y) + that has been copied in the previous shell session. Also a + bug that caused the JCL mode to crash when pasting text has + been fixed. + + OTP-12755 Map error logger warnings to warning messages by default. + + OTP-12773 Ensure that each segment of an IPv6 address when parsed from + a string has a maximum of 4 hex digits + + OTP-12781 Map beam error logger warnings to warning messages by + default. Previously these messages were mapped to the error + channel by default. + + OTP-12797 gen_tcp:shutdown/2 is now asynchronous + + This solves the following problems with the old + implementation: + + It doesn't block when the TCP peer is idle or slow. This is + the expected behaviour when shutdown() is called: the caller + needs to be able to continue reading from the socket, not be + prevented from doing so. + + It doesn't truncate the output. The current version of + gen_tcp:shutdown/2 will truncate any outbound data in the + driver queue after about 10 seconds if the TCP peer is idle + of slow. Worse yet, it doesn't even inform anyone that the + data has been truncated: 'ok' is returned to the caller; and + a FIN rather than an RST is sent to the TCP peer. + + OTP-12843 There are many cases where user code needs to be able to + distinguish between a socket that was closed normally and one + that was aborted. Setting the option {show_econnreset, true} + enables the user to receive ECONNRESET errors on both active + and passive sockets. + +--- megaco-3.18 --------------------------------------------------------- + + OTP-12762 The runtime dependencies in the application resource file + have been updated. + +--- mnesia-4.13 --------------------------------------------------------- + + OTP-12481 Make Mnesia DCD dump behavior at start up optional, when + turned off mnesia loads large disc_copies tables faster. + + OTP-12714 Mnesia's dirty functions did not always exit with {aborted, + Reason} as documented when an error occurred. + + OTP-12807 Consider file descriptors limits (emfile) as a fatal error + and do not delete log files. Previously the error was seen as + a corrupted disk and the log files deleted which caused data + loss. + +--- observer-2.1 -------------------------------------------------------- + + OTP-12363 Added display of new crashdump information available in + crashdumps from Erlang/OTP 18. + + OTP-12401 Show run queue status in crashdump viewer. + + OTP-12504 Added the possibility to view sasl log entries for processes. + + OTP-12631 Add memory allocator usage and utilization graphs. + + OTP-12819 Don't refresh observer table view if there was no change + +--- odbc-2.11 ----------------------------------------------------------- + + OTP-12845 Change license text from Erlang Public License to Apache + Public License v2 + +--- orber-3.8 ----------------------------------------------------------- + + OTP-12687 Remove the usage of erlang:now() from all Corba applications + and use the new rand module instead of random. + +--- os_mon-2.4 ---------------------------------------------------------- + + OTP-12730 cpu_sup should use native sysctl/libkvm calls on BSD + + This avoids forking off with os:cmd every time we just want + to collect the load averages. riak does this every second, + which results in a lot of unnecessary load. + + OTP-12796 Implement native cpu_sup:util/0,1 for FreeBSD + +--- ose-1.1 ------------------------------------------------------------- + + OTP-12845 Change license text from Erlang Public License to Apache + Public License v2 + +--- otp_mibs-1.1 -------------------------------------------------------- + + OTP-12845 Change license text from Erlang Public License to Apache + Public License v2 + +--- parsetools-2.1 ------------------------------------------------------ + + OTP-12271 The new -dialyzer() attribute is used for suppressing + Dialyzer warnings in generated code. + +--- percept-0.8.11 ------------------------------------------------------ + + OTP-12662 Fix http server configuration + +--- public_key-1.0 ------------------------------------------------------ + + OTP-12110 public_key: Remove legacy switch compact_bit_string + + E.i bitstrings will not be decode as {Unused, Binary}, they + are now Erlang bitstrings. + + Also the compact_bit_string implies the legacy_erlang_types + switch So removing the switch will also make OCTET STRING + values be represented as binaries. + + Undecoded open type will now be wrapped in a asn1_OPENTYPE + tuple. + + This will change some values in records returned by the + public_key API making this change a potentiall + incompatibility. + +--- reltool-0.7 --------------------------------------------------------- + + OTP-12845 Change license text from Erlang Public License to Apache + Public License v2 + +--- runtime_tools-1.9 --------------------------------------------------- + + OTP-12845 Change license text from Erlang Public License to Apache + Public License v2 + +--- sasl-2.5 ------------------------------------------------------------ + + OTP-11540 The undocumented upgrade instruction + <code>{remove_module,PrePurge,PostPurge,DepMods}</code> is + removed. This instruction was added for symmetry reasons in + OTP R7B, but was never documented or tested. + + The existing instruction + <code>{add_module,Mod,DepMods}</code> is now documented, and + the complementing instruction + <code>{delete_module,Mod,DepMods}</code> is added. + + OTP-12778 The sasl_error_logger configuration parameter now supports + the value {file,FileName,Modes} which allows the log file to + be opened in other mode than write (for example, append + mode). + +--- snmp-5.2 ------------------------------------------------------------ + + OTP-12762 The runtime dependencies in the application resource file + have been updated. + +--- ssh-4.0 ------------------------------------------------------------- + + OTP-11697 Better usage of binary matching in ssh_auth.erl and + ssh_message.erl + + OTP-12029 A new option 'preferred_algorithms' is available for + ssh:daemon and ssh:connect. + + This option defines the algorithms presented to the peer in + the algorithm negotiation phase of the ssh protocol. + + The default list can be obtained from the new function + ssh:default_algorithms/0. + + OTP-12240 The internal group to user_drv protocol has been changed to + be synchronous in order to guarantee that output sent to a + process implementing the user_drv protocol is printed before + replying. This protocol is used by the standard_output device + and the ssh application when acting as a client. + + This change changes the previous unlimited buffer when + printing to standard_io and other devices that end up in + user_drv to 1KB. + + OTP-12648 If ssh_connection:subsystem/4 fails we terminates gracefully. + + OTP-12649 Included test of the 'e' and 'f' parameters in diffie-hellman + key exchange as specified in rfc 4253 section 8. + + OTP-12675 To enable the ssh daemon to run in a virtualized environment, + where there can be more that one server that has the same + ip-address and port, we add a new option profile. + + OTP-12676 Upgrade test suite added. + + OTP-12692 Fixes the bug that once the rekey_limit bytes (by default, + 1GB) had been transmitted the connection was rekeyed every + minute, not after the next transferred 'rekey_limit' chunk. + + Thanks to Simon Cornish for the report and the fix! + + OTP-12708 Fixes a bug that causes an SFTP connection to always fail + when {timeout, Timeout} option is used with + ssh_sftp:start_channel. + + Thanks to Simon Cornish + + OTP-12760 Fix various ssh key exchange problems. + + Thanks to Simon Cornish + + OTP-12786 Testcase improvements and corrections: + + * Add testcases for the disconnectfun option on both server + and client sides + + * Timeout testcases adjusted for slow machines where they + sometimes failed + + OTP-12788 The options system_dir and user_dir assumes that the value is + a path to a directory which is readable. This is now checked + early, so ssh:daemon and ssh:connect will fail with an error + message immediately. + + OTP-12789 The option disconnectfun can now be used both on the client + and server side. + + OTP-12790 A daemon now checks that a client doesn't try to authorize + with methods not in the option auth_methods. + + OTP-12811 Disconnectfun now triggers on all disconnects. + + OTP-12813 A new option unknown_msgfun/2 for ssh:connect and ssh:daemon + for handling unknown messages. With the option it is possible + to intercept before an INFO log message is generated. + + One usage is to filter out messages that are not wanted in + the error logger as info reports. An example of such a + message is the 'etimedout' tcp error message that will be + received if a connection has keep_alive and the peer is + restarted. + +--- ssl-7.0 ------------------------------------------------------------- + + OTP-10362 Add new API functions to handle CRL-verification + + OTP-12390 Remove default support for SSL-3.0, due to Poodle vunrability + in protocol specification. + + Add padding check for TLS-1.0 to remove Poodle vunrability + from TLS 1.0, also add the option padding_check. This option + only affects TLS-1.0 connections and if set to false it + disables the block cipher padding check to be able to + interoperate with legacy software. + + Remove default support for RC4 cipher suites, as they are + consider too weak. + + OTP-12580 Add support for TLS ALPN (Application-Layer Protocol + Negotiation) extension. + + OTP-12670 Ignore signature_algorithm (TLS 1.2 extension) sent to TLS + 1.0 or TLS 1.1 server + + OTP-12736 Add SNI (Server Name Indication) support for the server side. + + OTP-12799 Improve error handling in TLS distribution module to avoid + lingering sockets. + + OTP-12815 Add option {client_renegotiation, boolean()} option to the + server-side of the SSL application. + + OTP-12829 Gracefully ignore proprietary hash_sign algorithms + +--- stdlib-2.5 ---------------------------------------------------------- + + OTP-11043 Allow maps for supervisor flags and child specs + + Earlier, supervisor flags and child specs were given as + tuples. While this is kept for backwards compatibility, it is + now also allowed to give these parameters as maps, see + sup_flags and child_spec. + + OTP-11173 A new system message, terminate, is added. This can be sent + with sys:terminate/2,3. If the receiving process handles + system messages properly it will terminate shortly after + receiving this message. + + The new function proc_lib:stop/1,3 utilizes this new system + message and monitors the receiving process in order to + facilitate a synchronous stop mechanism for 'special + processes'. + + proc_lib:stop/1,3 is used by the following functions: + + -- gen_server:stop/1,3 (new) + + -- gen_fsm:stop/1,3 (new) + + -- gen_event:stop/1,3 (modified to be synchronous) + + -- wx_object:stop/1,3 (new) + + OTP-11907 Remove the pg module, which has been deprecated through + OTP-17, is now removed from the STDLIB application. This + module has been marked experimental for more than 15 years, + and has largely been superseded by the pg2 module from the + Kernel application. + + OTP-12151 New BIF: erlang:get_keys/0, lists all keys associated with + the process dictionary. Note: erlang:get_keys/0 is + auto-imported. + + OTP-12158 Fix handling of single dot in filename:join/2 + + The reference manual says that filename:join(A,B) is + equivalent to filename:join([A,B]). In some rare cases this + turns out not to be true. For example: + + filename:join("/a/.","b") -> "/a/./b" vs + filename:join(["/a/.","b"]) -> "/a/b". + + This has been corrected. A single dot is now only kept if it + occurs at the very beginning or the very end of the resulting + path. + + OTP-12167 Add three new functions to io_lib-- scan_format/2, + unscan_format/1, and build_text/1-- which expose the parsed + form of the format control sequences to make it possible to + easily modify or filter the input to io_lib:format/2. This + can e.g. be used in order to replace unbounded-size control + sequences like ~w or ~p with corresponding depth-limited ~W + and ~P before doing the actual formatting. + + OTP-12183 The undocumented option generic_debug for gen_server has been + removed. + + OTP-12186 erl_lint:icrt_export/4 has been rewritten to make the code + really follow the scoping rules of Erlang, and not just in + most situations by accident. + + OTP-12195 Introduce the erl_anno module, an abstraction of the second + element of tokens and tuples in the abstract format. + + OTP-12218 Support variables as Map keys in expressions and patterns + + Erlang will accept any expression as keys in Map expressions + and it will accept literals or bound variables as keys in Map + patterns. + + OTP-12257 The last traces of Mnemosyne Rules have been removed. + + OTP-12270 Properly support maps in match_specs + + OTP-12301 Add 'trim_all' option to binary:split/3 + + This option can be set to remove _ALL_ empty parts of the + result of a call to binary:split/3. + + OTP-12309 New function ets:take/2. Works the same as ets:delete/2 but + also returns the deleted object(s). + + OTP-12376 ets:info/1,2 now contains information about whether + write_concurrency or read_concurrency is enabled. + + OTP-12422 string:tokens/2 is somewhat faster, especially if the list of + separators only contains one separator character. + + OTP-12492 The documentation of the Abstract Format (in the ERTS User's + Guide) has been updated with types and specification. (Thanks + to Anthony Ramine.) + + The explicit representation of parentheses used in types of + the abstract format has been removed. Instead the new + functions erl_parse:type_inop_prec() and + erl_parse:type_preop_prec() can be used for inserting + parentheses where needed. + + OTP-12566 Prevent zip:zip_open/[12] from leaking file descriptors if + parent process dies. + + OTP-12586 Add a new random number generator, see rand module. It have + better characteristics and an improved interface. + + OTP-12651 Correct orddict(3) regarding evaluation order of fold() and + map(). + + OTP-12657 Correct maps module error exceptions + + Bad input to maps module function will now yield the + following exceptions: + + -- {badmap,NotMap} or, + + -- badarg + + OTP-12673 It is now possible to paste text in JCL mode (using Ctrl-Y) + that has been copied in the previous shell session. Also a + bug that caused the JCL mode to crash when pasting text has + been fixed. + + OTP-12716 filename:split/1 when given an empty binary will now return + an empty list, to make it consistent with return value when + given an empty list. + + OTP-12737 Add sync option to ets:tab2file/3. + + OTP-12742 Add functions gb_sets:iterator_from() and + gb_trees:iterator_from(). (Thanks to Kirill Kinduk.) + + OTP-12745 Add maps:filter/2 to maps module. + + OTP-12752 Add uptime() shell command. + + OTP-12754 Cache nowarn_bif_clash functions in erl_lint. + + This patch stores nowarn_bif_clash in the lint record. By + using erlc +'{eprof,lint_module}' when compiling the erlang + parser, we noticed the time spent on nowarn_function/2 + reduced from 30% to 0.01%. + + OTP-12772 Optimize the Erlang Code Linter by using the cached filename + information. + + OTP-12774 Change some internal data structures to Maps in order to + speed up compilation time. Measured speed up is around + 10%-15%. + + OTP-12785 Update orddict to use parameterized types and specs. (Thanks + to UENISHI Kota.) + + OTP-12793 If a child of a simple_one_for_one returns ignore from its + start function no longer store the child for any restart + type. It is not possible to restart or delete the child + because the supervisor is a simple_one_for_one. + + OTP-12808 The assert macros in eunit has been moved out to + stdlib/include/assert.hrl. This files get included by + eunit.hrl. Thus, nothing changes for eunit users, but the + asserts can now also be included separately. + + OTP-12814 Make ets:file2tab preserve enabled read_concurrency and + write_concurrency options for tables. + + OTP-12841 There are many cases where user code needs to be able to + distinguish between a socket that was closed normally and one + that was aborted. Setting the option {show_econnreset, true} + enables the user to receive ECONNRESET errors on both active + and passive sockets. + +--- syntax_tools-1.7 ---------------------------------------------------- + + OTP-12732 Use the new erl_anno module. + + OTP-12769 The merl module has been added to the syntax_tools + application. The Merl library is a simpler way to work with + erl_syntax parse trees. + +--- test_server-3.9 ----------------------------------------------------- + + OTP-10816 The status of an aborted test due to test suite compilation + error has changed from 'auto_skipped' to 'failed'. This + affects both the textual log file, event handling and CT hook + callbacks. The logging of compilation failures has also been + improved, especially in the case of multiple test suites + failing compilation. + + OTP-10923 The Test Server application has been marked as obsolete and + will be removed from OTP in the next major release (OTP + 19.0). + + OTP-11962 When running OTP tests using the ts interface, it is now + possible to specify so called test categories per OTP + application. A test category is represented by a CT test + specification and defines an arbitrary subset of existing + test suites, groups and cases. Examples of test categories + are 'smoke' (smoke tests) and 'bench' (benchmarks). (Call + ts:help() for more info). Also, functions for reading terms + from the current test specification during test, + ct:get_testspec_terms/0 and ct:get_testspec_terms/1, have + been implemented. + + OTP-12740 The Test Server source code parser (erl2html2) failed to + handle the macro tuple in the syntax tree returned by + epp_dodger. This error has been corrected. + +--- tools-2.8 ----------------------------------------------------------- + + OTP-11043 Allow maps for supervisor flags and child specs + + Earlier, supervisor flags and child specs were given as + tuples. While this is kept for backwards compatibility, it is + now also allowed to give these parameters as maps, see + sup_flags and child_spec. + + OTP-12330 In order to improve performance of the cover tool, new + functions are added for cover compilation and analysis on + multiple files. This allows for more parallelisation. + + Some improvements of the data base access is also done in + order to improve the performance when analysing and resetting + cover data. + + Minor incompatibility: An error reason from analyse_to_file + is changed from no_source_code_found to + {no_source_code_found,Module}. + + OTP-12511 Remove Mnemosyne rules support. + + OTP-12681 Add printout of total number of calls and time in eprof + + OTP-12806 Attempting to do a cover analysis when neither source code + nor beam file could be found would hang the cover server. + Corrected to return a proper error. + +--- typer-0.9.9 --------------------------------------------------------- + + OTP-12727 Properly extract annotations from core code. + +--- webtool-0.9 --------------------------------------------------------- + + OTP-10922 The Webtool application has been marked as obsolete and will + be removed from OTP in the next major release (OTP 19.0). + +--- wx-1.4 -------------------------------------------------------------- + + OTP-12183 The undocumented option generic_debug for gen_server has been + removed. + + OTP-12632 Use wxWidgets-3.0, if found, as default backend on windows. + + OTP-12660 Add missing fields in some events records. May require a + recompilation of user applications. + + OTP-12734 Remove raise condition where wx could crash during emulator + stoppage. + +--- xmerl-1.3.8 --------------------------------------------------------- + + OTP-12689 Remove compiler warnings in xmerl. + +--- Open Source Contributors -------------------------------------------- + + Alex Wilson, Andras Horvath, Andreas Amsenius, Andreas Schultz, + András Veres-Szentkirályi, Anthony Ramine, Breno Leitao, Chris Dituri, + Christopher Faulet, Daniel White, David Kubecka, David N. Welton, + Derek Brown, Dmitriy Kargapolov, Dmitry Ivanov, Fred Hebert, + Holger Weiß, James Fish, Jesper Louis Andersen, Johan Oudinet, + Jonas Falkevik, José Valim, Jérôme de Bretagne, Kenji Rikitake, + Kirill Zaborsky, Kirilll Zaborsky, Kostis Sagonas, Larry, Leo Liu, + Loïc Hoguin, Magnus Henoch, Magnus Ottenklinger, Marc Sugiyama, + Martin Hässler, Martin Schürrer, Maxim Mai, Michael Klishin, + Mikael Pettersson, Nate Bartley, Nick Mills, Olivier Girondel, + Peter Lemenkov, Péter Gömöri, Qijiang Fan, Richard Carlsson, + Rory Byrne, Serge Aleynikov, Simon Cornish, Stavros Aronis, + Stefan Grundmann, Steve Vinoski, Tom Briden, Tomas Abrahamsson, + Tuncer Ayaz, UENISHI Kota, Ulf Wiger, Vlad Dumitrescu, Wasif Malik, + Wasif Malik and Johannes Huning, Yoshihiro Tanaka, Yuki Ito, andreaP, + beaver, crownedgrouse, jeffweiss, larry, tmanevik, xsipewe, + Сергей Прохоров diff --git a/release-notes/OTP-18.1.1.README.txt b/release-notes/OTP-18.1.1.README.txt new file mode 100644 index 0000000..d6a061a --- /dev/null +++ b/release-notes/OTP-18.1.1.README.txt @@ -0,0 +1,69 @@ +Patch Package: OTP 18.1.1 +Git Tag: OTP-18.1.1 +Date: 2015-10-06 +Trouble Report Id: OTP-13013, OTP-13022, OTP-13025 +Seq num: seq12957 +System: OTP +Release: 18 +Application: inets-6.0.2, mnesia-4.13.2 +Predecessor: OTP 18.1 + + Check out the git tag OTP-18.1.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. + + --------------------------------------------------------------------- + --- inets-6.0.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.0.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13022 Application(s): inets + + Avoid crash in mod_auth_server and mod_security_server + due to using an atom instead of a string when creating + a name. + + + --- Improvements and New Features --- + + OTP-13013 Application(s): inets + + Add function response_default_headers/0 to httpd + customize API, to allow user to specify default values + for HTTP response headers. + + + Full runtime dependencies of inets-6.0.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- mnesia-4.13.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.13.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13025 Application(s): mnesia + Related Id(s): seq12957 + + Fixed a process and file descriptor leak in + mnesia:restore/2. + + + Full runtime dependencies of mnesia-4.13.2: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.1.2.README.txt b/release-notes/OTP-18.1.2.README.txt new file mode 100644 index 0000000..a7e68c1 --- /dev/null +++ b/release-notes/OTP-18.1.2.README.txt @@ -0,0 +1,39 @@ +Patch Package: OTP 18.1.2 +Git Tag: OTP-18.1.2 +Date: 2015-10-14 +Trouble Report Id: OTP-13036 +Seq num: +System: OTP +Release: 18 +Application: ssh-4.1.1 +Predecessor: OTP 18.1.1 + + Check out the git tag OTP-18.1.2, 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. + + --------------------------------------------------------------------- + --- ssh-4.1.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13036 Application(s): ssh + + A new option max_channels limits the number of channels + with active server-side subsystems that are accepted. + + + Full runtime dependencies of ssh-4.1.1: crypto-3.3, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.1.3.README.txt b/release-notes/OTP-18.1.3.README.txt new file mode 100644 index 0000000..50617c0 --- /dev/null +++ b/release-notes/OTP-18.1.3.README.txt @@ -0,0 +1,39 @@ +Patch Package: OTP 18.1.3 +Git Tag: OTP-18.1.3 +Date: 2015-10-16 +Trouble Report Id: OTP-13046 +Seq num: +System: OTP +Release: 18 +Application: ssh-4.1.2 +Predecessor: OTP 18.1.2 + + Check out the git tag OTP-18.1.3, 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. + + --------------------------------------------------------------------- + --- ssh-4.1.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.1.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13046 Application(s): ssh + + Add a 1024 group to the list of key group-exchange + groups + + + Full runtime dependencies of ssh-4.1.2: crypto-3.3, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.1.4.README.txt b/release-notes/OTP-18.1.4.README.txt new file mode 100644 index 0000000..5bf48e9 --- /dev/null +++ b/release-notes/OTP-18.1.4.README.txt @@ -0,0 +1,63 @@ +Patch Package: OTP 18.1.4 +Git Tag: OTP-18.1.4 +Date: 2015-11-13 +Trouble Report Id: OTP-13061, OTP-13062 +Seq num: +System: OTP +Release: 18 +Application: inets-6.0.3 +Predecessor: OTP 18.1.3 + + Check out the git tag OTP-18.1.4, 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-13062 Application(s): inets + + Add possibility to set socket options, such as nodelay, + for httpd. Also phase out legacy option value inet6bf4 + for the ipfamily option. This value will be translated + to the value inet. + + + --------------------------------------------------------------------- + --- inets-6.0.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.0.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13061 Application(s): inets + + Improved error handling and gracfully termination when + an invalid chunked length header is encountered. + + + --- Improvements and New Features --- + + OTP-13062 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + Add possibility to set socket options, such as nodelay, + for httpd. Also phase out legacy option value inet6bf4 + for the ipfamily option. This value will be translated + to the value inet. + + + Full runtime dependencies of inets-6.0.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.1.5.README.txt b/release-notes/OTP-18.1.5.README.txt new file mode 100644 index 0000000..10aaa0d --- /dev/null +++ b/release-notes/OTP-18.1.5.README.txt @@ -0,0 +1,39 @@ +Patch Package: OTP 18.1.5 +Git Tag: OTP-18.1.5 +Date: 2015-11-27 +Trouble Report Id: OTP-13140 +Seq num: +System: OTP +Release: 18 +Application: ssh-4.1.3 +Predecessor: OTP 18.1.4 + + Check out the git tag OTP-18.1.5, 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. + + --------------------------------------------------------------------- + --- ssh-4.1.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.1.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Known Bugs and Problems --- + + OTP-13140 Application(s): ssh + + SSH_MSG_KEX_DH_GEX_REQUEST_OLD implemented to make + PuTTY work with erl server. + + + Full runtime dependencies of ssh-4.1.3: crypto-3.3, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.1.README.txt b/release-notes/OTP-18.1.README.txt new file mode 100644 index 0000000..51f1be7 --- /dev/null +++ b/release-notes/OTP-18.1.README.txt @@ -0,0 +1,990 @@ +Patch Package: OTP 18.1 +Git Tag: OTP-18.1 +Date: 2015-09-22 +Trouble Report Id: OTP-11397, OTP-11531, OTP-12230, OTP-12622, + OTP-12671, OTP-12672, OTP-12831, OTP-12832, + OTP-12853, OTP-12858, OTP-12864, OTP-12865, + OTP-12866, OTP-12870, OTP-12871, OTP-12875, + OTP-12879, OTP-12891, OTP-12898, OTP-12901, + OTP-12902, OTP-12911, OTP-12912, OTP-12922, + OTP-12934, OTP-12935, OTP-12937, OTP-12938, + OTP-12940, OTP-12943, OTP-12944, OTP-12945, + OTP-12946, OTP-12947, OTP-12948, OTP-12949, + OTP-12950, OTP-12952, OTP-12954, OTP-12961, + OTP-12962, OTP-12963, OTP-12964, OTP-12965, + OTP-12967, OTP-12968, OTP-12969, OTP-12971, + OTP-12972, OTP-12973, OTP-12974, OTP-12976, + OTP-12977, OTP-12980, OTP-12981, OTP-12984, + OTP-12986, OTP-12987, OTP-12988, OTP-12989, + OTP-12990 +Seq num: seq12878, seq12891, seq12900, seq12906, + seq12947 +System: OTP +Release: 18 +Application: compiler-6.0.1, crypto-3.6.1, debugger-4.1.1, + dialyzer-2.8.1, diameter-1.11, erts-7.1, + eunit-2.2.11, hipe-3.13, inets-6.0.1, + kernel-4.1, mnesia-4.13.1, odbc-2.11.1, + public_key-1.0.1, sasl-2.6, ssh-4.1, ssl-7.1, + stdlib-2.6, tools-2.8.1, wx-1.5 +Predecessor: OTP 18.0.3 + + Check out the git tag OTP-18.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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-11397 Application(s): ssl + + Add possibility to downgrade an SSL/TLS connection to a + tcp connection, and give back the socket control to a + user process. + + This also adds the possibility to specify a timeout to + the ssl:close function. + + + OTP-12622 Application(s): ssh + Related Id(s): OTP-12671, OTP-12672 + + The key exchange algorithms 'ecdh-sha2-nistp256', + 'ecdh-sha2-nistp384' and 'ecdh-sha2-nistp521' are + implemented. See RFC 5656. + + This raises the security level considerably. + + + OTP-12671 Application(s): ssh + Related Id(s): OTP-12622, OTP-12672 + + The key exchange algorithm + 'diffie-hellman-group14-sha1' is implemented. See RFC + 4253. + + This raises the security level. + + + OTP-12672 Application(s): ssh + Related Id(s): OTP-12622, OTP-12671 + + The key exchange algorithms + 'diffie-hellman-group-exchange-sha1' and + 'diffie-hellman-group-exchange-sha256' are implemented. + See RFC 4419. + + This raises the security level. + + + OTP-12864 Application(s): kernel, sasl, stdlib + + A mechanism for limiting the amount of text that the + built-in error logger events will produce has been + introduced. It is useful for limiting both the size of + log files and the CPU time used to produce them. + + This mechanism is experimental in the sense that it may + be changed if it turns out that it does not solve the + problem it is supposed to solve. In that case, there + may be backward incompatible improvements to this + mechanism. + + See the documentation for the config parameter + error_logger_format_depth in the Kernel application for + information about how to turn on this feature. + + + OTP-12864 Application(s): kernel, sasl, stdlib + + A mechanism for limiting the amount of text that the + built-in error logger events will produce has been + introduced. It is useful for limiting both the size of + log files and the CPU time used to produce them. + + This mechanism is experimental in the sense that it may + be changed if it turns out that it does not solve the + problem it is supposed to solve. In that case, there + may be backward incompatible improvements to this + mechanism. + + See the documentation for the config parameter + error_logger_format_depth in the Kernel application for + information about how to turn on this feature. + + + OTP-12864 Application(s): kernel, sasl, stdlib + + A mechanism for limiting the amount of text that the + built-in error logger events will produce has been + introduced. It is useful for limiting both the size of + log files and the CPU time used to produce them. + + This mechanism is experimental in the sense that it may + be changed if it turns out that it does not solve the + problem it is supposed to solve. In that case, there + may be backward incompatible improvements to this + mechanism. + + See the documentation for the config parameter + error_logger_format_depth in the Kernel application for + information about how to turn on this feature. + + + --------------------------------------------------------------------- + --- compiler-6.0.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-6.0.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12967 Application(s): compiler + + Fix get_map_elements register corruption + + Instruction get_map_elements might destroy target + registers when the fail-label is taken. Only seen for + patterns with two, and only two, target registers. + Specifically if we copy one register and then jump. + + + Full runtime dependencies of compiler-6.0.1: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-3.6.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-3.6.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12944 Application(s): crypto + + Make crypto:ec_curves/0 return empty list if elliptic + curve is not supported at all. + + + Full runtime dependencies of crypto-3.6.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- debugger-4.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-4.1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12911 Application(s): debugger + Related Id(s): seq12906 + + Fix crash when starting a quick debugging session. + Thanks Alan Duffield. + + + Full runtime dependencies of debugger-4.1.1: compiler-5.0, erts-6.0, + kernel-3.0, stdlib-2.5, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-2.8.1 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The dialyzer-2.8.1 application can *not* be applied + independently of other applications on an arbitrary OTP 18 + installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- hipe-3.13 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-12865 Application(s): dialyzer + + Improve the translation of forms to types. + + + OTP-12866 Application(s): dialyzer + + Fix a bug concerning parameterized opaque types. + + + OTP-12940 Application(s): dialyzer + + Fix a bug concerning parameterized opaque types. + + + OTP-12948 Application(s): dialyzer, hipe + + Fix bugs concerning erlang:abs/1. + + + OTP-12949 Application(s): dialyzer, hipe + + Fix a bug concerning lists:keydelete/3 with union and + opaque types. + + + OTP-12964 Application(s): dialyzer + Related Id(s): OTP-12962, OTP-12963 + + Use new function hipe:erts_checksum to get correct + runtime checksum for cached beam files. + + + Full runtime dependencies of dialyzer-2.8.1: compiler-5.0, erts-7.0, + hipe-3.13, kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-1.11 --------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-1.11 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12879 Application(s): diameter + Related Id(s): OTP-12475 + + Fix relay encode of nested, Grouped AVPs. + + A fault in OTP-12475 caused encode to fail if the first + AVP in a Grouped AVP was itself Grouped. + + + OTP-12902 Application(s): diameter + + Match acceptable peer addresses case insensitively. + + Regular expressions passed in an 'accept' tuple to + diameter_tcp or diameter_sctp inappropriately matched + case. + + + OTP-12969 Application(s): diameter + + Fix diameter_watchdog function clause. + + OTP-12912 introduced an error with accepting transports + setting {restrict_connections, false}, causing + processes to fail when peer connections were + terminated. + + + --- Improvements and New Features --- + + OTP-12871 Application(s): diameter + + Don't report 5005 (DIAMETER_AVP_MISSING) errors + unnecessarily. + + An AVP whose decode failed was reported as missing, + despite having been reported with another error as a + consequence of the failure. + + + OTP-12891 Application(s): diameter + + Improve decode performance. + + The time required to decode a message increased + quadratically with the number of AVPs in the worst + case, leading to extremely long execution times. + + + OTP-12912 Application(s): diameter + + Improve watchdog and statistics performance. + + Inefficient use of timers contributed to poor + performance at high load, as did ordering of the table + statistics are written to. + + + OTP-12947 Application(s): diameter + + Add service_opt() strict_mbit. + + There are differing opinions on whether or not + reception of an arbitrary AVP setting the M-bit is an + error. The default interpretation is strict: if a + command grammar doesn't explicitly allow an AVP setting + the M-bit then reception of such an AVP is regarded as + an error. Setting {strict_mbit, false} disables this + check. + + + Full runtime dependencies of diameter-1.11: erts-6.0, kernel-3.0, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erts-7.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-7.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12870 Application(s): erts + + Fix bug in ETS that could cause stray objects marked + for deletion to occasionally be missed by the cleanup + done by safe_fixtable(_,false). + + + OTP-12901 Application(s): erts + + Fixed VM crash that could occur if a trace port was + linked to a process, and the trace port terminated + abnormally while handling a trace message. This bug has + always existed in the runtime system with SMP support. + + + OTP-12934 Application(s): erts + + Instead of aborting, the vm now creates a crash dump + when a system process is terminated. + + + OTP-12943 Application(s): erts + + Fixed a rare emulator dead lock that occurred when + erlang:process_flag(priority,...) was called by a + process that was also scheduled for an internal system + activity. + + + OTP-12954 Application(s): erts + + The runtime system on various posix platforms (except + for Linux and Solaris) could crash when large amounts + of file-descriptors were in use. + + + OTP-12962 Application(s): erts, hipe + + A beam file compiled by hipe for an incompatible + runtime system was sometimes not rejected by the + loader, which could lead to vm crash. This fix will + also allow the same hipe compiler to be used by both + normal and debug-built vm. + + + OTP-12965 Application(s): erts + + Fix bug in maps:merge/2 when called by hipe compiled + code that could cause vm crash. Bug exists since + erts-7.0 (OTP 18.0). + + + OTP-12968 Application(s): erts + + When tracing with process_dump option, the VM could + abort if there was an ongoing binary match somewhere in + the call stack of the traced process. + + + OTP-12987 Application(s): erts + Related Id(s): seq12947 + + Fixed possible output deadlock in tty driver when + hitting "CTRL-C" in a non-smp emulator shell on unix. + + + OTP-12988 Application(s): erts + + Fix binary_to_integer to throw badarg for "+" and "-" + similar to list_to_integer. + + + OTP-12989 Application(s): erts + + Suppress warning of unused argument when using macro + enif_make_pid. + + + --- Improvements and New Features --- + + OTP-12945 Application(s): erts + Related Id(s): OTP-12892 + + Changed default clock source used for OS system time on + MacOS X to gettimeofday() in order to improve + performance. The system can be configured during build + to use the previously used higher resolution clock + source by passing the switch + --with-clock-resolution=high when configuring the + build. + + + OTP-12971 Application(s): erts + + Added the configure option --disable-saved-compile-time + which disables saving of compile date and time in the + emulator binary. + + + Full runtime dependencies of erts-7.1: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- eunit-2.2.11 ---------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.2.11 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12952 Application(s): eunit + + Improve success message when 2 tests have passed + + + Full runtime dependencies of eunit-2.2.11: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- hipe-3.13 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The hipe-3.13 application can *not* be applied independently of + other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- erts-7.1 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-12948 Application(s): dialyzer, hipe + + Fix bugs concerning erlang:abs/1. + + + OTP-12949 Application(s): dialyzer, hipe + + Fix a bug concerning lists:keydelete/3 with union and + opaque types. + + + OTP-12962 Application(s): erts, hipe + + A beam file compiled by hipe for an incompatible + runtime system was sometimes not rejected by the + loader, which could lead to vm crash. This fix will + also allow the same hipe compiler to be used by both + normal and debug-built vm. + + + --- Improvements and New Features --- + + OTP-12963 Application(s): hipe + Related Id(s): OTP-12962, OTP-12964 + + New function hipe:erts_checksum/0 which returns a value + identifying the target runtime system for the compiler. + Used by dialyzer for its beam cache directory. + + + Full runtime dependencies of hipe-3.13: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-6.0.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.0.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12875 Application(s): inets + Related Id(s): seq12878 + + Fix broken socket feature, that is on Linux systems a + socket may be opened before starting Erlang and then + passed to Erlang's httpd daemon. This is useful as the + wrap program can open a privileged port and Erlang does + not have to be run as root. + + + OTP-12898 Application(s): inets + Related Id(s): seq12900 + + Fix broken socket feature, that is on Linux systems a + socket may be opened before starting Erlang and then + passed to Erlangs tftp daemon. This is useful as the + wrap program can open a privileged port and Erlang does + not have to be run as root. + + + OTP-12922 Application(s): inets + + httpc_handler should react properly to cancel requests + even when the request to be canceled was already + finished but httpc_manager did not get notified about + that yet. + + + --- Improvements and New Features --- + + OTP-12976 Application(s): inets + + Added format_status function to httpd process to avoid + sensitive information to be printed in supervisor logs. + + + OTP-12984 Application(s): inets + + Return meaningful error reason disregarding whether a + http proxy is used or not. + + + Full runtime dependencies of inets-6.0.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- kernel-4.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The kernel-4.1 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- sasl-2.6 (first satisfied in OTP 18.1) + -- stdlib-2.6 (first satisfied in OTP 18.1) + + + --- Improvements and New Features --- + + OTP-12864 Application(s): kernel, sasl, stdlib + + *** HIGHLIGHT *** + + A mechanism for limiting the amount of text that the + built-in error logger events will produce has been + introduced. It is useful for limiting both the size of + log files and the CPU time used to produce them. + + This mechanism is experimental in the sense that it may + be changed if it turns out that it does not solve the + problem it is supposed to solve. In that case, there + may be backward incompatible improvements to this + mechanism. + + See the documentation for the config parameter + error_logger_format_depth in the Kernel application for + information about how to turn on this feature. + + + Full runtime dependencies of kernel-4.1: erts-7.0, sasl-2.6, + stdlib-2.6 + + + --------------------------------------------------------------------- + --- mnesia-4.13.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.13.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12972 Application(s): mnesia + + Improved index updates to avoid a timing glitch in + dirty_index_read. + + + Full runtime dependencies of mnesia-4.13.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- odbc-2.11.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.11.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12935 Application(s): odbc + + New application variable to set timeout of internal + communication setup between the erlang code and the + c-port program that interfaces the odbc driver. This + can be useful if you have an underlying system that is + slow due to heavy load at startup. + + With this environment variable you can easily bypass + and tailor odbc to the needs of the underlying actual + system without changing the configuration. Which is a + good thing because this value is very system specific. + + + Full runtime dependencies of odbc-2.11.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.0.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The public_key-1.0.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12986 Application(s): public_key + + Document enhancements + + + Full runtime dependencies of public_key-1.0.1: asn1-3.0, crypto-3.3, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- sasl-2.6 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The sasl-2.6 application can *not* be applied independently of + other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-4.1 (first satisfied in OTP 18.1) + -- stdlib-2.6 (first satisfied in OTP 18.1) + + + --- Improvements and New Features --- + + OTP-12864 Application(s): kernel, sasl, stdlib + + *** HIGHLIGHT *** + + A mechanism for limiting the amount of text that the + built-in error logger events will produce has been + introduced. It is useful for limiting both the size of + log files and the CPU time used to produce them. + + This mechanism is experimental in the sense that it may + be changed if it turns out that it does not solve the + problem it is supposed to solve. In that case, there + may be backward incompatible improvements to this + mechanism. + + See the documentation for the config parameter + error_logger_format_depth in the Kernel application for + information about how to turn on this feature. + + + Full runtime dependencies of sasl-2.6: erts-6.0, kernel-4.1, + stdlib-2.6, tools-2.6.14 + + + --------------------------------------------------------------------- + --- ssh-4.1 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-11531 Application(s): ssh + + Send an understandable disconnect message when the key + exchange phase can't find a common algorithm. There are + also some test cases added. + + + OTP-12853 Application(s): ssh + Related Id(s): seq12891 + + The third parameter in ssh_sftp:write_file is now + accepting iolists again. Unicode handling adjusted. + + + --- Improvements and New Features --- + + OTP-12230 Application(s): ssh + + First part of ssh test suite re-organization and + extension. + + + OTP-12622 Application(s): ssh + Related Id(s): OTP-12671, OTP-12672 + + *** HIGHLIGHT *** + + The key exchange algorithms 'ecdh-sha2-nistp256', + 'ecdh-sha2-nistp384' and 'ecdh-sha2-nistp521' are + implemented. See RFC 5656. + + This raises the security level considerably. + + + OTP-12671 Application(s): ssh + Related Id(s): OTP-12622, OTP-12672 + + *** HIGHLIGHT *** + + The key exchange algorithm + 'diffie-hellman-group14-sha1' is implemented. See RFC + 4253. + + This raises the security level. + + + OTP-12672 Application(s): ssh + Related Id(s): OTP-12622, OTP-12671 + + *** HIGHLIGHT *** + + The key exchange algorithms + 'diffie-hellman-group-exchange-sha1' and + 'diffie-hellman-group-exchange-sha256' are implemented. + See RFC 4419. + + This raises the security level. + + + OTP-12831 Application(s): ssh + + Adding random length extra padding as recommended in + RFC 4253 section 6. + + + OTP-12858 Application(s): ssh + + New test library for low-level protocol testing. There + is also a test suite using it for some preliminary + tests. The intention is to build on that for more + testing of individual ssh messages. See + lib/ssh/test/ssh_trpt_test_lib.erl and + ssh_protocol_SUITE.erl in the same directory. + + + OTP-12937 Application(s): ssh + + Increased default values for + diffie-hellman-group-exchange-sha* to Min = 1024, N = + 6144, Max = 8192. + + Added 6144 and 8192 bit default gex groups. + + + OTP-12938 Application(s): ssh + + The mac algorithm 'hmac-sha2-512' is implemented. See + RFC 6668. + + + Full runtime dependencies of ssh-4.1: crypto-3.3, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --- ssl-7.1 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12974 Application(s): ssl + + Add DER encoded ECPrivateKey as valid input format for + key option. + + + OTP-12980 Application(s): ssl + + Correct return value of default session callback module + + This error had the symptom that the client check for + unique session would always fail, potentially making + the client session table grow a lot and causing long + setup times. + + + --- Improvements and New Features --- + + OTP-11397 Application(s): ssl + + *** HIGHLIGHT *** + + Add possibility to downgrade an SSL/TLS connection to a + tcp connection, and give back the socket control to a + user process. + + This also adds the possibility to specify a timeout to + the ssl:close function. + + + OTP-12832 Application(s): ssl + + Add application setting to be able to change fatal + alert shutdown timeout, also shorten the default + timeout. The fatal alert timeout is the number of + milliseconds between sending of a fatal alert and + closing the connection. Waiting a little while improves + the peers chances to properly receiving the alert so it + may shutdown gracefully. + + + Full runtime dependencies of ssl-7.1: crypto-3.3, erts-6.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- stdlib-2.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The stdlib-2.6 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-4.1 (first satisfied in OTP 18.1) + -- sasl-2.6 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-12946 Application(s): stdlib + + In OTP 18.0, qlc does not handle syntax errors well. + This bug has been fixed. + + + OTP-12950 Application(s): stdlib + + Optimize zip:unzip/2 when uncompressing to memory. + + + OTP-12973 Application(s): stdlib + + The stdlib reference manual is updated to show correct + information about the return value of gen_fsm:reply/2. + + + OTP-12977 Application(s): stdlib + + re:split2,3 and re:replace/3,4 now correctly handles + pre-compiled patterns that have been compiled using the + 'unicode' option. + + + OTP-12990 Application(s): stdlib + + Export shell:catch_exception/1 as documented. + + + --- Improvements and New Features --- + + OTP-12864 Application(s): kernel, sasl, stdlib + + *** HIGHLIGHT *** + + A mechanism for limiting the amount of text that the + built-in error logger events will produce has been + introduced. It is useful for limiting both the size of + log files and the CPU time used to produce them. + + This mechanism is experimental in the sense that it may + be changed if it turns out that it does not solve the + problem it is supposed to solve. In that case, there + may be backward incompatible improvements to this + mechanism. + + See the documentation for the config parameter + error_logger_format_depth in the Kernel application for + information about how to turn on this feature. + + + Full runtime dependencies of stdlib-2.6: compiler-5.0, crypto-3.3, + erts-7.0, kernel-4.1, sasl-2.6 + + + --------------------------------------------------------------------- + --- tools-2.8.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-2.8.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12981 Application(s): tools + + If a module includes eunit.hrl, a parse transform adds + the function test/0 on line 0 in the module. A bug in + OTP-18.0 caused cover:analyse_to_file/1 to fail to + insert cover data in the output file when line 0 + existed in the cover data table. This is now corrected. + + + Full runtime dependencies of tools-2.8.1: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5, + webtool-0.8.10 + + + --------------------------------------------------------------------- + --- wx-1.5 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.5 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12961 Application(s): wx + + Extend AUI functionality. + + + Full runtime dependencies of wx-1.5: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Attila Gulyas, Constantin Rack, Daniel Goertzen, Eric + Meadows-Jönsson, Jimmy Zöger, Kirilll Zaborsky, Leo Liu, Lukas + Larsson, Mikael Pettersson, Red, Shane Howley, Stefan Strigler, Yuki + Ito, eksperimental, tmanevik + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.2.1.README.txt b/release-notes/OTP-18.2.1.README.txt new file mode 100644 index 0000000..887a940 --- /dev/null +++ b/release-notes/OTP-18.2.1.README.txt @@ -0,0 +1,51 @@ +Patch Package: OTP 18.2.1 +Git Tag: OTP-18.2.1 +Date: 2015-12-18 +Trouble Report Id: OTP-13202, OTP-13204 +Seq num: +System: OTP +Release: 18 +Application: erts-7.2.1 +Predecessor: OTP 18.2 + + Check out the git tag OTP-18.2.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. + + --------------------------------------------------------------------- + --- erts-7.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-7.2.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13202 Application(s): erts + + Revert "Fix erroneous splitting of emulator path" + + + OTP-13204 Application(s): erts + Related Id(s): pr926 + + Fix HiPE enabled emulator for FreeBSD. + + + Full runtime dependencies of erts-7.2.1: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Kenji Rikitake + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.2.2.README.txt b/release-notes/OTP-18.2.2.README.txt new file mode 100644 index 0000000..2008dd5 --- /dev/null +++ b/release-notes/OTP-18.2.2.README.txt @@ -0,0 +1,41 @@ +Patch Package: OTP 18.2.2 +Git Tag: OTP-18.2.2 +Date: 2016-01-11 +Trouble Report Id: OTP-13225 +Seq num: +System: OTP +Release: 18 +Application: ssh-4.2.1 +Predecessor: OTP 18.2.1 + + Check out the git tag OTP-18.2.2, 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. + + --------------------------------------------------------------------- + --- ssh-4.2.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.2.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13225 Application(s): ssh + + The authentication method 'keyboard-interactive' failed + in the Erlang client when the server after successful + authentication continued by asking for zero more + passwords. + + + Full runtime dependencies of ssh-4.2.1: crypto-3.3, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.2.3.README.txt b/release-notes/OTP-18.2.3.README.txt new file mode 100644 index 0000000..cf889b4 --- /dev/null +++ b/release-notes/OTP-18.2.3.README.txt @@ -0,0 +1,39 @@ +Patch Package: OTP 18.2.3 +Git Tag: OTP-18.2.3 +Date: 2016-01-29 +Trouble Report Id: OTP-13248 +Seq num: +System: OTP +Release: 18 +Application: inets-6.1.1 +Predecessor: OTP 18.2.2 + + Check out the git tag OTP-18.2.3, 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. + + --------------------------------------------------------------------- + --- inets-6.1.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13248 Application(s): inets + + mod_alias now traverses all aliases picking the longest + match and not the first match. + + + Full runtime dependencies of inets-6.1.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.2.4.0.1.README.txt b/release-notes/OTP-18.2.4.0.1.README.txt new file mode 100644 index 0000000..3396595 --- /dev/null +++ b/release-notes/OTP-18.2.4.0.1.README.txt @@ -0,0 +1,49 @@ +Patch Package: OTP 18.2.4.0.1 +Git Tag: OTP-18.2.4.0.1 +Date: 2017-05-10 +Trouble Report Id: OTP-13201 +Seq num: +System: OTP +Release: 18 +Application: erts-7.2.1.1 +Predecessor: OTP 18.2.4 + + Check out the git tag OTP-18.2.4.0.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. + + --------------------------------------------------------------------- + --- erts-7.2.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The erts-7.2.1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13201 Application(s): erts + + Introduced new statistics functionality in order to + more efficiently retrieve information about runnable + and active processes and ports. For more information + see: + + -- statistics(total_run_queue_lengths) + + -- statistics(run_queue_lengths) + + -- statistics(total_active_tasks) + + -- statistics(active_tasks) + + + Full runtime dependencies of erts-7.2.1.1: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.2.4.1.README.txt b/release-notes/OTP-18.2.4.1.README.txt new file mode 100644 index 0000000..7001da3 --- /dev/null +++ b/release-notes/OTP-18.2.4.1.README.txt @@ -0,0 +1,38 @@ +Patch Package: OTP 18.2.4.1 +Git Tag: OTP-18.2.4.1 +Date: 2016-03-17 +Trouble Report Id: OTP-13417 +Seq num: +System: OTP +Release: 18 +Application: inets-6.1.1.1 +Predecessor: OTP 18.2.4 + + Check out the git tag OTP-18.2.4.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. + + --------------------------------------------------------------------- + --- inets-6.1.1.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.1.1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13417 Application(s): inets + + Mend ipv6_host_with_brackets option in httpc + + + Full runtime dependencies of inets-6.1.1.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.2.4.README.txt b/release-notes/OTP-18.2.4.README.txt new file mode 100644 index 0000000..7d815af --- /dev/null +++ b/release-notes/OTP-18.2.4.README.txt @@ -0,0 +1,45 @@ +Patch Package: OTP 18.2.4 +Git Tag: OTP-18.2.4 +Date: 2016-02-23 +Trouble Report Id: OTP-13323 +Seq num: +System: OTP +Release: 18 +Application: common_test-1.11.2 +Predecessor: OTP 18.2.3 + + Check out the git tag OTP-18.2.4, 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. + + --------------------------------------------------------------------- + --- common_test-1.11.2 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.11.2 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13323 Application(s): common_test + + If a ssh package contained more than one netconf end + tag, then the second end tag was never detected in + ct_netconfc:handle_data. Instead it was included in the + XML data given to the xmerl parser, which then failed. + The problem was introduced by OTP-13007, and has now + been corrected. + + + Full runtime dependencies of common_test-1.11.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-2.5, test_server-3.9, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.2.README.txt b/release-notes/OTP-18.2.README.txt new file mode 100644 index 0000000..b9bc64c --- /dev/null +++ b/release-notes/OTP-18.2.README.txt @@ -0,0 +1,1201 @@ +Patch Package: OTP 18.2 +Git Tag: OTP-18.2 +Date: 2015-12-16 +Trouble Report Id: OTP-12003, OTP-12392, OTP-12457, OTP-12699, + OTP-12759, OTP-12787, OTP-12792, OTP-12836, + OTP-12837, OTP-12838, OTP-12936, OTP-12939, + OTP-12966, OTP-12985, OTP-13000, OTP-13007, + OTP-13008, OTP-13010, OTP-13015, OTP-13017, + OTP-13018, OTP-13026, OTP-13029, OTP-13030, + OTP-13031, OTP-13032, OTP-13035, OTP-13040, + OTP-13042, OTP-13044, OTP-13048, OTP-13052, + OTP-13054, OTP-13055, OTP-13063, OTP-13066, + OTP-13067, OTP-13068, OTP-13069, OTP-13070, + OTP-13071, OTP-13076, OTP-13078, OTP-13079, + OTP-13083, OTP-13084, OTP-13091, OTP-13092, + OTP-13093, OTP-13101, OTP-13102, OTP-13105, + OTP-13106, OTP-13107, OTP-13109, OTP-13110, + OTP-13113, OTP-13115, OTP-13116, OTP-13117, + OTP-13125, OTP-13130, OTP-13132, OTP-13134, + OTP-13137, OTP-13141, OTP-13142, OTP-13143, + OTP-13144, OTP-13145, OTP-13146, OTP-13147, + OTP-13149, OTP-13150, OTP-13155, OTP-13156, + OTP-13157, OTP-13158, OTP-13159, OTP-13160, + OTP-13162, OTP-13163, OTP-13165, OTP-13166, + OTP-13173, OTP-13181, OTP-13188, OTP-13189 +Seq num: seq12945, seq12959, seq12978 +System: OTP +Release: 18 +Application: asn1-4.0.1, common_test-1.11.1, + compiler-6.0.2, crypto-3.6.2, dialyzer-2.8.2, + diameter-1.11.1, erl_docgen-0.4.1, + erl_interface-3.8.1, erts-7.2, eunit-2.2.12, + hipe-3.14, inets-6.1, jinterface-1.6.1, + kernel-4.1.1, observer-2.1.1, + parsetools-2.1.1, public_key-1.1, + runtime_tools-1.9.2, sasl-2.6.1, snmp-5.2.1, + ssh-4.2, ssl-7.2, stdlib-2.7, + test_server-3.9.1, tools-2.8.2, typer-0.9.10, + wx-1.6, xmerl-1.3.9 +Predecessor: OTP 18.1.5 + + Check out the git tag OTP-18.2, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-12392 Application(s): ssl + + Add upper limit for session cache, configurable on ssl + application level. + + If upper limit is reached, invalidate the current cache + entries, e.i the session lifetime is the max time a + session will be keept, but it may be invalidated + earlier if the max limit for the table is reached. This + will keep the ssl manager process well behaved, not + exhusting memeory. Invalidating the entries will + incrementally empty the cache to make room for fresh + sessions entries. + + + --------------------------------------------------------------------- + --- asn1-4.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-4.0.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13149 Application(s): asn1 + + Trying to encode an empty named BIT STRING in BER would + fail with a function_clause exception. (Thanks to + Svilen Ivanov for reporting this bug.) + + + Full runtime dependencies of asn1-4.0.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.11.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.11.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13007 Application(s): common_test + + When data from the netconf server was split into many + ssh packages, the netconf client performed really bad. + This is now improved. + + + OTP-13008 Application(s): common_test + + In ct_netconfc, if a timer expired 'at the same time' + as the server sent the rpc-reply, the timeout message + might already be in the client's message queue when the + client removed the timer ref from its 'pending' list. + This caused a crash in the client since the timer ref + could no longer be found when handling the timeout + message. This problem is now fixed by always flushing + the timeout message from the message queue when + canceling a timer. + + + OTP-13035 Application(s): common_test + + The error logger handler ct_conn_log_h did not respect + the 'silent' option, and tried to print to an undefined + file descriptor. This has been corrected. + + + OTP-13173 Application(s): common_test + Related Id(s): seq12978 + + If the user would let the test run proceed after test + suite compilation failure, Common Test did not set the + exit status to indicate failure as expected. This has + been corrected. Also, the 'abort_if_missing_suites' + option now makes Common Test abort the test run without + asking the user if compilation fails, even if access to + stdin/stdout exists. + + + OTP-13181 Application(s): common_test, test_server + + With the Common Test 'create_priv_dir' start option set + to 'auto_per_tc', the name of the priv directory for a + configuration function could clash with the name of the + priv directory for a test case, which would cause Test + Server failure. This error has been corrected. + + + Full runtime dependencies of common_test-1.11.1: 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-2.5, test_server-3.9, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-6.0.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-6.0.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13091 Application(s): compiler + + Fix cerl_trees:label/2 bug with map K/V swap + + + OTP-13113 Application(s): compiler + + Warnings produced when the 'bin_opt_info' option was + given could sometimes lack filenames and line numbers. + (Thanks to José Valim for reporting this bug.) + + + Full runtime dependencies of compiler-6.0.2: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-3.6.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-3.6.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13017 Application(s): crypto, erts, eunit, snmp + + Small documentation fixes + + + Full runtime dependencies of crypto-3.6.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- dialyzer-2.8.2 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The dialyzer-2.8.2 application can *not* be applied + independently of other applications on an arbitrary OTP 18 + installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- hipe-3.13 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13068 Application(s): dialyzer, hipe + + Reintroduce the erlang:make_fun/3 BIF in erl_bif_types. + + + Full runtime dependencies of dialyzer-2.8.2: compiler-5.0, erts-7.0, + hipe-3.13, kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-1.11.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-1.11.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13137 Application(s): diameter + + Fix request table leaks + + The End-to-End and Hop-by-Hop identifiers of outgoing + Diameter requests are stored in a table in order for + the caller to be located when the corresponding answer + message is received. Entries were orphaned if the + handler was terminated by an exit signal as a + consequence of actions taken by callback functions, or + if callbacks modified identifiers in retransmission + cases. + + + Full runtime dependencies of diameter-1.11.1: erts-6.0, kernel-3.0, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.4.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-0.4.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13026 Application(s): erl_docgen, erts + + Updated the xmllint target to just check the xml files + with real documentation content. + Corrected some errors and added some missing target in + the DTD's. + + + Full runtime dependencies of erl_docgen-0.4.1: edoc-0.7.13, erts-6.0, + stdlib-2.5, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.8.1 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.8.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13188 Application(s): erl_interface + + Fix the conditional selection of gethostbyname_r and + gethostbyaddr_r. + + + --------------------------------------------------------------------- + --- erts-7.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-7.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13017 Application(s): crypto, erts, eunit, snmp + + Small documentation fixes + + + OTP-13076 Application(s): erts + Related Id(s): seq12959 + + Fix memory corruption bug caused by disabling + distribution and then re-enable distribution with a + node name that has previously been used by a remote + node. + + + OTP-13079 Application(s): erts + + Renamed variables with name bool as Visual Studio 2015 + now treats this is a keyword. + + + OTP-13102 Application(s): erts + + erl_prim_loader has not supported custom loaders for + several releases. In the documentation for + erl_prim_loader, all references to custom loaders have + now been removed. + + + OTP-13105 Application(s): erts + + Fixed compilation of erts together with libc versions + that do not define __uint32_t. + + + OTP-13107 Application(s): erts + + erl -make now returns non-zero exit codes on failure + + + OTP-13115 Application(s): erts + + Fix crash on init:restart in embedded mode caused by + on_load handler process not being relaunched leading to + load failure for modules such as crypto and asn1rt_nif + that need it to be present for correct NIF loading. + + + OTP-13125 Application(s): erts + + Fix maps decode in erlang:binary_to_term/1 + + Decoding a term with a large (HAMT) map in an small + (FLAT) map could cause a critical error if the external + format was not produced by beam. + + + OTP-13146 Application(s): erts + + Fix very rare bug in GC when big maps with a lot of + hash collisions from a remote node are waiting in inner + message queue. + + + OTP-13150 Application(s): erts + + Fixed a bug that could cause a crash dump to become + almost empty. + + + --- Improvements and New Features --- + + OTP-13026 Application(s): erl_docgen, erts + + Updated the xmllint target to just check the xml files + with real documentation content. + Corrected some errors and added some missing target in + the DTD's. + + + OTP-13147 Application(s): erts + + Add function enif_getenv to read OS environment + variables in a portable way from NIFs. + + + Full runtime dependencies of erts-7.2: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- eunit-2.2.12 ---------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.2.12 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13017 Application(s): crypto, erts, eunit, snmp + + Small documentation fixes + + + Full runtime dependencies of eunit-2.2.12: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- hipe-3.14 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The hipe-3.14 application can *not* be applied independently of + other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- erts-7.1 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13048 Application(s): hipe + + Fix hipe bug causing segfaults when native code + constructs binaries starting with a zero-length integer + field. + + + OTP-13068 Application(s): dialyzer, hipe + + Reintroduce the erlang:make_fun/3 BIF in erl_bif_types. + + + OTP-13092 Application(s): hipe + + In certain cases of matching with very big binaries, + the HiPE compiler generated code that would fail the + match, even in cases that the matching was successful. + The problem was more quite noticeable on 32-bit + platforms. + + + --- Improvements and New Features --- + + OTP-13159 Application(s): hipe + + mikpe/hipe_x86_signal-musl-support + + + Full runtime dependencies of hipe-3.14: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-6.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13069 Application(s): inets + + Replace obs-folds with spaces instead of failing + + + OTP-13071 Application(s): inets + + Add validation fun for URI scheme to http_uri API + + + OTP-13093 Application(s): inets + + Handle stream bodies as documented. + + + OTP-13110 Application(s): inets + + Correct error handling of mod_esi generated chunks. + Send warning headers in chunk trailers instead of + generating an unexpected additional 500 request + response, when problems, such as a timeout occurs. + + + OTP-13117 Application(s): inets + + HTTP client terminates gracefully when an invalid + chunked length header is encountered. + + + --- Improvements and New Features --- + + OTP-12985 Application(s): inets + + Add default for SNI (Server Name Indication) when + running https using the inets HTTP-client. + + + OTP-13116 Application(s): inets + + Be forgiving to chunked sizes that have trailing + whitespaces as prior implementation was. Also some + legacy embedded devices does actually have trailing + whitespaces even though this in not according to the + spec. + + + Full runtime dependencies of inets-6.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- jinterface-1.6.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The jinterface-1.6.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13106 Application(s): jinterface + + Add missing Term tag matching switch statement that was + missing an external fun tag. + + + OTP-13165 Application(s): jinterface + + fixed writing small compressed values. + + + --------------------------------------------------------------------- + --- kernel-4.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-4.1.1 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- sasl-2.6 (first satisfied in OTP 18.1) + -- stdlib-2.6 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-12836 Application(s): kernel + + Host name lookups though inet_res, the Erlang DNS + resolver, are now done case insensitively according to + RFC 4343. Patch by Holger Weiß. + + + OTP-13040 Application(s): kernel + + IPv6 distribution handler has been updated to share + code with IPv4 so that all features are supported in + IPv6 as well. A bug when using an IPv4 address as + hostname has been fixed. + + + OTP-13083 Application(s): kernel + + Caching of host names in the internal DNS resolver + inet_res has been made character case insensitive for + host names according to RFC 4343. + + + OTP-13155 Application(s): kernel + Related Id(s): PR#646 + + Cooked file mode buffering has been fixed so + file:position/2 now works according to Posix on Posix + systems i.e. when file:position/2 returns an error the + file pointer is unaffected. + + The Windows system documentation, however, is unclear + on this point so the documentation of file:position/2 + still does not promise anything. + + Cooked file mode file:pread/2,3 and file:pwrite/2,3 + have been corrected to honor character encoding like + the combination of file:position/2 and file:read/2 or + file:write/2 already does. This is probably not very + useful since the character representation on the + caller's side is latin1, period. + + + --- Improvements and New Features --- + + OTP-12837 Application(s): kernel + + Add {line_delim, byte()} option to inet:setopts/2 and + decode_packet/3 + + + Full runtime dependencies of kernel-4.1.1: erts-7.0, sasl-2.6, + stdlib-2.6 + + + --------------------------------------------------------------------- + --- observer-2.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13030 Application(s): observer + + Show ets owner pid in crashdump viewers popup window, + thanks Leo Liu. + + + OTP-13044 Application(s): observer + + Several initialisms (eg, ERTS, ETS, SMP) are used as + headings. They were being capitalized incorrectly. + + + OTP-13163 Application(s): observer + + Fixed a crash in crashdump viewer when dump contained a + truncated binary. + + + Full runtime dependencies of observer-2.1.1: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- parsetools-2.1.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.1.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13031 Application(s): parsetools + + Correct the documentation of the error tuple returned + by Yecc and Leex. + + + Full runtime dependencies of parsetools-2.1.1: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12936 Application(s): public_key, ssh + + The 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384' and + 'ecdsa-sha2-nistp521' signature algorithms for ssh are + implemented. See RFC 5656. + + + OTP-13054 Application(s): public_key, ssh + Related Id(s): OTP-13052 + + There is now a file (public_key/priv/moduli) which + lists size-generator-modulus triples. The purpose is to + give servers the possibility to select the crypto + primes randomly among a list of pregenerated triples. + This reduces the risk for some attacks on + diffie-hellman negotiation. + + See the reference manual for public_key:dh_gex_group/4 + where the handling of this is described. + + The ssh server (ssh:daemon) uses this. + + + OTP-13132 Application(s): public_key + + Add different upper bounds for diffrent string types as + suggested by comment in PKIX1Explicit88. + + + Full runtime dependencies of public_key-1.1: asn1-3.0, crypto-3.3, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- runtime_tools-1.9.2 --------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.9.2 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13078 Application(s): runtime_tools + + Clarified dbg:stop documentation + + + Full runtime dependencies of runtime_tools-1.9.2: erts-7.0, + kernel-3.0, mnesia-4.12, stdlib-2.0 + + + --------------------------------------------------------------------- + --- sasl-2.6.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The sasl-2.6.1 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-4.1 (first satisfied in OTP 18.1) + -- stdlib-2.6 (first satisfied in OTP 18.1) + + + --- Improvements and New Features --- + + OTP-13000 Application(s): sasl + + Documentation improvements + + + Full runtime dependencies of sasl-2.6.1: erts-6.0, kernel-4.1, + stdlib-2.6, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.2.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13017 Application(s): crypto, erts, eunit, snmp + + Small documentation fixes + + + --- Improvements and New Features --- + + OTP-13101 Application(s): snmp + + Update configuration check of imask ( list of ones and + zeros) to allow the empty list. + + + Full runtime dependencies of snmp-5.2.1: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.2 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12699 Application(s): ssh + Related Id(s): OTP-11688 + + Better error handling in ssh_file. There was some rare + errors when a NFS-mounted file was opened by ssh_file + and then remotely deleted during reading. That caused + an endless loop. + + That bug is now fixed. + + + OTP-12759 Application(s): ssh + + Fixed a bug in the compression algorithm + + + OTP-12966 Application(s): ssh + Related Id(s): seq12945 + + It is now possible to start more than one daemon with a + file descriptor given in option fd. Each daemon must of + course have a unique file descriptor. + + + OTP-13029 Application(s): ssh + + Fixed a bug that caused the option dh_gex_limit to be + ignored. + + + OTP-13158 Application(s): ssh + + A problem is fixed with the ssh:connect option + pref_public_key_algs specifying user keys. + + + --- Improvements and New Features --- + + OTP-12003 Application(s): ssh + + Document updates in the ssh reference manual: app doc + file and ssh_connection. + + + OTP-12787 Application(s): ssh + + The authorization phase is made stateful to prevent ssh + acting on messages sent in wrong order. + + + OTP-12792 Application(s): ssh + Related Id(s): #5214, 6166, Codenomicon + + Testcases for bad message lengths and for bad subfield + lengths added. + + + OTP-12936 Application(s): public_key, ssh + + The 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384' and + 'ecdsa-sha2-nistp521' signature algorithms for ssh are + implemented. See RFC 5656. + + + OTP-12939 Application(s): ssh + + The crypto algorithms 'aes192-ctr' and 'aes256-ctr' are + implemented. See RFC 4344. + + + OTP-13018 Application(s): ssh + + The ciphers and macs AEAD_AES_128_GCM and + AEAD_AES_256_GCM are implemented but not enabled per + default. See the SSH App Reference Manual and RFC5647 + for details. + + The ciphers [email protected] and + [email protected] are also implemented and + available in the default configuration. + + + OTP-13052 Application(s): ssh + Related Id(s): OTP-13054 + + The ssh:daemon option dh_gex_groups is extended to read + a user provided ssh moduli file with generator-modulus + pairs. The file is in openssh format. + + + OTP-13054 Application(s): public_key, ssh + Related Id(s): OTP-13052 + + There is now a file (public_key/priv/moduli) which + lists size-generator-modulus triples. The purpose is to + give servers the possibility to select the crypto + primes randomly among a list of pregenerated triples. + This reduces the risk for some attacks on + diffie-hellman negotiation. + + See the reference manual for public_key:dh_gex_group/4 + where the handling of this is described. + + The ssh server (ssh:daemon) uses this. + + + OTP-13055 Application(s): ssh + Related Id(s): OTP-13053 + + The ssh:daemon option pwdfun now also takes a fun/4. + This enables the user to 1) check userid-password in + another way than the builtin algorithm, 2) implement + rate limiting per user or source IP or IP+Port, and 3) + implement blocking of missbehaving peers. + + The old fun/2 still works as previously. + + + OTP-13066 Application(s): ssh + + There is now a new option to make the server limit the + size range of moduli available for the diffie-hellman + group exchange negotiation. See option + {dh_gex_limits,{Min,Max}} in ssh:daemon/3. + + + OTP-13067 Application(s): ssh + + Ecdh key exchange now validates compressed and + uncompressed keys as defined in rfc5656 + + + OTP-13109 Application(s): ssh + + Search order for the .ssh directory are changed so + $HOME is tried before init:get_argument(home). + + + OTP-13130 Application(s): ssh + + The sftp receive window handling is optimized so it + will not update the remote end too often. This makes + "sftp mget" considerable faster. + + + OTP-13156 Application(s): ssh + + The option key_cb is extended to take an optional list + that is passed to the callback module as an option. + With this it is possible to have different keys + depending on which host that is connected. Another + possibility is to write a callback module that fetches + keys etc from a database. + + Thanks to Vipin Nair. + + + Full runtime dependencies of ssh-4.2: crypto-3.3, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --- ssl-7.2 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12838 Application(s): ssl + + Honor distribution port range options + + + OTP-13134 Application(s): ssl + + Correct supervisor specification in TLS distribution. + + + OTP-13141 Application(s): ssl + + Correct cache timeout + + + OTP-13144 Application(s): ssl + + Avoid crash and restart of ssl process when key file + does not exist. + + + OTP-13166 Application(s): ssl + + Enable passing of raw socket options on the format + {raw,_,_,_} to the underlying socket. + + + OTP-13189 Application(s): ssl + + Hibernation with small or a zero timeout will now work + as expected + + + --- Improvements and New Features --- + + OTP-12392 Application(s): ssl + + *** HIGHLIGHT *** + + Add upper limit for session cache, configurable on ssl + application level. + + If upper limit is reached, invalidate the current cache + entries, e.i the session lifetime is the max time a + session will be keept, but it may be invalidated + earlier if the max limit for the table is reached. This + will keep the ssl manager process well behaved, not + exhusting memeory. Invalidating the entries will + incrementally empty the cache to make room for fresh + sessions entries. + + + OTP-12457 Application(s): ssl + + Use new time functions to measure passed time. + + + OTP-13142 Application(s): ssl + + Improved error handling in TLS distribution + + + OTP-13143 Application(s): ssl + + Distribution over TLS now honors the nodelay + distribution flag + + + Full runtime dependencies of ssl-7.2: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- stdlib-2.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The stdlib-2.7 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-4.1 (first satisfied in OTP 18.1) + -- sasl-2.6 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13084 Application(s): stdlib + + The Erlang Pretty Printer uses :: for function type + constraints. + + A bug concerning pretty printing of annotated type + union elements in map pair types has been fixed. + + Some minor issues regarding the documentation of types + and specs have been corrected. + + + OTP-13145 Application(s): stdlib + + The shell command rp prints strings as lists of + integers if pretty printing of lists is set to false. + + + OTP-13157 Application(s): stdlib + + The shell would crash if a bit syntax expression with + conflicting types were given (e.g. if a field type was + given as 'integer-binary'). (Thanks to Aleksei Magusev + for reporting this bug.) + + + OTP-13162 Application(s): stdlib + + The rand:export_seed/0 would never return 'undefined' + even if no seed has previously been created. Fixed to + return 'undefined' if there is no seed in the process + dictionary. + + + --- Improvements and New Features --- + + OTP-13032 Application(s): stdlib + + Add support for the Delete, Home and End keys in the + Erlang shell. + + + OTP-13063 Application(s): stdlib + + beam_lib:all_chunks/1 and beam_lib:build_module/1 have + been documented. + + + Full runtime dependencies of stdlib-2.7: compiler-5.0, crypto-3.3, + erts-7.0, kernel-4.1, sasl-2.6 + + + --------------------------------------------------------------------- + --- test_server-3.9.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The test_server-3.9.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13015 Application(s): test_server + + When generating Makefile from Makefile.src, + ts_lib:get_arg/4 earlier removed all spaces in the + extracted argument. The code was probably meant for + removing leading and trailing spaces only, and is now + corrected to do so. + + + OTP-13181 Application(s): common_test, test_server + + With the Common Test 'create_priv_dir' start option set + to 'auto_per_tc', the name of the priv directory for a + configuration function could clash with the name of the + priv directory for a test case, which would cause Test + Server failure. This error has been corrected. + + + Full runtime dependencies of test_server-3.9.1: erts-7.0, inets-6.0, + kernel-4.0, observer-2.1, runtime_tools-1.8.16, stdlib-2.5, + syntax_tools-1.7, tools-2.8 + + + --------------------------------------------------------------------- + --- tools-2.8.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-2.8.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13042 Application(s): tools + + The emacs mode does not add a newline after the arrow + on -callback lines anymore. + + + Full runtime dependencies of tools-2.8.2: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5, + webtool-0.8.10 + + + --------------------------------------------------------------------- + --- typer-0.9.10 ---------------------------------------------------- + --------------------------------------------------------------------- + + The typer-0.9.10 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13010 Application(s): typer + + Fix a bug that could result in a crash when printing + warnings onto standard error. + + + Full runtime dependencies of typer-0.9.10: compiler-5.0, + dialyzer-2.7, erts-6.0, hipe-3.10.3, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- wx-1.6 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.6 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13160 Application(s): wx + + Add wxOverlay and make wxPostScripDC optional to make + it easier to build on windows. + + Correct some function specifications. + + The driver implementation have been optimized and now + invokes commands after events have been sent to erlang. + + + Full runtime dependencies of wx-1.6: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.9 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13070 Application(s): xmerl + + Removed the built-in definitions of xml.xsd from the + xmerl_xsd module. + + + Full runtime dependencies of xmerl-1.3.9: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Andrey Mayorov, Ben Tyler, Constantin Rack, Danil Zagoskin, David + Whitlock, Derek Brown, Eric Appelt, Gary Coulbourne, + Holger Weiß, Ian Denhardt, Johannes Weißl, Josh Adams, Kirill + Zaborsky, Kirilll Zaborsky, Kostis Sagonas, Loïc Hoguin, Luca + Favatella, Luis Rascao, Magnus Henoch, Magnus Lång, Magnus + Ottenklinger, Mikael Pettersson, Nico Kruber, Pawel Pikula, Pierre + Fenoll, Péter Gömöri, Riccardo, Rich Morin, Roger Lipscombe, Rory + Byrne, Serge Aleynikov, Sergey Savenko, Steven Danna, Tobias + Schlager, Tom Briden, Tom Szilagyi, Tuncer Ayaz, Vipin Nair, Vlad + Dumitrescu, soranoba, xsipewe + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.1.README.txt b/release-notes/OTP-18.3.1.README.txt new file mode 100644 index 0000000..a98aa36 --- /dev/null +++ b/release-notes/OTP-18.3.1.README.txt @@ -0,0 +1,130 @@ +Patch Package: OTP 18.3.1 +Git Tag: OTP-18.3.1 +Date: 2016-04-04 +Trouble Report Id: OTP-13417, OTP-13418, OTP-13419, OTP-13420, + OTP-13423, OTP-13424, OTP-13446, OTP-13452 +Seq num: +System: OTP +Release: 18 +Application: erts-7.3.1, inets-6.2.1, mnesia-4.13.4 +Predecessor: OTP 18.3 + + Check out the git tag OTP-18.3.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. + + --------------------------------------------------------------------- + --- erts-7.3.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-7.3.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13418 Application(s): erts + + process_info(Pid, last_calls) did not work for Pid /= + self(). + + + OTP-13419 Application(s): erts + + Make sure to create a crash dump when running out of + memory. This was accidentally removed in the erts-7.3 + release. + + + OTP-13420 Application(s): erts + + Schedulers could be woken by a premature timeout on + Linux. This premature wakeup was however harmless. + + + OTP-13424 Application(s): erts + Related Id(s): OTP-10336 + + A process communicating with a port via one of the + erlang:port_* BIFs could potentially end up in an + inconsistent state if the port terminated during the + communication. When this occurred the process could + later block in a receive even though it had messages + matching in its message queue. + + This bug was introduced in erts version 5.10 (OTP + R16A). + + + OTP-13446 Application(s): erts + + The reference count of a process structure could under + rare circumstances be erroneously managed. When this + happened invalid memory accesses occurred. + + + OTP-13452 Application(s): erts + + Fix race between process_flag(trap_exit,true) and a + received exit signal. + + A process could terminate due to exit signal even + though process_flag(trap_exit,true) had returned. A + very specific timing between call to process_flag/2 and + exit signal from another scheduler was required for + this to happen. + + + Full runtime dependencies of erts-7.3.1: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- inets-6.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.2.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13417 Application(s): inets + + Mend ipv6_host_with_brackets option in httpc + + + Full runtime dependencies of inets-6.2.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- mnesia-4.13.4 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.13.4 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13423 Application(s): mnesia + + Mnesia transactions could hang while waiting on a + response from a node who had stopped. + + + Full runtime dependencies of mnesia-4.13.4: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Andrey Mayorov + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.2.README.txt b/release-notes/OTP-18.3.2.README.txt new file mode 100644 index 0000000..8f74bd2 --- /dev/null +++ b/release-notes/OTP-18.3.2.README.txt @@ -0,0 +1,66 @@ +Patch Package: OTP 18.3.2 +Git Tag: OTP-18.3.2 +Date: 2016-04-27 +Trouble Report Id: OTP-13261, OTP-13510, OTP-13511 +Seq num: +System: OTP +Release: 18 +Application: inets-6.2.2, ssl-7.3.1 +Predecessor: OTP 18.3.1 + + Check out the git tag OTP-18.3.2, 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. + + --------------------------------------------------------------------- + --- inets-6.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.2.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13510 Application(s): inets + + Add environment information item peer_cert to mod_esi + + + Full runtime dependencies of inets-6.2.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssl-7.3.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.3.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13511 Application(s): ssl + + Corrections to cipher suite handling using the 3 and 4 + tuple format in addition to commit + 89d7e21cf4ae988c57c8ef047bfe85127875c70c + + + --- Improvements and New Features --- + + OTP-13261 Application(s): ssl + + Make values for the TLS-1.2 signature_algorithms + extension configurable + + + Full runtime dependencies of ssl-7.3.1: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.3.README.txt b/release-notes/OTP-18.3.3.README.txt new file mode 100644 index 0000000..fafe4db --- /dev/null +++ b/release-notes/OTP-18.3.3.README.txt @@ -0,0 +1,125 @@ +Patch Package: OTP 18.3.3 +Git Tag: OTP-18.3.3 +Date: 2016-05-04 +Trouble Report Id: OTP-13462, OTP-13513, OTP-13525, OTP-13533, + OTP-13535, OTP-13536, OTP-13537 +Seq num: seq13077 +System: OTP +Release: 18 +Application: common_test-1.12.1, inets-6.2.3, ssl-7.3.2 +Predecessor: OTP 18.3.2 + + Check out the git tag OTP-18.3.3, 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. + + --------------------------------------------------------------------- + --- common_test-1.12.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.12.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13462 Application(s): common_test + Related Id(s): seq13077 + + The nodelay option used to be enabled (true) by default + for sockets opened by the Common Test telnet client. + This appeared to cause communication problems with + telnet servers on some systems, and therefore the + option is no longer used. Its value may instead be + specified in the telnet connection settings. See the + man page for ct_telnet for details. Please note that + the interface function connect in unix_telnet has been + updated with an extra argument and is now + unix_telnet:connect/7. + + + OTP-13513 Application(s): common_test + + Fix bug in cth_surefire: When a pre_init_per_suite hook + fails before reaching the + cth_surefire:pre_init_per_suite, cth_surefire produced + incorrect XML. + + + OTP-13535 Application(s): common_test + + The ct:get_timetrap_info/0 function has been updated to + return more information about timetrap scaling. + + + OTP-13536 Application(s): common_test + + A problem with stylesheet HTML tags getting incorrectly + escaped by Common Test has been corrected. + + + OTP-13537 Application(s): common_test + + The ct_run start flag -no_esc_chars and ct:run_test/1 + start option {esc_chars,Bool} have been introduced to + make it possible to disable automatic escaping of + characters. Automatic escaping of special HTML + characters printed with io:format/1,2 and + ct:pal/1,2,3,4 was introduced in Common Test 1.12. The + new flag/option may be used to disable this feature for + backwards compatibility reasons. (The option is also + supported in test specifications). + + + Full runtime dependencies of common_test-1.12.1: 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-2.5, test_server-3.9, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- inets-6.2.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.2.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13533 Application(s): inets + + Put back unused module inets_regexp and remove it in + OTP 19 instead as it is an incompatibility, although it + is an undocumented module and should not affect other + applications. + + + Full runtime dependencies of inets-6.2.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssl-7.3.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.3.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13525 Application(s): ssl + + Correct cipher suites conversion and gaurd expression. + Caused problems with GCM cipher suites and client side + option to set signature_algorithms extention values. + + + Full runtime dependencies of ssl-7.3.2: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.1.README.txt b/release-notes/OTP-18.3.4.1.README.txt new file mode 100644 index 0000000..b3a74cf --- /dev/null +++ b/release-notes/OTP-18.3.4.1.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 18.3.4.1 +Git Tag: OTP-18.3.4.1 +Date: 2016-06-27 +Trouble Report Id: OTP-13674 +Seq num: +System: OTP +Release: 18 +Application: ssh-4.2.2.1 +Predecessor: OTP 18.3.4 + + Check out the git tag OTP-18.3.4.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. + + --------------------------------------------------------------------- + --- ssh-4.2.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.2.2.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13674 Application(s): ssh + Related Id(s): TR-HU92273 + + SSH client does not any longer retry a bad password + given as option to ssh:connect et al. + + + Full runtime dependencies of ssh-4.2.2.1: crypto-3.3, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.2.README.txt b/release-notes/OTP-18.3.4.2.README.txt new file mode 100644 index 0000000..d890415 --- /dev/null +++ b/release-notes/OTP-18.3.4.2.README.txt @@ -0,0 +1,90 @@ +Patch Package: OTP 18.3.4.2 +Git Tag: OTP-18.3.4.2 +Date: 2016-07-25 +Trouble Report Id: OTP-13730, OTP-13731, OTP-13753 +Seq num: seq13135, seq13150 +System: OTP +Release: 18 +Application: common_test-1.12.1.1, erts-7.3.1.1, + ssl-7.3.3.1 +Predecessor: OTP 18.3.4.1 + + Check out the git tag OTP-18.3.4.2, 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. + + --------------------------------------------------------------------- + --- common_test-1.12.1.1 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.12.1.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13730 Application(s): common_test + Related Id(s): seq13135 + + If the telnet server would pause during transmission of + a line of text before terminating the line, the + ct_telnet:expect/3 function would print the line twice + in the test case HTML log. This problem has been fixed. + + + Full runtime dependencies of common_test-1.12.1.1: 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-2.5, test_server-3.9, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- erts-7.3.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The erts-7.3.1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13731 Application(s): erts + Related Id(s): ERL-188 + + Fix scheduler deadlock bug in ets:update_counter/4 when + key is not found and inserting the default object + causes the table to grow. + + + Full runtime dependencies of erts-7.3.1.1: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssl-7.3.3.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.3.3.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13753 Application(s): ssl + Related Id(s): seq13150 + + The TLS/SSL protocol version selection for the SSL + server has been corrected to follow RFC 5246 Appendix + E.1 especially in case where the list of supported + versions has gaps. Now the server selects the highest + protocol version it supports that is not higher than + what the client supports. + + + Full runtime dependencies of ssl-7.3.3.1: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.4.README.txt b/release-notes/OTP-18.3.4.4.README.txt new file mode 100644 index 0000000..7118e38 --- /dev/null +++ b/release-notes/OTP-18.3.4.4.README.txt @@ -0,0 +1,46 @@ +Patch Package: OTP 18.3.4.4 +Git Tag: OTP-18.3.4.4 +Date: 2016-08-12 +Trouble Report Id: OTP-13798, OTP-13799 +Seq num: +System: OTP +Release: 18 +Application: erts-7.3.1.2 +Predecessor: OTP 18.3.4.3 + + Check out the git tag OTP-18.3.4.4, 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. + + --------------------------------------------------------------------- + --- erts-7.3.1.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The erts-7.3.1.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13798 Application(s): erts + Related Id(s): OTP-11997 + + Fixed a race that could cause a lost wakeup of a + process that timed out in a receive ... after. This bug + was introduced in ERTS version 7.0. + + + OTP-13799 Application(s): erts + + Fixed segfault after writing an erl crash dump. + + + Full runtime dependencies of erts-7.3.1.2: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.5.README.txt b/release-notes/OTP-18.3.4.5.README.txt new file mode 100644 index 0000000..dd78e02 --- /dev/null +++ b/release-notes/OTP-18.3.4.5.README.txt @@ -0,0 +1,164 @@ +Patch Package: OTP 18.3.4.5 +Git Tag: OTP-18.3.4.5 +Date: 2017-02-02 +Trouble Report Id: OTP-13425, OTP-13866, OTP-13869, OTP-14159, + OTP-14166, OTP-14169, OTP-14173 +Seq num: seq13261, seq13262 +System: OTP +Release: 18 +Application: crypto-3.6.3.1, erts-7.3.1.3, inets-6.2.4.1, + ssh-4.2.2.3 +Predecessor: OTP 18.3.4.4 + + Check out the git tag OTP-18.3.4.5, 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. + + --------------------------------------------------------------------- + --- crypto-3.6.3.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-3.6.3.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-14169 Application(s): crypto, ssh + Related Id(s): seq13261 + + Key exchange algorithms + diffie-hellman-group-exchange-sha* optimized, up to a + factor of 11 for the slowest ( = biggest and safest) + one. + + + Full runtime dependencies of crypto-3.6.3.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- erts-7.3.1.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The erts-7.3.1.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13425 Application(s): erts + Related Id(s): ERL-94 + + A bug has been fixed where if erlang was started +B on + a unix platform it would be killed by a SIGUSR2 signal + when creating a crash dump. + + + OTP-13866 Application(s): erts + + Calls to erl_drv_send_term() or erl_drv_output_term() + from a non-scheduler thread while the corresponding + port was invalid caused the emulator to enter an + inconsistent state which eventually caused an emulator + crash. + + + OTP-13869 Application(s): erts + + Driver and NIF operations accessing processes or ports + could cause an emulator crash when used from + non-scheduler threads. Those operations are: + + -- erl_drv_send_term() + + -- driver_send_term() + + -- erl_drv_output_term() + + -- driver_output_term() + + -- enif_send() + + -- enif_port_command() + + + OTP-14159 Application(s): erts + Related Id(s): ERL-340 + + Fix bug in binary_to_term for binaries created by + term_to_binary with option compressed. The bug can + cause badarg exception for a valid binary when Erlang + VM is linked against a zlib library of version 1.2.9 or + newer. Bug exists since OTP 17.0. + + + Full runtime dependencies of erts-7.3.1.3: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- inets-6.2.4.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.2.4.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14173 Application(s): inets + Related Id(s): seq13262 + + Shutdown gracefully on connection or TLS handshake + errors + + + Full runtime dependencies of inets-6.2.4.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssh-4.2.2.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.2.2.3 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- crypto-3.6.3.1 (first satisfied in OTP 18.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14166 Application(s): ssh + + The key exchange algorithm + diffie-hellman-group-exchange-sha* has a server-option + {dh_gex_limits,{Min,Max}}. There was a hostkey + signature validation error on the client side if the + option was used and the Min or the Max differed from + the corresponding values obtained from the client. + + This bug is now corrected. + + + --- Improvements and New Features --- + + OTP-14169 Application(s): crypto, ssh + Related Id(s): seq13261 + + Key exchange algorithms + diffie-hellman-group-exchange-sha* optimized, up to a + factor of 11 for the slowest ( = biggest and safest) + one. + + + Full runtime dependencies of ssh-4.2.2.3: crypto-3.6.3.1, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.6.README.txt b/release-notes/OTP-18.3.4.6.README.txt new file mode 100644 index 0000000..5cc97a3 --- /dev/null +++ b/release-notes/OTP-18.3.4.6.README.txt @@ -0,0 +1,143 @@ +Patch Package: OTP 18.3.4.6 +Git Tag: OTP-18.3.4.6 +Date: 2017-11-16 +Trouble Report Id: OTP-14491, OTP-14514, OTP-14522, OTP-14548, + OTP-14590, OTP-14763, OTP-14765 +Seq num: ERIERL-48, ERIERL-74, ERL-468, ERL-474 +System: OTP +Release: 18 +Application: compiler-6.0.3.1, eldap-1.2.1.1, + erts-7.3.1.4, ssh-4.2.2.4 +Predecessor: OTP 18.3.4.5 + + Check out the git tag OTP-18.3.4.6, 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. + + --------------------------------------------------------------------- + --- compiler-6.0.3.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-6.0.3.1 application can be applied independently of + other applications on a full OTP 18 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. + + + Full runtime dependencies of compiler-6.0.3.1: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- eldap-1.2.1.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.1.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-14765 Application(s): eldap, jinterface + + Misc building environment updates + + + Full runtime dependencies of eldap-1.2.1.1: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erts-7.3.1.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The erts-7.3.1.4 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14491 Application(s): erts + + Fix performance bug in pre-allocators that could cause + them to permanently fall back on normal more expensive + memory allocation. Pre-allocators are used for quick + allocation of short lived meta data used by messages + and other scheduled tasks. Bug exists since OTP_R15B02. + + + OTP-14514 Application(s): erts + + Fixed bug in operator bxor causing erroneuos result + when one operand is a big *negative* integer with the + lowest N*W bits as zero and the other operand not + larger than N*W bits. N is an integer of 1 or larger + and W is 32 or 64 depending on word size. + + + OTP-14548 Application(s): erts + Related Id(s): ERL-468, OTP-11997 + + A timer internal bit-field used for storing scheduler + id was too small. As a result, VM internal timer data + structures could become inconsistent when using 1024 + schedulers on the system. Note that systems with less + than 1024 schedulers are not effected by this bug. + + This bug was introduced in ERTS version 7.0 (OTP 18.0). + + + OTP-14590 Application(s): erts + Related Id(s): ERL-474 + + Fixed bug in binary_to_term and binary_to_atom that + could cause VM crash. Typically happens when the last + character of an UTF8 string is in the range 128 to 255, + but truncated to only one byte. Bug exists in + binary_to_term since ERTS version 5.10.2 (OTP_R16B01) + and binary_to_atom since ERTS version 9.0 (OTP-20.0). + + + Full runtime dependencies of erts-7.3.1.4: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.2.2.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.2.2.4 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- crypto-3.6.3.1 (first satisfied in OTP 18.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14763 Application(s): ssh + Related Id(s): ERIERL-74 + + Trailing white space was removed at end of the + hello-string. This caused interoperability problems + with some other ssh-implementations (e.g OpenSSH 7.3p1 + on Solaris 11) + + + Full runtime dependencies of ssh-4.2.2.4: crypto-3.6.3.1, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.7.README.txt b/release-notes/OTP-18.3.4.7.README.txt new file mode 100644 index 0000000..c3892dc --- /dev/null +++ b/release-notes/OTP-18.3.4.7.README.txt @@ -0,0 +1,89 @@ +Patch Package: OTP 18.3.4.7 +Git Tag: OTP-18.3.4.7 +Date: 2017-11-23 +Trouble Report Id: OTP-14748 +Seq num: +System: OTP +Release: 18 +Application: ssl-7.3.3.2 +Predecessor: OTP 18.3.4.6 + + Check out the git tag OTP-18.3.4.7, 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. + + --------------------------------------------------------------------- + --- ssl-7.3.3.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.3.3.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14748 Application(s): ssl + + An erlang TLS server configured with cipher suites + using rsa key exchange, may be vulnerable to an + Adaptive Chosen Ciphertext attack (AKA Bleichenbacher + attack) against RSA, which when exploited, may result + in plaintext recovery of encrypted messages and/or a + Man-in-the-middle (MiTM) attack, despite the attacker + not having gained access to the server’s private key + itself. CVE-2017-1000385 + + Exploiting this vulnerability to perform plaintext + recovery of encrypted messages will, in most practical + cases, allow an attacker to read the plaintext only + after the session has completed. Only TLS sessions + established using RSA key exchange are vulnerable to + this attack. + + Exploiting this vulnerability to conduct a MiTM attack + requires the attacker to complete the initial attack, + which may require thousands of server requests, during + the handshake phase of the targeted session within the + window of the configured handshake timeout. This attack + may be conducted against any TLS session using RSA + signatures, but only if cipher suites using RSA key + exchange are also enabled on the server. The limited + window of opportunity, limitations in bandwidth, and + latency make this attack significantly more difficult + to execute. + + RSA key exchange is enabled by default although least + prioritized if server order is honored. For such a + cipher suite to be chosen it must also be supported by + the client and probably the only shared cipher suite. + + Captured TLS sessions encrypted with ephemeral cipher + suites (DHE or ECDHE) are not at risk for subsequent + decryption due to this vulnerability. + + As a workaround if default cipher suite configuration + was used you can configure the server to not use + vulnerable suites with the ciphers option like this: + + {ciphers, [Suite || Suite <- ssl:cipher_suites(), + element(1,Suite) =/= rsa]} + + that is your code will look somethingh like this: + + ssl:listen(Port, [{ciphers, [Suite || Suite <- + ssl:cipher_suites(), element(1,S) =/= rsa]} | + Options]). + + Thanks to Hanno Böck, Juraj Somorovsky and Craig Young + for reporting this vulnerability. + + + Full runtime dependencies of ssl-7.3.3.2: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.8.README.txt b/release-notes/OTP-18.3.4.8.README.txt new file mode 100644 index 0000000..5bccd1a --- /dev/null +++ b/release-notes/OTP-18.3.4.8.README.txt @@ -0,0 +1,44 @@ +Patch Package: OTP 18.3.4.8 +Git Tag: OTP-18.3.4.8 +Date: 2018-03-05 +Trouble Report Id: OTP-14881 +Seq num: +System: OTP +Release: 18 +Application: ssh-4.2.2.5 +Predecessor: OTP 18.3.4.7 + + Check out the git tag OTP-18.3.4.8, 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. + + --------------------------------------------------------------------- + --- ssh-4.2.2.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.2.2.5 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- crypto-3.6.3.1 (first satisfied in OTP 18.3.4.5) + + + --- Improvements and New Features --- + + OTP-14881 Application(s): ssh + + Default exec is disabled when a user-defined shell is + enabled. + + + Full runtime dependencies of ssh-4.2.2.5: crypto-3.6.3.1, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.9.README.txt b/release-notes/OTP-18.3.4.9.README.txt new file mode 100644 index 0000000..4edb83b --- /dev/null +++ b/release-notes/OTP-18.3.4.9.README.txt @@ -0,0 +1,44 @@ +Patch Package: OTP 18.3.4.9 +Git Tag: OTP-18.3.4.9 +Date: 2018-04-24 +Trouble Report Id: OTP-15018 +Seq num: +System: OTP +Release: 18 +Application: ssh-4.2.2.6 +Predecessor: OTP 18.3.4.8 + + Check out the git tag OTP-18.3.4.9, 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. + + --------------------------------------------------------------------- + --- ssh-4.2.2.6 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.2.2.6 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- crypto-3.6.3.1 (first satisfied in OTP 18.3.4.5) + + + --- Fixed Bugs and Malfunctions --- + + OTP-15018 Application(s): ssh + + Fix rare spurios shutdowns of ssh servers when + receiveing {'EXIT',_,normal} messages. + + + Full runtime dependencies of ssh-4.2.2.6: crypto-3.6.3.1, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.4.README.txt b/release-notes/OTP-18.3.4.README.txt new file mode 100644 index 0000000..ec84751 --- /dev/null +++ b/release-notes/OTP-18.3.4.README.txt @@ -0,0 +1,88 @@ +Patch Package: OTP 18.3.4 +Git Tag: OTP-18.3.4 +Date: 2016-06-14 +Trouble Report Id: OTP-13490, OTP-13546, OTP-13635, OTP-13663, + OTP-13670 +Seq num: seq13132 +System: OTP +Release: 18 +Application: inets-6.2.4, ssl-7.3.3 +Predecessor: OTP 18.3.3 + + Check out the git tag OTP-18.3.4, 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. + + --------------------------------------------------------------------- + --- inets-6.2.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.2.4 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13663 Application(s): inets + Related Id(s): seq13132 + + Handle multiple \t in mime types file + + + Full runtime dependencies of inets-6.2.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssl-7.3.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.3.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13546 Application(s): ssl + + Correct ssl:prf/5 to use the negotiated cipher suite's + prf function in ssl:prf/5 instead of the default prf. + + + OTP-13635 Application(s): ssl + + Timeouts may have the value 0, guards have been + corrected to allow this + + + OTP-13670 Application(s): ssl + + Change of internal handling of hash sign pairs as the + used one enforced to much restrictions making some + valid combinations unavailable. + + + --- Improvements and New Features --- + + OTP-13490 Application(s): ssl + + Create a little randomness in sending of session + invalidation messages, to mitigate load when whole + table is invalidated. + + + Full runtime dependencies of ssl-7.3.3: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Joe DeVivo, Kenneth Lakin + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-18.3.README.txt b/release-notes/OTP-18.3.README.txt new file mode 100644 index 0000000..f789230 --- /dev/null +++ b/release-notes/OTP-18.3.README.txt @@ -0,0 +1,1417 @@ +Patch Package: OTP 18.3 +Git Tag: OTP-18.3 +Date: 2016-03-15 +Trouble Report Id: OTP-12272, OTP-12862, OTP-12955, OTP-12994, + OTP-13003, OTP-13057, OTP-13060, OTP-13103, + OTP-13164, OTP-13185, OTP-13200, OTP-13201, + OTP-13208, OTP-13216, OTP-13217, OTP-13218, + OTP-13219, OTP-13220, OTP-13222, OTP-13223, + OTP-13228, OTP-13230, OTP-13231, OTP-13232, + OTP-13234, OTP-13237, OTP-13238, OTP-13239, + OTP-13241, OTP-13242, OTP-13245, OTP-13249, + OTP-13250, OTP-13251, OTP-13253, OTP-13254, + OTP-13257, OTP-13264, OTP-13268, OTP-13269, + OTP-13270, OTP-13271, OTP-13272, OTP-13277, + OTP-13278, OTP-13279, OTP-13281, OTP-13282, + OTP-13284, OTP-13285, OTP-13286, OTP-13287, + OTP-13290, OTP-13291, OTP-13292, OTP-13298, + OTP-13299, OTP-13300, OTP-13301, OTP-13302, + OTP-13305, OTP-13306, OTP-13309, OTP-13311, + OTP-13312, OTP-13324, OTP-13326, OTP-13327, + OTP-13328, OTP-13334, OTP-13335, OTP-13336, + OTP-13338, OTP-13342, OTP-13363, OTP-13364, + OTP-13365, OTP-13376, OTP-13377, OTP-13378, + OTP-13379, OTP-13381, OTP-13386, OTP-13388, + OTP-13389, OTP-13391, OTP-13403, OTP-13404, + OTP-13406, OTP-9375 +Seq num: seq12979, seq12991, seq13005, seq13053, + seq13069, seq13070 +System: OTP +Release: 18 +Application: asn1-4.0.2, common_test-1.12, compiler-6.0.3, + cosNotification-1.2.1, cosTime-1.2.1, + cosTransactions-1.3.1, crypto-3.6.3, + debugger-4.1.2, dialyzer-2.9, + diameter-1.11.2, edoc-0.7.18, eldap-1.2.1, + erl_docgen-0.4.2, erl_interface-3.8.2, + erts-7.3, eunit-2.2.13, hipe-3.15, inets-6.2, + kernel-4.2, mnesia-4.13.3, observer-2.1.2, + orber-3.8.1, public_key-1.1.1, + runtime_tools-1.9.3, sasl-2.7, snmp-5.2.2, + ssh-4.2.2, ssl-7.3, stdlib-2.8, + test_server-3.10, tools-2.8.3, webtool-0.9.1, + wx-1.6.1, xmerl-1.3.10 +Predecessor: OTP 18.2.4 + + Check out the git tag OTP-18.3, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-13363 Application(s): ssl + + Use application:ensure_all_started/2 instead of + hard-coding dependencies + + + --------------------------------------------------------------------- + --- asn1-4.0.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-4.0.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13257 Application(s): asn1 + + When compiling to the PER format, the ASN.1 compiler + would crash when attempting to compile an ASN.1 module + with a constrained INTEGER with more than 65536 values + and named values. (Thanks to Ingars for reporting this + bug.) + + + OTP-13324 Application(s): asn1 + + The ASN.1 compiler will now emit Dialyzer suppressions + for improper lists. Thus, there is no longer any need + to use --Wno_improper_lists when analyzing modules + generated by the ASN.1 compiler. + + + Full runtime dependencies of asn1-4.0.2: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.12 ------------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.12 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13003 Application(s): common_test + Related Id(s): seq13005 + + This update fixes the problem with generic printouts in + the html log file not having special characters + escaped. Printouts made with io:format/2 and ct:pal/2 + will now get special characters escaped automatically. + Common Test will not attempt to escape characters + printed with ct:log/2 since it is assumed that the user + may want to print html tagged data using this function. + A new function, ct:log/5, has been added, which offers + optional escaping of characters. The latter function + may also be used to print text to the log without + headers and CSS class wrapping (analogue to + io:format/2). + + + OTP-13386 Application(s): common_test + + Commit 4cf832f1ad163f5b25dd8a6f2d314c169c23c82f + erroneously removed logging of open and close of + netconf connections. This is now corrected. + + + OTP-13388 Application(s): common_test, test_server + + The directory to which nodes started with + test_server:start_node/3 writes their erl_crash.dump is + changed. The crashdumps were earlier written to the + directory of test_server.beam, but in later versions of + Microsoft Windows this is no longer writable (even for + administrators). The framework (common_test) log + directory is now used instead. + + + --- Improvements and New Features --- + + OTP-13241 Application(s): common_test + Related Id(s): seq12979 + + This update makes it possible to specify multiple + instances of the same group or test case in one test + specification term in order to repeat execution. + Example: {groups, "./", my_SUITE, [my_group, my_group], + {cases, all}}, or {cases, "./", my_SUITE, [my_tc, + my_tc, my_tc]}. + + + OTP-13242 Application(s): common_test, test_server + Related Id(s): seq12991 + + Two new CT hook functions have been added: + post_init_per_testcase/4 and pre_end_per_testcase/3. + With these hook functions, it is possible to perform + arbitrary actions (including modifications of test + execution, test state and results) immediately before + and after the execution of the test case. + + + OTP-13338 Application(s): common_test + Related Id(s): seq13053, seq13069 + + The ct_netconfc was earlier very restrictive as to + which SSH options the user could set. This is now + changed, and any SSH option is now allowed. The netconf + client will simply pass on any option, which it does + not recognize, to SSH. + + + Full runtime dependencies of common_test-1.12: 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-2.5, test_server-3.9, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-6.0.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-6.0.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13208 Application(s): compiler + + An complicated guard expression in a function call + could crash the compiler. (Thanks to Thomas Arts for + reporting this bug.) + + + OTP-13223 Application(s): compiler + + Constructing a map in a guard in a catch could crash + the compiler. (Thanks to Thomas Arts for reporting this + bug.) + + + OTP-13231 Application(s): compiler + + Updating a fun as if it were a map would cause the + compiler to crash. (Thanks to Thomas Arts for reporting + this bug.) + + + OTP-13238 Application(s): compiler, dialyzer, hipe + + Fix pretty printing of Core Maps + + Literal maps could cause Dialyzer to crash when pretty + printing the results. + + + OTP-13309 Application(s): compiler + + A complex combination of bit syntax matching operations + would cause an internal consistency check failure + during compilation. (Thanks to Jose Valim for reporting + this bug.) + + + Full runtime dependencies of compiler-6.0.3: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosNotification-1.2.1 ------------------------------------------- + --------------------------------------------------------------------- + + The cosNotification-1.2.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12862 Application(s): cosNotification, cosTime, + cosTransactions, eunit, orber, xmerl + + Suppress Dialyzer warnings. + + + Full runtime dependencies of cosNotification-1.2.1: cosEvent-2.1.15, + cosTime-1.1.14, erts-7.0, kernel-3.0, orber-3.6.27, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosTime-1.2.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The cosTime-1.2.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12862 Application(s): cosNotification, cosTime, + cosTransactions, eunit, orber, xmerl + + Suppress Dialyzer warnings. + + + Full runtime dependencies of cosTime-1.2.1: cosEvent-2.1.15, + erts-7.0, kernel-3.0, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosTransactions-1.3.1 ------------------------------------------- + --------------------------------------------------------------------- + + The cosTransactions-1.3.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12862 Application(s): cosNotification, cosTime, + cosTransactions, eunit, orber, xmerl + + Suppress Dialyzer warnings. + + + Full runtime dependencies of cosTransactions-1.3.1: erts-7.0, + kernel-3.0, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- crypto-3.6.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-3.6.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13249 Application(s): crypto + + Fix bug for aes_ecb block crypto when data is larger + than 16 bytes. + + + OTP-13311 Application(s): crypto, ssl + + Improve portability of ECC tests in Crypto and SSL for + "exotic" OpenSSL versions. + + + Full runtime dependencies of crypto-3.6.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- debugger-4.1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-4.1.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12994 Application(s): debugger, observer + + Documentation corrections. + + + Full runtime dependencies of debugger-4.1.2: compiler-5.0, erts-6.0, + kernel-3.0, stdlib-2.5, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-2.9 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The dialyzer-2.9 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- hipe-3.13 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13103 Application(s): dialyzer + Related Id(s): ERL-40 + + Dialyzer no longer asserts that files and directories + to be removed from a PLT exist. + + + OTP-13237 Application(s): dialyzer + + Fix a bug concerning parameterized opaque types. + + + OTP-13238 Application(s): compiler, dialyzer, hipe + + Fix pretty printing of Core Maps + + Literal maps could cause Dialyzer to crash when pretty + printing the results. + + + OTP-13287 Application(s): dialyzer + + If a behavior module contains an non-exported function + with the same name as one of the behavior's callbacks, + the callback info was inadvertently deleted from the + PLT as the dialyzer_plt:delete_list/2 function was + cleaning up the callback table. + + + OTP-13312 Application(s): dialyzer + + Correct the contract for erlang:byte_size/1 + + Correct the handling of comparison operators for map + and bit string operands. + + + --- Improvements and New Features --- + + OTP-13217 Application(s): dialyzer + + Dialyzer recognizes calls to M:F/A where M, F, and A + are all literals. + + + Full runtime dependencies of dialyzer-2.9: compiler-5.0, erts-7.0, + hipe-3.13, kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-1.11.2 ------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-1.11.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13164 Application(s): diameter + + Make peer handling more efficient. + + Inefficient lookup and manipulation of peer lists could + result in poor performance when many outgoing requests + were sent simultaneously, or when many peers connected + simultaneously. Filtering peer lists on realm/host is + now also more efficient in many cases. + + + OTP-13342 Application(s): diameter + + Fix handling of shared peer connections in watchdog + state SUSPECT. + + A peer connection shared from a remote node was + regarded as being up for the lifetime of the + connection, ignoring watchdog transitions into state + SUSPECT. + + + Full runtime dependencies of diameter-1.11.2: erts-6.0, kernel-3.0, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- edoc-0.7.18 ----------------------------------------------------- + --------------------------------------------------------------------- + + The edoc-0.7.18 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13234 Application(s): edoc + Related Id(s): ERL-63 + + Assign correct names to list arguments. + + + --- Improvements and New Features --- + + OTP-13302 Application(s): edoc + + Unless the sort_functions option is true, edoc_layout + does not sort functions. + + + Full runtime dependencies of edoc-0.7.18: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13327 Application(s): eldap + + ELDAP did not send an 'unBind' request before closing + the connection. + + + --- Improvements and New Features --- + + OTP-12272 Application(s): eldap + + Handles the referral result code from LDAP servers. + Adds the return value {ok, {referral,UrlList}} to some + functions. See the Eldap reference manual for details. + + + Full runtime dependencies of eldap-1.2.1: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.4.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-0.4.2 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12955 Application(s): erl_docgen + + Correctly generate anno tags for maps keys + + + Full runtime dependencies of erl_docgen-0.4.2: edoc-0.7.13, erts-6.0, + stdlib-2.5, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.8.2 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.8.2 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13328 Application(s): erl_interface + + Fix Erl_Interface build error on Debian/Hurd and + Debian/kFreeBSD. (Thanks to Sergei Golovan) + + + --- Improvements and New Features --- + + OTP-13364 Application(s): erl_interface, kernel, wx + + EPMD supports both IPv4 and IPv6 + + Also affects oldest supported windows version. + + + --------------------------------------------------------------------- + --- erts-7.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-7.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13060 Application(s): erts + + The '-path' flag to 'erl' has been documented. This + flag replaces the path specified in the boot script. It + has always existed, but was earlier only documented in + SASL (script). + + + OTP-13216 Application(s): erts + + The call_time tracing functionality internally used a + time based on OS system time in order to measure call + time which could cause erroneous results if OS system + time was changed during tracing. + + This functionality now use Erlang monotonic time in + order to measure time. Besides fixing the erroneous + results due to OS system time being used, the results + are often also better since Erlang monotonic time often + has better accuracy and precision. + + + OTP-13220 Application(s): erts + + Fix behaviour of -delay_write command line switch of + epmd, which is used for debugging - in some cases epmd + was sleeping twice the requested amount of time. + + + OTP-13245 Application(s): erts + + Fix race between timeout and exit signal that could + cause a process to ignore the exit signal and continue + execution. Bug exist since OTP 18.0. + + + OTP-13251 Application(s): erts + Related Id(s): ERL-49 + + Fix bug in erlang:halt/1,2 for large exit status + values, causing either badarg (on 32-bit) or exit with + a crash dump and/or core dump (on 64-bit). Make + erlang:halt/1,2 tolerate any non negative integer as + exit status and truncate high order bits if the OS does + not support it. + + + OTP-13254 Application(s): erts, kernel + Related Id(s): OTP-11997, OTP-13222 + + gen_tcp:accept/2 was not time warp safe. This since it + used the same time as returned by erlang:now/0 when + calculating timeout. This has now been fixed. + + + OTP-13270 Application(s): erts + + Fix faulty error handling when writing to a compressed + file. + + + OTP-13271 Application(s): erts + + Fix sendfile usage for large files on FreeBSD + + + OTP-13282 Application(s): erts + Related Id(s): ERL-79 + + Fix bug that could cause + process_info(P,current_location) to crash emulator for + hipe compiled modules. + + + OTP-13292 Application(s): erts + + Out of memory errors have been changed to cause an exit + instead of abort. + + + OTP-13298 Application(s): erts + Related Id(s): OTP-11388 + + When calling garbage_collect/[1,2] or + check_process_code/[2,3] from a process with a higher + priority than the priority of the process operated on, + the run queues could end up in an inconsistent state. + This bug has now been fixed. + + + OTP-13326 Application(s): erts + Related Id(s): ERL-80 + + A workaround for an issue with older gcc versions (less + than 5) and inline assembly on 32-bit x86 caused an + emulator crash when it had been compiled with a newer + gcc version. An improved configure test, run when + building OTP, now detects whether the workaround should + be used or not. + + + --- Improvements and New Features --- + + OTP-13201 Application(s): erts + + Introduced new statistics functionality in order to + more efficiently retrieve information about run able + and active processes and ports. For more information + see: + + -- statistics(total_run_queue_lengths) + + -- statistics(run_queue_lengths) + + -- statistics(total_active_tasks) + + -- statistics(active_tasks) + + + OTP-13222 Application(s): erts, kernel, stdlib + Related Id(s): OTP-11997 + + Time warp safety improvements. + + Introduced the options monotonic_timestamp, and + strict_monotonic_timestamp to the trace, sequential + trace, and system profile functionality. This since the + already existing timestamp option is not time warp + safe. + + Introduced the option safe_fixed_monotonic_time to + ets:info/2 and dets:info/2. This since the already + existing safe_fixed option is not time warp safe. + + + OTP-13301 Application(s): erts + + Fix a register race where down nodes goes undetected in + epmd + + + OTP-13336 Application(s): erts + + Improved the gcc inline assembly implementing double + word atomic compare and exchange on x86/x86_64 so that + it also can be used when compiling with clang. + + + OTP-13365 Application(s): erts + Related Id(s): OTP-9892 + + An optimization preventing a long wait for a scheduler + thread looking up information about a process executing + on another scheduler thread had unintentionally been + lost in erts-5.10 (OTP R16A). This optimization has now + been reintroduced. + + + Full runtime dependencies of erts-7.3: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- eunit-2.2.13 ---------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.2.13 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12862 Application(s): cosNotification, cosTime, + cosTransactions, eunit, orber, xmerl + + Suppress Dialyzer warnings. + + + Full runtime dependencies of eunit-2.2.13: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- hipe-3.15 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The hipe-3.15 application can *not* be applied independently of + other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependency has to be satisfied: + -- erts-7.1 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13238 Application(s): compiler, dialyzer, hipe + + Fix pretty printing of Core Maps + + Literal maps could cause Dialyzer to crash when pretty + printing the results. + + + OTP-13379 Application(s): hipe + + Dialyzer warnings removed. + + + --- Improvements and New Features --- + + OTP-13269 Application(s): hipe + + Fix HiPE ErLLVM code generation for pattern matching + with UTF binaries. + + + OTP-13272 Application(s): hipe + + Fix various binary construction inconsistencies for + hipe compiled code. + + -- Passing bad field sizes to binary constructions + would throw badarith rather than badarg. Worse, in + guards, when the unit size of the field was 1, the + exception would leak rather than failing the function + clause match. + + -- Passing bignums as field sizes to binary + constructions would always fail (and always with + badarg). + + -- A bug in bs_init_bits that cased binary + constructions to fail with system_limit if they were at + least 1/8th of the actual limit. + + -- Compiler crashes when matches against an integer + literal whose size fits an unsigned word, but not a + signed word or matches against an integer literal that + whose size is larger than the largest allowed bignum. + + -- Very large binary constructions that should fail + with system_limit could instead fail with badarg or + even succeed with a faulty result. + + -- Add missing check for unit size match when inserting + a binary. For example, a faulty expression like + >/binary>> would succeed. + + + Full runtime dependencies of hipe-3.15: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-6.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13403 Application(s): inets + + The TFTP client/server has been fixed to allow file + sizes larger than 32MB block by allowing the 16 bit + block counter to wrap. Since this is a commonly + accepted behavior we regard it as a bug fix. + + + --- Improvements and New Features --- + + OTP-13286 Application(s): inets + + Handle HTTP PATCH method in client. + + + OTP-13389 Application(s): inets + + Expected termination should not be logged as an + application error. + + + Full runtime dependencies of inets-6.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- kernel-4.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The kernel-4.2 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- erts-7.3 (first satisfied in OTP 18.3) + -- sasl-2.6 (first satisfied in OTP 18.1) + -- stdlib-2.6 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13254 Application(s): erts, kernel + Related Id(s): OTP-11997, OTP-13222 + + gen_tcp:accept/2 was not time warp safe. This since it + used the same time as returned by erlang:now/0 when + calculating timeout. This has now been fixed. + + + OTP-13335 Application(s): kernel + Related Id(s): ERL-95 + + Correct the contract for inet:getifaddrs/1. + + + OTP-9375 Application(s): kernel + + code:load_abs([10100]) would bring down the entire + runtime system and create a crash dump. Corrected to + generate an error exception in the calling process. + + Also corrected specs for code loading functions and + added more information in the documentation about the + error reasons returned by code-loading functions. + + + --- Improvements and New Features --- + + OTP-13222 Application(s): erts, kernel, stdlib + Related Id(s): OTP-11997 + + Time warp safety improvements. + + Introduced the options monotonic_timestamp, and + strict_monotonic_timestamp to the trace, sequential + trace, and system profile functionality. This since the + already existing timestamp option is not time warp + safe. + + Introduced the option safe_fixed_monotonic_time to + ets:info/2 and dets:info/2. This since the already + existing safe_fixed option is not time warp safe. + + + OTP-13250 Application(s): kernel + + Add validation callback for heart + + The erlang heart process may now have a validation + callback installed. The validation callback will be + executed, if present, before any heartbeat to heart + port program. If the validation fails, or stalls, no + heartbeat will be sent and the node will go down. + + With the option 'check_schedulers' heart executes a + responsiveness check of the schedulers before a + heartbeat is sent to the port program. If the + responsiveness check fails, the heartbeat will not be + performed (as intended). + + + OTP-13299 Application(s): kernel + + Clarify documentation of net_kernel:allow/1 + + + OTP-13364 Application(s): erl_interface, kernel, wx + + EPMD supports both IPv4 and IPv6 + + Also affects oldest supported windows version. + + + Full runtime dependencies of kernel-4.2: erts-7.3, sasl-2.6, + stdlib-2.6 + + + --------------------------------------------------------------------- + --- mnesia-4.13.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.13.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13284 Application(s): mnesia + + Avoid deadlock possibility in mnesia:del_table_copy/2 + + + Full runtime dependencies of mnesia-4.13.3: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- observer-2.1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.1.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12994 Application(s): debugger, observer + + Documentation corrections. + + + Full runtime dependencies of observer-2.1.2: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- orber-3.8.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The orber-3.8.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12862 Application(s): cosNotification, cosTime, + cosTransactions, eunit, orber, xmerl + + Suppress Dialyzer warnings. + + + Full runtime dependencies of orber-3.8.1: erts-7.0, inets-5.10, + kernel-3.0, mnesia-4.12, ssl-5.3.4, stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.1.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The public_key-1.1.1 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13381 Application(s): public_key + Related Id(s): seq13070 + + An encapsulated PEM header shall be followed by a blank + line + + + Full runtime dependencies of public_key-1.1.1: asn1-3.0, crypto-3.3, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- runtime_tools-1.9.3 --------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.9.3 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13279 Application(s): runtime_tools + + dbg:trace_client() now uses a read buffer to speed up + reading of trace files. + + + Full runtime dependencies of runtime_tools-1.9.3: erts-7.0, + kernel-3.0, mnesia-4.12, stdlib-2.0 + + + --------------------------------------------------------------------- + --- sasl-2.7 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The sasl-2.7 application can *not* be applied independently of + other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-4.1 (first satisfied in OTP 18.1) + -- stdlib-2.8 (first satisfied in OTP 18.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13291 Application(s): sasl + + During upgrade, the release_handler collects a list of + supervisor pids in order to list all processes in the + supervisor tree. If one of the supervisors + (legitimately) exits before release_handler can examine + it, then sys:get_status/1 would earlier be called with + a dead pid, causing a 'noproc' error. This has been + corrected. + + + --- Improvements and New Features --- + + OTP-13057 Application(s): sasl + + The module overload is deprecated and will be removed + in OTP 19. + + + OTP-13290 Application(s): sasl, stdlib + + Improve implementation of supervisor child count, + making it faster and more accurate for dynamic + processes of a simple_one_for_one supervisor. + + + Full runtime dependencies of sasl-2.7: erts-6.0, kernel-4.1, + stdlib-2.8, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.2.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.2.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13264 Application(s): snmp + + Snmp agent now properly handles vacmViewTreeFamily + masks. + + + Full runtime dependencies of snmp-5.2.2: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.2.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.2.2 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13305 Application(s): ssh + Related Id(s): ERL-87 + + Documentation correction of ssh_sftp:position/4 + + Thanks to Rabbe Fogelholm. + + + Full runtime dependencies of ssh-4.2.2: crypto-3.3, erts-6.0, + kernel-3.0, public_key-0.22, stdlib-2.3 + + + --------------------------------------------------------------------- + --- ssl-7.3 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-7.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13185 Application(s): ssl + + Make sure there is only one poller validator at a time + for validating the session cache. + + + OTP-13253 Application(s): ssl + + A timing related issue could cause ssl to hang, + especially happened with newer versions of OpenSSL in + combination with ECC ciphers. + + + OTP-13268 Application(s): ssl + + Work around a race condition in the TLS distribution + start. + + + OTP-13306 Application(s): ssl + + Big handshake messages are now correctly fragmented in + the TLS record layer. + + + OTP-13311 Application(s): crypto, ssl + + Improve portability of ECC tests in Crypto and SSL for + "exotic" OpenSSL versions. + + + OTP-13377 Application(s): ssl + + Certificate extensions marked as critical are ignored + when using verify_none + + + OTP-13378 Application(s): ssl + + If a certificate doesn't contain a CRL Distribution + Points extension, and the relevant CRL is not in the + cache, and the crl_check option is not set to + best_effort , the revocation check should fail. + + + OTP-13391 Application(s): ssl + + Enable TLS distribution over IPv6 + + + --- Improvements and New Features --- + + OTP-13219 Application(s): ssl + + Improve error reporting for TLS distribution + + + OTP-13232 Application(s): ssl + + Include options from connect, listen and accept in + connection_information/1,2 + + + OTP-13285 Application(s): ssl + + Allow adding extra options for outgoing TLS + distribution connections, as supported for plain TCP + connections. + + + OTP-13300 Application(s): ssl + + Use loopback as server option in TLS-distribution + module + + + OTP-13334 Application(s): ssl + + Verify certificate signature against original + certificate binary. + + This avoids bugs due to encoding errors when + re-encoding a decode certificate. As there exists + several decode step and using of different ASN.1 + specification this is a risk worth avoiding. + + + OTP-13363 Application(s): ssl + + *** HIGHLIGHT *** + + Use application:ensure_all_started/2 instead of + hard-coding dependencies + + + Full runtime dependencies of ssl-7.3: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- stdlib-2.8 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The stdlib-2.8 application can *not* be applied independently + of other applications on an arbitrary OTP 18 installation. + + On a full OTP 18 installation, also the following runtime + dependencies have to be satisfied: + -- erts-7.3 (first satisfied in OTP 18.3) + -- kernel-4.1 (first satisfied in OTP 18.1) + -- sasl-2.6 (first satisfied in OTP 18.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13218 Application(s): stdlib + + Fix evaluation in matching of bound map key variables + in the interpreter. + + Prior to this patch, the following code would not + evaluate: X = key,(fun(#{X := value}) -> true end)(#{X + => value}) + + + OTP-13228 Application(s): stdlib + Related Id(s): ERL-32 + + Fix erl_eval not using non-local function handler. + + + OTP-13230 Application(s): stdlib + Related Id(s): ERL-62 + + The Erlang Code Linter no longer crashes if there is a + -deprecated() attribute but no -module() declaration. + + + OTP-13239 Application(s): stdlib + Related Id(s): OTP-11997 + + The timestamp in the result returned by dets:info(Tab, + safe_fixed) was unintentionally broken as a result of + the time API rewrites in OTP 18.0. This has now been + fixed. + + + OTP-13278 Application(s): stdlib + + A rare race condition in beam_lib when using encrypted + abstract format has been eliminated. + + + OTP-13376 Application(s): stdlib + + Improved maps:with/2 and maps:without/2 algorithms + + The new implementation speeds up the execution + significantly for all sizes of input. + + + --- Improvements and New Features --- + + OTP-13222 Application(s): erts, kernel, stdlib + Related Id(s): OTP-11997 + + Time warp safety improvements. + + Introduced the options monotonic_timestamp, and + strict_monotonic_timestamp to the trace, sequential + trace, and system profile functionality. This since the + already existing timestamp option is not time warp + safe. + + Introduced the option safe_fixed_monotonic_time to + ets:info/2 and dets:info/2. This since the already + existing safe_fixed option is not time warp safe. + + + OTP-13281 Application(s): stdlib + + In the shell Ctrl+W (delete word) will no longer + consider "." as being part of a word. + + + Full runtime dependencies of stdlib-2.8: compiler-5.0, crypto-3.3, + erts-7.3, kernel-4.1, sasl-2.6 + + + --------------------------------------------------------------------- + --- test_server-3.10 ------------------------------------------------ + --------------------------------------------------------------------- + + The test_server-3.10 application can be applied independently of + other applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-13242 Application(s): common_test, test_server + Related Id(s): seq12991 + + Two new CT hook functions have been added: + post_init_per_testcase/4 and pre_end_per_testcase/3. + With these hook functions, it is possible to perform + arbitrary actions (including modifications of test + execution, test state and results) immediately before + and after the execution of the test case. + + + Full runtime dependencies of test_server-3.10: erts-7.0, inets-6.0, + kernel-4.0, observer-2.1, runtime_tools-1.8.16, stdlib-2.5, + syntax_tools-1.7, tools-2.8 + + + --------------------------------------------------------------------- + --- tools-2.8.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-2.8.3 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13200 Application(s): tools + + cover:compile_beam/1 and + cover:compile_beam_directory/1,2 crashed when trying to + compile a beam file without a 'file' attribute. This + has been corrected and an error is returned instead. + + Thanks to Louis-Philippe Gauthier for reporting this + bug. + + + OTP-13277 Application(s): tools + Related Id(s): 856, PR + + Fix a bit string comprehension bug in Cover. + + + Full runtime dependencies of tools-2.8.3: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5, + webtool-0.8.10 + + + --------------------------------------------------------------------- + --- webtool-0.9.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The webtool-0.9.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13406 Application(s): webtool + + Remove dependency to inets mod_include in + configuration. + + + Full runtime dependencies of webtool-0.9.1: erts-6.0, inets-5.10, + kernel-3.0, observer-2.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- wx-1.6.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.6.1 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13404 Application(s): wx + + Fixed commands with multiple binaries, such as + wxImage:new/4. Added wxWindow:SetDoubleBuffered/1, + wxWindow:isDoubleBuffered/1, wxWindow:setTransparent/2 + and wxWindow:canSetTransparent/1. Fixed timing issues. + + + Full runtime dependencies of wx-1.6.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.10 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.10 application can be applied independently of other + applications on a full OTP 18 installation. + + --- Improvements and New Features --- + + OTP-12862 Application(s): cosNotification, cosTime, + cosTransactions, eunit, orber, xmerl + + Suppress Dialyzer warnings. + + + Full runtime dependencies of xmerl-1.3.10: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Alex Wilson, Alexey Lebedeff, Andrew Bennett, Ben Wilson, Bernard + Duggan, Dániel Szoboszlay, Hamidreza Soleimani, JP, José Valim, + Kostis Sagonas, Luca Favatella, Luis Rascao, Magnus Henoch, + Magnus Lång, Matt Campbell, Michael Santos, Mikael Pettersson, + Pablo Lamela, Pavel Abalihin, Péter Gömöri, Prayag Verma, + Richard Jones, Rory Byrne, Stavros Aronis, Steve Vinoski, + Tuncer Ayaz, tmanevik, xsipewe + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0-rc1.README.txt b/release-notes/OTP-19.0-rc1.README.txt new file mode 100644 index 0000000..7ff6391 --- /dev/null +++ b/release-notes/OTP-19.0-rc1.README.txt @@ -0,0 +1,2792 @@ +Patch Package: OTP 19.0 +Git Tag: OTP-19.0 +Date: 2016-05-12 +Trouble Report Id: OTP-10267, OTP-10282, OTP-10292, OTP-10349, + OTP-11879, OTP-12217, OTP-12345, OTP-12502, + OTP-12573, OTP-12590, OTP-12593, OTP-12719, + OTP-12861, OTP-12863, OTP-12883, OTP-12908, + OTP-12951, OTP-12979, OTP-13017, OTP-13033, + OTP-13034, OTP-13047, OTP-13058, OTP-13059, + OTP-13065, OTP-13082, OTP-13086, OTP-13087, + OTP-13088, OTP-13089, OTP-13096, OTP-13097, + OTP-13111, OTP-13112, OTP-13122, OTP-13123, + OTP-13131, OTP-13148, OTP-13152, OTP-13153, + OTP-13167, OTP-13174, OTP-13175, OTP-13184, + OTP-13191, OTP-13195, OTP-13206, OTP-13207, + OTP-13214, OTP-13227, OTP-13229, OTP-13244, + OTP-13255, OTP-13260, OTP-13265, OTP-13267, + OTP-13280, OTP-13288, OTP-13289, OTP-13293, + OTP-13294, OTP-13325, OTP-13341, OTP-13347, + OTP-13366, OTP-13374, OTP-13375, OTP-13383, + OTP-13392, OTP-13401, OTP-13407, OTP-13408, + OTP-13409, OTP-13410, OTP-13411, OTP-13419, + OTP-13422, OTP-13425, OTP-13430, OTP-13431, + OTP-13440, OTP-13442, OTP-13444, OTP-13445, + OTP-13449, OTP-13452, OTP-13458, OTP-13459, + OTP-13461, OTP-13464, OTP-13470, OTP-13474, + OTP-13475, OTP-13476, OTP-13483, OTP-13485, + OTP-13487, OTP-13488, OTP-13489, OTP-13491, + OTP-13493, OTP-13494, OTP-13495, OTP-13496, + OTP-13497, OTP-13499, OTP-13500, OTP-13501, + OTP-13502, OTP-13503, OTP-13504, OTP-13507, + OTP-13508, OTP-13512, OTP-13516, OTP-13517, + OTP-13520, OTP-13522, OTP-13523, OTP-13524, + OTP-13526, OTP-13527, OTP-13531, OTP-13532, + OTP-13534, OTP-13540, OTP-13541, OTP-13542, + OTP-13544, OTP-13545, OTP-13548, OTP-13551, + OTP-13553, OTP-13555, OTP-13556, OTP-13558, + OTP-13559, OTP-13560, OTP-13561, OTP-13562 +Seq num: seq13002 +System: OTP +Release: 19 +Application: asn1-4.0.3, common_test-1.12.2, compiler-7.0, + cosEvent-2.2.1, cosEventDomain-1.2.1, + cosFileTransfer-1.2.1, cosNotification-1.2.2, + cosProperty-1.2.1, cosTime-1.2.2, + cosTransactions-1.3.2, crypto-3.7, + debugger-4.2, dialyzer-3.0, diameter-1.12, + edoc-0.7.19, eldap-1.2.2, erl_docgen-0.4.3, + erl_interface-3.9, erts-8.0, et-1.6, + eunit-2.2.14, gs-1.6.1, hipe-3.15.1, + ic-4.4.1, inets-6.3, jinterface-1.7, + kernel-5.0, megaco-3.18.1, mnesia-4.14, + observer-2.2, odbc-2.11.2, orber-3.8.2, + os_mon-2.4.1, otp_mibs-1.1.1, + parsetools-2.1.2, percept-0.8.12, + public_key-1.2, reltool-0.7.1, + runtime_tools-1.10, sasl-3.0, snmp-5.2.3, + ssh-4.3, ssl-8.0, stdlib-3.0, + syntax_tools-2.0, tools-2.8.4, typer-0.9.11, + wx-1.7, xmerl-1.3.11 +Predecessor: OTP + + Check out the git tag OTP-19.0, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-10267 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first haing to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-12345 Application(s): erts, runtime_tools + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-12345 Application(s): erts, runtime_tools + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-13058 Application(s): mnesia + + Added experimental external backend plugin api. This + adds the possibility for the user to write other + storage backends for data, for example by using shared + memory or ram-cached disk storage. + + The plugin api may change in future versions after + being battle tested. + + + OTP-13059 Application(s): compiler, stdlib + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13059 Application(s): compiler, stdlib + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13366 Application(s): erts + Related Id(s): OTP-13047 + + Introduction of configurable management of data + referred to by the message queue of a process. Each + process can be configured individually. + + It is now possible to configure the message queue of a + process, so that all data referred by it will be kept + outside of the heap, and by this prevent this data from + being part of garbage collections. + + For more information see the documentation of + process_flag(message_queue_data, MQD). + + + OTP-13496 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13503 Application(s): erts + + The erts internal tracing support has been changed to + have much less overhead and be more scalable. + + This rewrite does not break any backwards + incompatabilities, but it does change the ordering of + some trace messages when compared to previous releases. + It should be noted that this only applies to trace + messages sent to processes or ports, it does not apply + to the new tracer module. However in future releases + they may also be effected by this. + + Trace messages are only guaranteed to be ordered from + one traced process or port. In previous releases this + was not visible as a 'send' trace message would always + arrive before the corresponding 'receive' trace message + that is no longer always the case. This also means that + timestamped trace messages may seem to arrive out of + order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-10267 Application(s): erts + + *** HIGHLIGHT *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first haing to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-11879 Application(s): stdlib + + Undocumented syntax for function specifications, -spec + F/A :: Domain -> Range, has been removed (without + deprecation). + + Using the is_subtype(V, T) syntax for constraints (in + function specifications) is no longer documented, and + the newer syntax V :: T should be used instead. The + Erlang Parser still recognizes the is_subtype syntax, + and will continue to do so for some time. + + + OTP-12719 Application(s): stdlib + + Background: In record fields with a type declaration + but without an initializer, the Erlang parser inserted + automatically the singleton type 'undefined' to the + list of declared types, if that value was not present + there. That is, the record declaration: + + -record(rec, {f1 :: float(), f2 = 42 :: integer(), f3 + :: some_mod:some_typ()}). + + was translated by the parser to: + + -record(rec, {f1 :: float() | 'undefined', f2 = 42 :: + integer(), f3 :: some_mod:some_typ() | 'undefined'}). + + The rationale for this was that creation of a "dummy" + #rec{} record should not result in a warning from + dialyzer that, for example, the implicit initialization + of the #rec.f1 field violates its type declaration. + + Problems: This seemingly innocent action has some + unforeseen consequences. + + For starters, there is no way for programmers to + declare that e.g. only floats make sense for the f1 + field of #rec{} records when there is no "obvious" + default initializer for this field. (This also affects + tools like PropEr that use these declarations produced + by the Erlang parser to generate random instances of + records for testing purposes.) + + It also means that dialyzer does not warn if e.g. an + is_atom/1 test or something more exotic like an + atom_to_list/1 call is performed on the value of the f1 + field. + + Similarly, there is no way to extend dialyzer to warn + if it finds record constructions where f1 is not + initialized to some float. + + Last but not least, it is semantically problematic when + the type of the field is an opaque type: creating a + union of an opaque and a structured type is very + problematic for analysis because it fundamentally + breaks the opacity of the term at that point. + + Change: To solve these problems the parser will not + automatically insert the 'undefined' value anymore; + instead the user has the option to choose the places + where this value makes sense (for the field) and where + it does not and insert the | 'undefined' there + manually. + + Consequences of this change: This change means that + dialyzer will issue a warning for all places where + records with uninitialized fields are created and those + fields have a declared type that is incompatible with + 'undefined' (e.g. float()). This warning can be + suppressed easily by adding | 'undefined' to the type + of this field. This also adds documentation that the + user really intends to create records where this field + is uninitialized. + + + OTP-12863 Application(s): syntax_tools + + The abstract data type in erl_syntax is augmented with + types and function specifications. + + The module erl_prettypr pretty prints types and + function specification, and the output can be parsed. + + The types of record fields are no longer ignored. As a + consequence erl_syntax_lib:analyze_record_field/1 + returns {Default, Type} instead of Default. The + functions analyze_record_attribute, analyze_attribute, + analyze_form, and analyze_forms in the erl_syntax_lib + module are also affected by this incompatible change. + + + OTP-13088 Application(s): erts + + The functionality behind erlang:open_port/2 when called + with spawn or spawn_executable has been redone so that + the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and + does not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have + shown this approach to be about 3-5 times as fast as + the old approach where the fork/vfork was done by erts. + This is a pure stability and performance fix, however + some error messages may have changed, which is why it + is marked as a backwards incompatible change. + + + OTP-13148 Application(s): stdlib + + Background: The types of record fields have since R12B + been put in a separate form by epp:parse_file(), + leaving the record declaration form untyped. The + separate form, however, does not follow the syntax of + type declarations, and parse transforms inspecting + -type() attributes need to know about the special + syntax. Since the compiler stores the return value of + epp:parse_file() as debug information in the abstract + code chunk ("Abst" or abstract_code), tools too need to + know about the special syntax, if they inspect -type() + attributes in abstract code. + + Change: No separate type form is created by + epp:parse_file(), but the type information is kept in + the record fields. This means that all parse transforms + and all tools inspecting -record() declarations need to + recognize {typed_record_field, Field, Type}. + + + OTP-13184 Application(s): sasl + + The module 'overload' is removed. + + + OTP-13195 Application(s): ssl + + Remove default support for DES cipher suites + + + OTP-13449 Application(s): kernel + + The functions rpc:safe_multi_server_call/2,3 that were + deprecated in R12B have been removed. + + + OTP-13496 Application(s): erts + + *** HIGHLIGHT *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13497 Application(s): erts + + When the 'procs' trace flag is enabled, a 'spawned' + trace event is now also generated by a newly created + process. The previous event 'spawn' remains, but as it + is generated by the process that did the spawn, it is + not guaranteed that it is ordered with other trace + events from the newly spawned process. So when tracking + the lifetime of a process this new event should be used + as the creation event. + + This new trace event is marked as an incompatabiliy + because tools that expect certain trace events when + enabling 'procs' will have to updated. + + + OTP-13504 Application(s): compiler + + The compiler will no longer put the compilation date + and time into BEAM files. That means that two BEAM + files compiled on the same computer from the same + source code and compilation options will be identical. + + Note: If you want to find out whether a BEAM file on + disk is different from the loaded code, compared the + MD5 value obtained from Mod:module_info(md5) with the + MD5 value obtained from beam_lib:md5(BeamFileForMod) + + . + + + OTP-13532 Application(s): erts, runtime_tools + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + OTP-13532 Application(s): erts, runtime_tools + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + OTP-13542 Application(s): dialyzer + Related Id(s): PR-1014 + + The type specification syntax for Maps is improved: + + -- + + The association type KeyType := ValueType denotes an + association that must be present. + + -- + + The shorthand ... stands for the association type any() + => any(). + + An incompatible change is that #{} stands for the empty + map. The type map() (a map of any size) can be written + as #{...}. + + + OTP-13553 Application(s): wx + + Changed atom 'boolean' fields in #wxMouseState{} to + 'boolean()'. + + Moved out arguments in wxListCtrl:hitTest to result. + + Removed no-op functions in wxGauge that have been + removed from wxWidgets-3.1. + + + OTP-13561 Application(s): inets + + Remove module inets_regexp. Module re should be used + instead. + + + --------------------------------------------------------------------- + --- asn1-4.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-4.0.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of asn1-4.0.3: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.12.2 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.12.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13475 Application(s): common_test + + The following modules were missing in + common_test.app.src: ct_groups, ct_property_test, + ct_release_test, ct_webtool, ct_webtool_sup, + test_server_gl. They have now been added. + + + Full runtime dependencies of common_test-1.12.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-2.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13430 Application(s): compiler + Related Id(s): ERL-113 + + compile:forms/1,2 would crash when used in a working + directory thad had been deleted by another process. + (Thanks to Adam Lindberg for reporting this bug.) + + + --- Improvements and New Features --- + + OTP-12951 Application(s): compiler + + Optimization of tuple matching has been slightly + improved. + + + OTP-12979 Application(s): compiler + + Five deprecated and undocumented functions in the + module core_lib have been removed. The functions are: + get_anno/{1,2}, is_literal/1, is_literal_list/1, and + literal_value. Use the appropriate functions in the + cerl module instead. + + + OTP-13059 Application(s): compiler, stdlib + + *** HIGHLIGHT *** + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13280 Application(s): compiler + + The function mapfold/4 has been added to the cerl_trees + module. + + + OTP-13289 Application(s): compiler + + Bitstring comprehensions have been generalized to allow + arbitrary expressions in the construction part. + + + OTP-13374 Application(s): compiler + Related Id(s): ERL-44 + + The compiler will now produce warnings for binary + patterns that will never match (example: > = Bin). + + + OTP-13504 Application(s): compiler + + *** POTENTIAL INCOMPATIBILITY *** + + The compiler will no longer put the compilation date + and time into BEAM files. That means that two BEAM + files compiled on the same computer from the same + source code and compilation options will be identical. + + Note: If you want to find out whether a BEAM file on + disk is different from the loaded code, compared the + MD5 value obtained from Mod:module_info(md5) with the + MD5 value obtained from beam_lib:md5(BeamFileForMod) + + . + + + Full runtime dependencies of compiler-7.0: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosEvent-2.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The cosEvent-2.2.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosEvent-2.2.1: erts-7.0, kernel-3.0, + orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosEventDomain-1.2.1 -------------------------------------------- + --------------------------------------------------------------------- + + The cosEventDomain-1.2.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosEventDomain-1.2.1: + cosNotification-1.1.21, erts-7.0, kernel-3.0, orber-3.6.27, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosFileTransfer-1.2.1 ------------------------------------------- + --------------------------------------------------------------------- + + The cosFileTransfer-1.2.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosFileTransfer-1.2.1: + cosProperty-1.1.17, erts-7.0, inets-5.10, kernel-3.0, orber-3.6.27, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosNotification-1.2.2 ------------------------------------------- + --------------------------------------------------------------------- + + The cosNotification-1.2.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosNotification-1.2.2: cosEvent-2.1.15, + cosTime-1.1.14, erts-7.0, kernel-3.0, orber-3.6.27, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosProperty-1.2.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The cosProperty-1.2.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosProperty-1.2.1: erts-7.0, kernel-3.0, + mnesia-4.12, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosTime-1.2.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The cosTime-1.2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosTime-1.2.2: cosEvent-2.1.15, + erts-7.0, kernel-3.0, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosTransactions-1.3.2 ------------------------------------------- + --------------------------------------------------------------------- + + The cosTransactions-1.3.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosTransactions-1.3.2: erts-7.0, + kernel-3.0, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- crypto-3.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + The crypto-3.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-12217 Application(s): crypto + + Refactor crypto to use the EVP interface of OpenSSL, + which is the recommended interface that also enables + access to hardware acceleration for some operations. + + + OTP-13206 Application(s): crypto + Related Id(s): 832, pr + + Add support for 192-bit keys for the aes_cbc cipher. + + + OTP-13207 Application(s): crypto + Related Id(s): pr829 + + Add support for 192-bit keys for aes_ecb. + + + OTP-13214 Application(s): crypto, ssl + + Deprecate the function crypto:rand_bytes and make sure + that crypto:strong_rand_bytes is used in all places + that are cryptographically significant. + + + OTP-13483 Application(s): crypto + Related Id(s): PR-998 + + Enable AES-GCM encryption/decryption to change the tag + length between 1 to 16 bytes. + + + Full runtime dependencies of crypto-3.7: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- debugger-4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-4.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13375 Application(s): debugger + + When the debugger searches for source files, it will + also use the location of the source in the compilation + information part of the BEAM file. + + + Full runtime dependencies of debugger-4.2: compiler-5.0, erts-6.0, + kernel-3.0, stdlib-2.5, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13520 Application(s): dialyzer + + Fix a bug in the translation of forms to types. + + + OTP-13544 Application(s): dialyzer + Related Id(s): PR-1007 + + Correct mispelling in Dialyzer's acronym definition. + + + --- Improvements and New Features --- + + OTP-10349 Application(s): dialyzer + + The evaluation of SCCs in dialyzer_typesig is + optimized. + + Maps are used instead of Dicts to further optimize the + evalutation. + + + OTP-13244 Application(s): dialyzer + + Since Erlang/OTP R14A, when support for parameterized + modules was added, module() has included tuple(), but + that part is removed; the type module() is now the same + as atom(), as documented in the Reference Manual. + + + OTP-13542 Application(s): dialyzer + Related Id(s): PR-1014 + + *** POTENTIAL INCOMPATIBILITY *** + + The type specification syntax for Maps is improved: + + -- + + The association type KeyType := ValueType denotes an + association that must be present. + + -- + + The shorthand ... stands for the association type any() + => any(). + + An incompatible change is that #{} stands for the empty + map. The type map() (a map of any size) can be written + as #{...}. + + + Full runtime dependencies of dialyzer-3.0: compiler-7.0, erts-8.0, + hipe-3.15.1, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-1.12 --------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-1.12 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13508 Application(s): diameter + + Add diameter:peer_info/1. + + That retrieves information in the style of + diameter:service_info/2, but for a single peer + connection. + + + Full runtime dependencies of diameter-1.12: erts-6.0, kernel-3.0, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- edoc-0.7.19 ----------------------------------------------------- + --------------------------------------------------------------------- + + The edoc-0.7.19 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13558 Application(s): edoc + + Handle typed record fields. + + + Full runtime dependencies of edoc-0.7.19: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of eldap-1.2.2: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.4.3 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-0.4.3 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of erl_docgen-0.4.3: edoc-0.7.13, erts-6.0, + stdlib-2.5, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.9 ----------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.9 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + --------------------------------------------------------------------- + --- erts-8.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-8.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12593 Application(s): erts, kernel + + The handling of on_load functions has been improved. + The major improvement is that if a code upgrade fails + because the on_load function fails, the previous + version of the module will now be retained. + + + OTP-13034 Application(s): erts + + is_builtin(erlang, apply, 3) will now return true. + + + OTP-13288 Application(s): erts + Related Id(s): PR913 + + Fix enif_get_list_length to return false if list is + improper or have length larger than UINT_MAX (did + return true and an incorrect length value). + + + OTP-13341 Application(s): erts + Related Id(s): PR951 + + Cleanup hipe signal handling code for x86 and make it + more portable. + + + OTP-13411 Application(s): erts, kernel + + Use fsync instead of fdatasync on Mac OSX. + + + OTP-13419 Application(s): erts + + Make sure to create a crash dump when running out of + memory. This was accidentally removed in the erts-7.3 + release. + + + OTP-13425 Application(s): erts + + A bug has been fixed where if erlang was started +B on + a unix platform it would be killed by a SIGUSR2 signal + when creating a crash dump. + + + OTP-13452 Application(s): erts + + Fix race between process_flag(trap_exit,true) and a + received exit signal. + + A process could terminate due to exit signal even + though process_flag(trap_exit,true) had returned. A + very specific timing between call to process_flag/2 and + exit signal from another scheduler was required for + this to happen. + + + OTP-13459 Application(s): erts, stdlib + + Don't search for non-existing Map keys twice + + For maps:get/2,3 and maps:find/2, searching for an + immediate key, e.g. an atom, in a small map, the search + was performed twice if the key did not exist. + + + OTP-13474 Application(s): erts + + When a abnormally large distribution message is about + to be sent, the VM has been changed to create a crash + dump instead of a core dump. + + + OTP-13485 Application(s): erts + Related Id(s): ERL-123 + + Fix erlang:process_info/2 type specification + + + OTP-13489 Application(s): erts + Related Id(s): ERL-127 + + Fix bug in open_port/2 with option {args, List}. A vm + crash could be caused by an improper List. + + + OTP-13494 Application(s): erts + Related Id(s): ERL-126 + + Don't crash on terminating processes with + erlang:system_profile/1,2 + + + OTP-13512 Application(s): erts + + Fixed bugs where the reduction counter was not handled + correct. + + + OTP-13517 Application(s): erts + + Fixed typo in description of the EPMD_DUMP_REQ + response. + + + OTP-13540 Application(s): erts + + Fixed a bug where a process flagged as sensitive would + sometimes record its save_calls when it shouldn't. + + + OTP-13562 Application(s): erts + + Update configure scripts to not use hardcoded path for + /bin/pwd and /bin/rm. + + + --- Improvements and New Features --- + + OTP-10267 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first haing to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-10282 Application(s): erts + Related Id(s): [14], kunagi-14 + + Introduce LTTng tracing of Erlang Runtime System + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool. + + For a list of all tracepoints, see Runtime Tools User's + Guide . + + + OTP-12345 Application(s): erts, runtime_tools + + *** HIGHLIGHT *** + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-12573 Application(s): erts + + The port of Erlang/OTP to the realtime operating system + OSE has been removed. + + + OTP-12590 Application(s): erts + Related Id(s): OTP-10251 + + Sharing preserved copy for messages and exit signals + + Enable sharing preserved copy with configure option + --enable-sharing-preserving. This will preserve + sharing, within the process, when communication with + other processes in the Erlang node. There is a + trade-off, the copy is more costly but this cost can be + reclaimed if there is a lot of sharing in the message. + With this feature enabled literals will not be copied + in a send except during a purge phase of the module + where the literals are located. + + + OTP-12883 Application(s): erts + + Halfword BEAM has been removed. + + + OTP-12908 Application(s): erts, kernel + + Added os:perf_counter/1. + + The perf_counter is a very very cheap and high + resolution timer that can be used to timestamp system + events. It does not have monoticity guarantees, but + should on most OS's expose a monotonous time. + + + OTP-13047 Application(s): erts + + Support for a fragmented young heap generation. That + is, the young heap generation can consist of multiple + non continuous memory areas. The main reason for this + change is to avoid extra copying of messages that could + not be allocated directly on the receivers heap. + + + OTP-13086 Application(s): erts + + Erlang linked-in driver can now force the call to + open_port to block until a call to erl_drv_init_ack is + made inside the driver. This is useful when you want to + do some asynchronous initialization, for example + getting configuration from a pipe, and you want the + initial open_port call to fail if the configuration is + incomplete or wrong. See the erl_driver documentation + for more details on the API. + + + OTP-13087 Application(s): erts + + Erlang linked-in drivers can now set their own pid's as + seen in erlang:port_info/1 by using the erl_drv_set_pid + function. For more details see the erl_driver + documentation. + + + OTP-13088 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The functionality behind erlang:open_port/2 when called + with spawn or spawn_executable has been redone so that + the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and + does not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have + shown this approach to be about 3-5 times as fast as + the old approach where the fork/vfork was done by erts. + This is a pure stability and performance fix, however + some error messages may have changed, which is why it + is marked as a backwards incompatible change. + + + OTP-13096 Application(s): erts + + Improved yielding strategy in the implementation of the + following native functions: + + -- erlang:binary_to_list/1 + + -- erlang:binary_to_list/3 + + -- erlang:bitstring_to_list/1 + + -- erlang:list_to_binary/1 + + -- erlang:iolist_to_binary/1 + + -- erlang:list_to_bitstring/1 + + -- binary:list_to_bin/1 + + This in order to improve performance of these + functions. + + + OTP-13097 Application(s): erts + + All garbage collections of processes now bump + reductions. Also the amount of reductions bumped when + garbage collecting has been adjusted. It now better + corresponds to the amount of work performed. This in + order to improve the real time characteristics of the + system. + + + OTP-13111 Application(s): erts, kernel + + New functions that can load multiple functions at once + have been added to the 'code' module. The functions are + code:atomic_load/1, code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1. + + + OTP-13112 Application(s): erts + + The function erl_prim_loader:start/3 has been removed. + Its documentation has also been removed. + + The undocumented and unsupported function + erl_prim_loader:get_files/2 has been removed. + + + OTP-13122 Application(s): erts + + Low level BIF erlang:purge_module/1 is made more robust + against incorrect use. Lingering processes that still + refer the old code are now killed before the module is + purged to prevent fatal VM behavior. + + + OTP-13123 Application(s): erts + + Improved dirty scheduler implementation. For more + information see the NIF documentation. + + Note that support for determining whether dirty NIF + support exist or not at compile time using the C + preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT has + been removed. + + + OTP-13167 Application(s): erts + + Various optimizations done to process dictionary + access. + + + OTP-13174 Application(s): erts + + Added max_heap_size process flag. See + erlang:process_flag for more details. + + + OTP-13227 Application(s): erts + + Allow dynamic drivers and NIF libraries to be built + with gcc option -fvisibility=hidden for faster loading + and more optimized code. + + + OTP-13265 Application(s): erts + + Add erlang:process_info(Pid, garbage_collection_info) + which returns extended garbage_collection information. + For more details see the documentation. + + + OTP-13293 Application(s): erts + + The functions erlang:list_to_integer/1 and + string:to_integer/1 have been optimized for large + inputs. + + + OTP-13366 Application(s): erts + Related Id(s): OTP-13047 + + *** HIGHLIGHT *** + + Introduction of configurable management of data + referred to by the message queue of a process. Each + process can be configured individually. + + It is now possible to configure the message queue of a + process, so that all data referred by it will be kept + outside of the heap, and by this prevent this data from + being part of garbage collections. + + For more information see the documentation of + process_flag(message_queue_data, MQD). + + + OTP-13401 Application(s): erts + + Processes now yield when scanning large message queues + and not finding a matching message. This in order to + improve real time characteristics. + + + OTP-13440 Application(s): erts + + Optimized an erts internal function that is used to + traverse erlang terms. The internal function was mainly + used by term_to_binary and comparison of terms. + Benchmarks have shown up to a 10% performance increase + in those functions after the optimization. + + + OTP-13442 Application(s): erts + + Add the following NIF API functions: + + -- enif_cpu_time + + -- enif_now_time + + -- enif_make_unique_integer + + -- enif_is_process_alive + + -- enif_is_port_alive + + -- enif_term_to_binary + + -- enif_binary_to_term + + -- enif_port_command + + for details of what each function does, see the erl_nif + documentation. + + + OTP-13487 Application(s): erts, stdlib + + Optimize '++' operator and lists:append/2 by using a + single pass to build a new list while checking for + properness. + + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + OTP-13493 Application(s): erts + Related Id(s): PR-999 + + Don't send unasked for systemd notifications in epmd + + + OTP-13495 Application(s): erts + + The enif_send API has been extended to allow NULL to be + used as the message environment. When used this way, a + message environent is implicitly created and the given + term is copied into that environment before sending. + This can be an optimization if many small messages are + being sent by the nif. + + + OTP-13496 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13497 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + When the 'procs' trace flag is enabled, a 'spawned' + trace event is now also generated by a newly created + process. The previous event 'spawn' remains, but as it + is generated by the process that did the spawn, it is + not guaranteed that it is ordered with other trace + events from the newly spawned process. So when tracking + the lifetime of a process this new event should be used + as the creation event. + + This new trace event is marked as an incompatabiliy + because tools that expect certain trace events when + enabling 'procs' will have to updated. + + + OTP-13501 Application(s): erts + + Add the erlang:match_spec_test/3 function. The + functions allows the testing of match specifications + for both tracing and ets tables. It can be used to test + that a match specification does the expected filtering + on specific data. It also returns more verbose error + reasons for incorrectly constructed match + specifications. + + + OTP-13503 Application(s): erts + + *** HIGHLIGHT *** + + The erts internal tracing support has been changed to + have much less overhead and be more scalable. + + This rewrite does not break any backwards + incompatabilities, but it does change the ordering of + some trace messages when compared to previous releases. + It should be noted that this only applies to trace + messages sent to processes or ports, it does not apply + to the new tracer module. However in future releases + they may also be effected by this. + + Trace messages are only guaranteed to be ordered from + one traced process or port. In previous releases this + was not visible as a 'send' trace message would always + arrive before the corresponding 'receive' trace message + that is no longer always the case. This also means that + timestamped trace messages may seem to arrive out of + order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer. + + + OTP-13507 Application(s): erts + + Add possibility to filter send and receive trace with + match specifications. + + + OTP-13522 Application(s): erts, stdlib + Related Id(s): PR-1025 + + Add maps:update_with/3,4 and maps:take/2 + + + OTP-13532 Application(s): erts, runtime_tools + + *** POTENTIAL INCOMPATIBILITY *** + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + OTP-13541 Application(s): erts + Related Id(s): PR-1026 + + Print heap pointers for garbing processes during + crashdump + + + OTP-13560 Application(s): erts + + Changed and improved low level memory statistics + returned by erlang:system_info/1. The info for + erts_mmap has been moved from mseg_alloc to its own + section returned by {allocator, erts_mmap}. + + + Full runtime dependencies of erts-8.0: kernel-4.0, sasl-2.4, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- et-1.6 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The et-1.6 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13545 Application(s): et + + Update selector to utilize new garbage collection trace + tags. + + + Full runtime dependencies of et-1.6: erts-8.0, kernel-3.0, + runtime_tools-1.10, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- eunit-2.2.14 ---------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.2.14 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13017 Application(s): crypto, erts, eunit, snmp + + Small documentation fixes + + + Full runtime dependencies of eunit-2.2.14: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- gs-1.6.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The gs-1.6.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of gs-1.6.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- hipe-3.15.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The hipe-3.15.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13407 Application(s): hipe + Related Id(s): PR-984 + + HiPE compiler crashed, during compilation, in some + cases that involved inlining of float operations on + complicated control flow graphs. + + + Full runtime dependencies of hipe-3.15.1: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- ic-4.4.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ic-4.4.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of ic-4.4.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- inets-6.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13383 Application(s): inets + Related Id(s): PR-972 + + Add handling of DELETE Body to http client. + + + OTP-13445 Application(s): inets + Related Id(s): PR-988 + + Removed references to mod_include and webtool from + examples and tests. + + Thanks to waisbrot + + + OTP-13561 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + Remove module inets_regexp. Module re should be used + instead. + + + Full runtime dependencies of inets-6.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- jinterface-1.7 -------------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + --------------------------------------------------------------------- + --- kernel-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-5.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12593 Application(s): erts, kernel + + The handling of on_load functions has been improved. + The major improvement is that if a code upgrade fails + because the on_load function fails, the previous + version of the module will now be retained. + + + OTP-13409 Application(s): kernel + + rpc:call() and rpc:block_call() would sometimes cause + an exception (which was not mentioned in the + documentation). This has been corrected so that + {badrpc,Reason} will be returned instead. + + + OTP-13410 Application(s): kernel + + On Windows, for modules that were loaded early (such as + the lists module), code:which/1 would return the path + with mixed slashes and backslashes, for example: + "C:\\Program + Files\\erl8.0/lib/stdlib-2.7/ebin/lists.beam". This has + been corrected. + + + OTP-13411 Application(s): erts, kernel + + Use fsync instead of fdatasync on Mac OSX. + + + OTP-13444 Application(s): kernel + + The default chunk size for the fallback sendfile + implementation, used on platforms that do not have a + native sendfile, has been decreased in order to reduce + connectivity issues. + + + OTP-13461 Application(s): kernel + + Huges writes (2Gb or more) could fail on some Unix + platforms (for example, OS X and FreeBSD). + + + OTP-13470 Application(s): kernel + Related Id(s): #969, Pull + + A bug has been fixed where the DNS resolver inet_res + did not refresh its view of the contents of for example + resolv.conf immediately after start and hence then + failed name resolution. Reported and fix suggested by + Michal Ptaszek in GitHUB pull req #949. + + + OTP-13516 Application(s): kernel + Related Id(s): PR-1008 + + Fix process leak from global_group. Thanks to Xuming + who reported and fixed this! + + + --- Improvements and New Features --- + + OTP-12908 Application(s): erts, kernel + + Added os:perf_counter/1. + + The perf_counter is a very very cheap and high + resolution timer that can be used to timestamp system + events. It does not have monoticity guarantees, but + should on most OS's expose a monotonous time. + + + OTP-13089 Application(s): kernel + + The os:cmd call has been optimized on unix platforms to + be more performant as the number of schedulers + increase. + + + OTP-13111 Application(s): erts, kernel + + New functions that can load multiple functions at once + have been added to the 'code' module. The functions are + code:atomic_load/1, code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1. + + + OTP-13191 Application(s): kernel + + The code path cache feature turned out not to be very + useful in practice and has been removed. If an attempt + is made to enable the code path cache, there will be a + warning report informing the user that the feature has + been removed. + + + OTP-13294 Application(s): kernel + + When an attempt is made to start a distributed Erlang + node with the same name as an existing node, the error + message will be much shorter and easier to read than + before. Example: + + Protocol 'inet_tcp': the name somename@somehost seems + to be in use by another Erlang node + + + OTP-13325 Application(s): kernel + + The output of the default error logger is somewhat + prettier and easier to read. The default error logger + is used during startup of the OTP system. If the + start-up fails, the output will be easier to read. + + + OTP-13449 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The functions rpc:safe_multi_server_call/2,3 that were + deprecated in R12B have been removed. + + + OTP-13458 Application(s): kernel + + Update the error reasons in dist_util, and show them in + the logs if net_kernel:verbose(1) has been called. + + + Full runtime dependencies of kernel-5.0: erts-8.0, sasl-2.6, + stdlib-2.6 + + + --------------------------------------------------------------------- + --- megaco-3.18.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.18.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of megaco-3.18.1: 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.14 ----------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.14 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13058 Application(s): mnesia + + *** HIGHLIGHT *** + + Added experimental external backend plugin api. This + adds the possibility for the user to write other + storage backends for data, for example by using shared + memory or ram-cached disk storage. + + The plugin api may change in future versions after + being battle tested. + + + Full runtime dependencies of mnesia-4.14: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- observer-2.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13500 Application(s): observer, runtime_tools + + Update dbg and ttb to work with a tracer module as + tracer and tracing on ports. + + + OTP-13555 Application(s): observer + + Added possibility to change update frequency and length + of the graph windows. + + + OTP-13556 Application(s): observer + + Improved background coloring to work with dark themes + and other visual improvements. + + + Full runtime dependencies of observer-2.2: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.11.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.11.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13559 Application(s): odbc + + Configure enhancment for better handling program paths + used in the build process + + + Full runtime dependencies of odbc-2.11.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- orber-3.8.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The orber-3.8.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of orber-3.8.2: erts-7.0, inets-5.10, + kernel-3.0, mnesia-4.12, ssl-5.3.4, stdlib-2.5 + + + --------------------------------------------------------------------- + --- os_mon-2.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.4.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13526 Application(s): os_mon + Related Id(s): PR-1029 + + Fix type specification for cpu_sup:util/1 + + + OTP-13548 Application(s): os_mon + Related Id(s): PR-1046 + + Fix strict compilation on SUN/SPARC + + + Full runtime dependencies of os_mon-2.4.1: erts-6.0, kernel-3.0, + mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- otp_mibs-1.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The otp_mibs-1.1.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of otp_mibs-1.1.1: erts-6.0, kernel-3.0, + mnesia-4.12, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.1.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of parsetools-2.1.2: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- percept-0.8.12 -------------------------------------------------- + --------------------------------------------------------------------- + + The percept-0.8.12 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13422 Application(s): percept + + Remove deprecated erlang:now/0 calls + + + Full runtime dependencies of percept-0.8.12: erts-6.0, inets-5.10, + kernel-3.0, runtime_tools-1.8.14, stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13408 Application(s): public_key + + Handle PEM encoded EC public keys + + + Full runtime dependencies of public_key-1.2: asn1-3.0, crypto-3.3, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- reltool-0.7.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The reltool-0.7.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13033 Application(s): reltool + Related Id(s): OTP-12719 + + Modify the code as motivated by a change of the Erlang + Parser (undefined is no longer automatically inserted + to the type of record fields without an initializer). + + + Full runtime dependencies of reltool-0.7.1: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-2.0, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.10 ---------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.10 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-12345 Application(s): erts, runtime_tools + + *** HIGHLIGHT *** + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-13500 Application(s): observer, runtime_tools + + Update dbg and ttb to work with a tracer module as + tracer and tracing on ports. + + + OTP-13502 Application(s): runtime_tools + + Updated dbg to accept the new trace options + monotonic_timestamp and strict_monotonic_timestamp. + + + OTP-13532 Application(s): erts, runtime_tools + + *** POTENTIAL INCOMPATIBILITY *** + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + Full runtime dependencies of runtime_tools-1.10: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + The sasl-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13184 Application(s): sasl + + *** POTENTIAL INCOMPATIBILITY *** + + The module 'overload' is removed. + + + Full runtime dependencies of sasl-3.0: erts-6.0, kernel-4.1, + stdlib-2.8, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.2.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.2.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of snmp-5.2.3: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.3 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13131 Application(s): ssh + + Some time optimization mainly in message encoding. + + + OTP-13175 Application(s): ssh + + Optimized the sftp client time by setting new packet + and window sizes. + + + OTP-13267 Application(s): ssh + + The ssh_connection_handler module in SSH is changed and + now uses the new behaviour gen_statem. + + The module can be used as an example of a gen_statem + callback module but with a warning: This commit of ssh + is just a straightforward port from gen_fsm to + gen_statem with some code cleaning. Since the state + machine and the state callbacks are almost unchanged + the ssh module does not demonstrate the full potential + of the new behaviour. + + The "new" state machine uses compund states. The ssh + server and client state machines are quite similar but + differences exist. With gen_fsm there were flags in the + user data which in fact implemented "substates". Now + with gen_statem those are made explicit in the state + names, eg the state userauth and the binary role-flag + becomes the two state names {userauth, server} and + {userauth, client}. + + + OTP-13347 Application(s): ssh + Related Id(s): ERL-86 + + The {error, Reason} tuples returned from ssh_sftp api + functions are described. + + + OTP-13527 Application(s): ssh + + It is now possible to call ssh:daemon/{1,2,3} with + Port=0. This makes the daemon select a free listening + tcp port before opening it. To find this port number + after the call, use the new function ssh:daemon_info/1. + See the reference manual for details. + + + Full runtime dependencies of ssh-4.3: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.0 + + + --------------------------------------------------------------------- + --- ssl-8.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-8.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13195 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Remove default support for DES cipher suites + + + OTP-13214 Application(s): crypto, ssl + + Deprecate the function crypto:rand_bytes and make sure + that crypto:strong_rand_bytes is used in all places + that are cryptographically significant. + + + OTP-13255 Application(s): ssl + + Better error handling of user error during TLS upgrade. + ERL-69 is solved by gen_statem rewrite of ssl + application. + + + OTP-13431 Application(s): ssl + + Remove confusing error message when closing a + distributed erlang node running over TLS + + + OTP-13464 Application(s): ssl + + ssl now uses gen_statem instead of gen_fsm to implement + the ssl connection process, this solves some timing + issues in addtion to making the code more intuitive as + the behaviour can be used cleanly instead of having a + lot of workaround for shortcomings of the behaviour. + + + Full runtime dependencies of ssl-8.0: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- stdlib-3.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + The stdlib-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13260 Application(s): stdlib + Related Id(s): seq13002 + + Fix a race bug affecting dets:open_file/2. + + + OTP-13459 Application(s): erts, stdlib + + Don't search for non-existing Map keys twice + + For maps:get/2,3 and maps:find/2, searching for an + immediate key, e.g. an atom, in a small map, the search + was performed twice if the key did not exist. + + + OTP-13531 Application(s): stdlib + + Avoid stray corner-case math errors on Solaris, e.g. an + error is thrown on undeflows in exp() and pow() when it + shouldn't be. + + + OTP-13534 Application(s): stdlib + Related Id(s): ERL-135 + + Fix linting of map key variables + + Map keys cannot be unbound and then used in parallel + matching. + + Example: #{ K := V } = #{ k := K } = M. This is illegal + if 'K' is not bound. + + + --- Improvements and New Features --- + + OTP-10292 Application(s): stdlib + + The types of The Abstract Format in the erl_parse + module have been refined. + + + OTP-11879 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Undocumented syntax for function specifications, -spec + F/A :: Domain -> Range, has been removed (without + deprecation). + + Using the is_subtype(V, T) syntax for constraints (in + function specifications) is no longer documented, and + the newer syntax V :: T should be used instead. The + Erlang Parser still recognizes the is_subtype syntax, + and will continue to do so for some time. + + + OTP-12502 Application(s): stdlib + Related Id(s): OTP-12501 + + The 'random' module has been deprecated. Use the 'rand' + module instead. + + + OTP-12719 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Background: In record fields with a type declaration + but without an initializer, the Erlang parser inserted + automatically the singleton type 'undefined' to the + list of declared types, if that value was not present + there. That is, the record declaration: + + -record(rec, {f1 :: float(), f2 = 42 :: integer(), f3 + :: some_mod:some_typ()}). + + was translated by the parser to: + + -record(rec, {f1 :: float() | 'undefined', f2 = 42 :: + integer(), f3 :: some_mod:some_typ() | 'undefined'}). + + The rationale for this was that creation of a "dummy" + #rec{} record should not result in a warning from + dialyzer that, for example, the implicit initialization + of the #rec.f1 field violates its type declaration. + + Problems: This seemingly innocent action has some + unforeseen consequences. + + For starters, there is no way for programmers to + declare that e.g. only floats make sense for the f1 + field of #rec{} records when there is no "obvious" + default initializer for this field. (This also affects + tools like PropEr that use these declarations produced + by the Erlang parser to generate random instances of + records for testing purposes.) + + It also means that dialyzer does not warn if e.g. an + is_atom/1 test or something more exotic like an + atom_to_list/1 call is performed on the value of the f1 + field. + + Similarly, there is no way to extend dialyzer to warn + if it finds record constructions where f1 is not + initialized to some float. + + Last but not least, it is semantically problematic when + the type of the field is an opaque type: creating a + union of an opaque and a structured type is very + problematic for analysis because it fundamentally + breaks the opacity of the term at that point. + + Change: To solve these problems the parser will not + automatically insert the 'undefined' value anymore; + instead the user has the option to choose the places + where this value makes sense (for the field) and where + it does not and insert the | 'undefined' there + manually. + + Consequences of this change: This change means that + dialyzer will issue a warning for all places where + records with uninitialized fields are created and those + fields have a declared type that is incompatible with + 'undefined' (e.g. float()). This warning can be + suppressed easily by adding | 'undefined' to the type + of this field. This also adds documentation that the + user really intends to create records where this field + is uninitialized. + + + OTP-12861 Application(s): stdlib + + Remove deprecated functions in the modules erl_scan and + erl_parse. + + + OTP-13059 Application(s): compiler, stdlib + + *** HIGHLIGHT *** + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13065 Application(s): stdlib + Related Id(s): PR-960 + + A new behaviour gen_statem has been implemented. It has + been thoroughly reviewed, is stable enough to be used + by at least two heavy OTP applications, and is here to + stay. But depending on user feedback, we do not expect + but might find it necessary to make minor not backwards + compatible changes into OTP-20.0, so its state can be + designated as "not quite experimental"... + + The gen_statem behaviour is intended to replace gen_fsm + for new code. It has the same features and add some + really useful: + + -- State code is gathered + + -- The state can be any term + + -- Events can be postponed + + -- Events can be self generated + + -- A reply can be sent from a later state + + -- There can be multiple sys traceable replies + + The callback model(s) for gen_statem differs from the + one for gen_fsm, but it is still fairly easy to rewrite + from gen_fsm to gen_statem. + + + OTP-13082 Application(s): stdlib + + Optimize binary:split/2 and binary:split/3 with native + BIF implementation. + + + OTP-13148 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Background: The types of record fields have since R12B + been put in a separate form by epp:parse_file(), + leaving the record declaration form untyped. The + separate form, however, does not follow the syntax of + type declarations, and parse transforms inspecting + -type() attributes need to know about the special + syntax. Since the compiler stores the return value of + epp:parse_file() as debug information in the abstract + code chunk ("Abst" or abstract_code), tools too need to + know about the special syntax, if they inspect -type() + attributes in abstract code. + + Change: No separate type form is created by + epp:parse_file(), but the type information is kept in + the record fields. This means that all parse transforms + and all tools inspecting -record() declarations need to + recognize {typed_record_field, Field, Type}. + + + OTP-13152 Application(s): stdlib + + Unsized fields of the type bytes in binary generators + are now forbidden. (The other ways of writing unsized + fields, such as binary, are already forbidden.) + + + OTP-13153 Application(s): stdlib + + The type map() is built-in, and cannot be redefined. + + + OTP-13229 Application(s): stdlib + Related Id(s): ERL-55 + + Let dets:open_file() exit with a badarg message if + given a raw file name (a binary). + + + OTP-13392 Application(s): stdlib + + Add filename:basedir/2,3 + + basedir returns suitable path(s) for 'user_cache', + 'user_config', 'user_data', 'user_log', 'site_config' + and 'site_data'. On linux and linux like systems the + paths will respect the XDG environment variables. + + + OTP-13476 Application(s): stdlib + + There are new preprocessor directives -error(Term) and + -warning(Term) to cause a compilation error or a + compilation warning, respectively. + + + OTP-13487 Application(s): erts, stdlib + + Optimize '++' operator and lists:append/2 by using a + single pass to build a new list while checking for + properness. + + + OTP-13522 Application(s): erts, stdlib + Related Id(s): PR-1025 + + Add maps:update_with/3,4 and maps:take/2 + + + OTP-13523 Application(s): stdlib + + lists:join/2 has been added. Similar to string:join/2 + but works with arbitrary lists. + + + OTP-13524 Application(s): stdlib + Related Id(s): PR-1002 + + Obfuscate asserts to make Dialyzer shut up. + + + Full runtime dependencies of stdlib-3.0: compiler-5.0, crypto-3.3, + erts-7.3, kernel-4.1, sasl-2.6 + + + --------------------------------------------------------------------- + --- syntax_tools-2.0 ------------------------------------------------ + --------------------------------------------------------------------- + + The syntax_tools-2.0 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-12863 Application(s): syntax_tools + + *** POTENTIAL INCOMPATIBILITY *** + + The abstract data type in erl_syntax is augmented with + types and function specifications. + + The module erl_prettypr pretty prints types and + function specification, and the output can be parsed. + + The types of record fields are no longer ignored. As a + consequence erl_syntax_lib:analyze_record_field/1 + returns {Default, Type} instead of Default. The + functions analyze_record_attribute, analyze_attribute, + analyze_form, and analyze_forms in the erl_syntax_lib + module are also affected by this incompatible change. + + + Full runtime dependencies of syntax_tools-2.0: compiler-7.0, + erts-8.0, kernel-5.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- tools-2.8.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-2.8.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13499 Application(s): tools + + Update fprof to use the new 'spawned' trace event to + determine when a process has been created. + + + Full runtime dependencies of tools-2.8.4: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- typer-0.9.11 ---------------------------------------------------- + --------------------------------------------------------------------- + + The typer-0.9.11 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of typer-0.9.11: compiler-5.0, + dialyzer-2.7, erts-6.0, hipe-3.10.3, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- wx-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13491 Application(s): wx + + Fixed bugs which could cause called functions to be + invoked twice or not at all when callbacks where + invoked at the same time. + + + --- Improvements and New Features --- + + OTP-13553 Application(s): wx + + *** POTENTIAL INCOMPATIBILITY *** + + Changed atom 'boolean' fields in #wxMouseState{} to + 'boolean()'. + + Moved out arguments in wxListCtrl:hitTest to result. + + Removed no-op functions in wxGauge that have been + removed from wxWidgets-3.1. + + + Full runtime dependencies of wx-1.7: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.11 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.11 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of xmerl-1.3.11: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Aleksei Magusev, Alexey Lebedeff, Andrew Bennett, Byaruhanga + Franklin, Constantin Rack, Derek Brown, Diana Corbacho, Dmytro + Lytovchenko, FabioBatSilva, Jesper Louis Andersen, John Eckersberg, + José Valim, Kenneth Lakin, Kostis Sagonas, Luca Favatella, Lukas + Larsson, Magnus Henoch, Magnus Lång, Michael Klishin, Michael Santos, + Michal Ptaszek, Mikael Pettersson, Milton Inostroza, Nathaniel + Waisbrot, Nikolaos S. Papaspyrou, Péter Gömöri, Richard Carlsson, + Rico Antonio Felix, Sean Charles, Serge Aleynikov, Simon Cornish, + Stavros Aronis, Stefan Strigler, Steve Vinoski, Stuart Thackray, Ulf + Wiger, Vlad Dumitrescu, Yiannis Tsiouris, Yuki Ito, def_null, + eksperimental, xsipewe, xuming + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0-rc2.README.txt b/release-notes/OTP-19.0-rc2.README.txt new file mode 100644 index 0000000..b539047 --- /dev/null +++ b/release-notes/OTP-19.0-rc2.README.txt @@ -0,0 +1,3182 @@ +Patch Package: OTP 19.0 +Git Tag: OTP-19.0 +Date: 2016-06-02 +Trouble Report Id: OTP-10267, OTP-10282, OTP-10292, OTP-10349, + OTP-11879, OTP-12217, OTP-12345, OTP-12502, + OTP-12573, OTP-12590, OTP-12593, OTP-12719, + OTP-12861, OTP-12863, OTP-12883, OTP-12908, + OTP-12951, OTP-12979, OTP-13033, OTP-13034, + OTP-13047, OTP-13058, OTP-13059, OTP-13065, + OTP-13082, OTP-13086, OTP-13087, OTP-13088, + OTP-13089, OTP-13096, OTP-13097, OTP-13111, + OTP-13112, OTP-13122, OTP-13123, OTP-13131, + OTP-13148, OTP-13152, OTP-13153, OTP-13167, + OTP-13174, OTP-13175, OTP-13184, OTP-13191, + OTP-13195, OTP-13206, OTP-13207, OTP-13214, + OTP-13227, OTP-13229, OTP-13244, OTP-13255, + OTP-13256, OTP-13260, OTP-13265, OTP-13267, + OTP-13280, OTP-13288, OTP-13289, OTP-13293, + OTP-13294, OTP-13325, OTP-13341, OTP-13347, + OTP-13359, OTP-13366, OTP-13374, OTP-13375, + OTP-13383, OTP-13392, OTP-13401, OTP-13407, + OTP-13408, OTP-13409, OTP-13410, OTP-13411, + OTP-13419, OTP-13422, OTP-13425, OTP-13429, + OTP-13430, OTP-13431, OTP-13440, OTP-13442, + OTP-13444, OTP-13445, OTP-13449, OTP-13452, + OTP-13458, OTP-13459, OTP-13461, OTP-13464, + OTP-13470, OTP-13474, OTP-13475, OTP-13476, + OTP-13481, OTP-13483, OTP-13485, OTP-13487, + OTP-13488, OTP-13489, OTP-13491, OTP-13493, + OTP-13494, OTP-13495, OTP-13496, OTP-13497, + OTP-13499, OTP-13500, OTP-13501, OTP-13502, + OTP-13503, OTP-13504, OTP-13507, OTP-13508, + OTP-13512, OTP-13516, OTP-13517, OTP-13520, + OTP-13522, OTP-13523, OTP-13524, OTP-13526, + OTP-13527, OTP-13531, OTP-13532, OTP-13534, + OTP-13540, OTP-13541, OTP-13542, OTP-13544, + OTP-13545, OTP-13546, OTP-13548, OTP-13551, + OTP-13552, OTP-13553, OTP-13555, OTP-13556, + OTP-13558, OTP-13559, OTP-13560, OTP-13561, + OTP-13562, OTP-13572, OTP-13576, OTP-13580, + OTP-13590, OTP-13599, OTP-13600, OTP-13601, + OTP-13602, OTP-13610, OTP-13612, OTP-13618, + OTP-13622, OTP-13623, OTP-13625, OTP-13626, + OTP-13627, OTP-13628, OTP-13629, OTP-13630, + OTP-13631, OTP-13632, OTP-13635, OTP-13636, + OTP-13638, OTP-13639, OTP-13642 +Seq num: seq13002 +System: OTP +Release: 19 +Application: asn1-4.0.3, common_test-1.12.2, compiler-7.0, + cosEvent-2.2.1, cosEventDomain-1.2.1, + cosFileTransfer-1.2.1, cosNotification-1.2.2, + cosProperty-1.2.1, cosTime-1.2.2, + cosTransactions-1.3.2, crypto-3.7, + debugger-4.2, dialyzer-3.0, diameter-1.12, + edoc-0.7.19, eldap-1.2.2, erl_docgen-0.4.3, + erl_interface-3.9, erts-8.0, et-1.6, + eunit-2.3, gs-1.6.1, hipe-3.15.1, ic-4.4.1, + inets-6.3, jinterface-1.7, kernel-5.0, + megaco-3.18.1, mnesia-4.14, observer-2.2, + odbc-2.11.2, orber-3.8.2, os_mon-2.4.1, + otp_mibs-1.1.1, parsetools-2.1.2, + percept-0.8.12, public_key-1.2, + reltool-0.7.1, runtime_tools-1.10, sasl-3.0, + snmp-5.2.3, ssh-4.3, ssl-8.0, stdlib-3.0, + syntax_tools-2.0, tools-2.8.4, typer-0.9.11, + wx-1.7, xmerl-1.3.11 +Predecessor: OTP + + Check out the git tag OTP-19.0, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-10267 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first haing to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-12345 Application(s): erts, runtime_tools + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-12345 Application(s): erts, runtime_tools + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-12590 Application(s): erts + Related Id(s): OTP-10251 + + Sharing preserved copy for messages and exit signals + + Enable sharing preserved copy with configure option + --enable-sharing-preserving. This will preserve + sharing, within the process, when communication with + other processes in the Erlang node. There is a + trade-off, the copy is more costly but this cost can be + reclaimed if there is a lot of sharing in the message. + With this feature enabled literals will not be copied + in a send except during a purge phase of the module + where the literals are located. This feature is + considered experimental in 19.0. + + + OTP-13058 Application(s): mnesia + + Added experimental external backend plugin api. This + adds the possibility for the user to write other + storage backends for data, for example by using shared + memory or ram-cached disk storage. + + The plugin api may change in future versions after + being battle tested. + + + OTP-13059 Application(s): compiler, stdlib + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13059 Application(s): compiler, stdlib + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13065 Application(s): stdlib + Related Id(s): PR-960 + + A new behaviour gen_statem has been implemented. It has + been thoroughly reviewed, is stable enough to be used + by at least two heavy OTP applications, and is here to + stay. But depending on user feedback, we do not expect + but might find it necessary to make minor not backwards + compatible changes into OTP-20.0, so its state can be + designated as "not quite experimental"... + + The gen_statem behaviour is intended to replace gen_fsm + for new code. It has the same features and add some + really useful: + + -- State code is gathered + + -- The state can be any term + + -- Events can be postponed + + -- Events can be self generated + + -- A reply can be sent from a later state + + -- There can be multiple sys traceable replies + + The callback model(s) for gen_statem differs from the + one for gen_fsm, but it is still fairly easy to rewrite + from gen_fsm to gen_statem. + + + OTP-13366 Application(s): erts + Related Id(s): OTP-13047 + + Introduction of configurable management of data + referred to by the message queue of a process. Each + process can be configured individually. + + It is now possible to configure the message queue of a + process, so that all data referred by it will be kept + outside of the heap, and by this prevent this data from + being part of garbage collections. + + For more information see the documentation of + process_flag(message_queue_data, MQD). + + + OTP-13464 Application(s): ssl + + ssl now uses gen_statem instead of gen_fsm to implement + the ssl connection process, this solves some timing + issues in addtion to making the code more intuitive as + the behaviour can be used cleanly instead of having a + lot of workaround for shortcomings of the behaviour. + + + OTP-13496 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13503 Application(s): erts + + The erts internal tracing support has been changed to + have much less overhead and be more scalable. + + This rewrite does not break any backwards + incompatabilities, but it does change the ordering of + some trace messages when compared to previous releases. + It should be noted that this only applies to trace + messages sent to processes or ports, it does not apply + to the new tracer module. However in future releases + they may also be effected by this. + + Trace messages are only guaranteed to be ordered from + one traced process or port. In previous releases this + was not visible as a 'send' trace message would always + arrive before the corresponding 'receive' trace message + that is no longer always the case. This also means that + timestamped trace messages may seem to arrive out of + order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer. + + + OTP-13572 Application(s): erts, kernel + Related Id(s): PR-612 + + Experimental support for Unix Domain Sockets has been + implemented. Read the sources if you want to try it + out. Example: gen_udp:open(0, + [{ifaddr,{local,"/tmp/socket"}}]). Documentation will + be written after user feedback on the experimental API. + + + OTP-13632 Application(s): ssl + + Enhance error log messages to facilitate for users to + understand the error + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-10267 Application(s): erts + + *** HIGHLIGHT *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first haing to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-11879 Application(s): stdlib + + Undocumented syntax for function specifications, -spec + F/A :: Domain -> Range, has been removed (without + deprecation). + + Using the is_subtype(V, T) syntax for constraints (in + function specifications) is no longer documented, and + the newer syntax V :: T should be used instead. The + Erlang Parser still recognizes the is_subtype syntax, + and will continue to do so for some time. + + + OTP-12719 Application(s): stdlib + + Background: In record fields with a type declaration + but without an initializer, the Erlang parser inserted + automatically the singleton type 'undefined' to the + list of declared types, if that value was not present + there. That is, the record declaration: + + -record(rec, {f1 :: float(), f2 = 42 :: integer(), f3 + :: some_mod:some_typ()}). + + was translated by the parser to: + + -record(rec, {f1 :: float() | 'undefined', f2 = 42 :: + integer(), f3 :: some_mod:some_typ() | 'undefined'}). + + The rationale for this was that creation of a "dummy" + #rec{} record should not result in a warning from + dialyzer that, for example, the implicit initialization + of the #rec.f1 field violates its type declaration. + + Problems: This seemingly innocent action has some + unforeseen consequences. + + For starters, there is no way for programmers to + declare that e.g. only floats make sense for the f1 + field of #rec{} records when there is no "obvious" + default initializer for this field. (This also affects + tools like PropEr that use these declarations produced + by the Erlang parser to generate random instances of + records for testing purposes.) + + It also means that dialyzer does not warn if e.g. an + is_atom/1 test or something more exotic like an + atom_to_list/1 call is performed on the value of the f1 + field. + + Similarly, there is no way to extend dialyzer to warn + if it finds record constructions where f1 is not + initialized to some float. + + Last but not least, it is semantically problematic when + the type of the field is an opaque type: creating a + union of an opaque and a structured type is very + problematic for analysis because it fundamentally + breaks the opacity of the term at that point. + + Change: To solve these problems the parser will not + automatically insert the 'undefined' value anymore; + instead the user has the option to choose the places + where this value makes sense (for the field) and where + it does not and insert the | 'undefined' there + manually. + + Consequences of this change: This change means that + dialyzer will issue a warning for all places where + records with uninitialized fields are created and those + fields have a declared type that is incompatible with + 'undefined' (e.g. float()). This warning can be + suppressed easily by adding | 'undefined' to the type + of this field. This also adds documentation that the + user really intends to create records where this field + is uninitialized. + + + OTP-12863 Application(s): syntax_tools + + The abstract data type in erl_syntax is augmented with + types and function specifications. + + The module erl_prettypr pretty prints types and + function specification, and the output can be parsed. + + The types of record fields are no longer ignored. As a + consequence erl_syntax_lib:analyze_record_field/1 + returns {Default, Type} instead of Default. The + functions analyze_record_attribute, analyze_attribute, + analyze_form, and analyze_forms in the erl_syntax_lib + module are also affected by this incompatible change. + + + OTP-13088 Application(s): erts + + The functionality behind erlang:open_port/2 when called + with spawn or spawn_executable has been redone so that + the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and + does not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have + shown this approach to be about 3-5 times as fast as + the old approach where the fork/vfork was done by erts. + This is a pure stability and performance fix, however + some error messages may have changed, which is why it + is marked as a backwards incompatible change. + + + OTP-13148 Application(s): stdlib + + Background: The types of record fields have since R12B + been put in a separate form by epp:parse_file(), + leaving the record declaration form untyped. The + separate form, however, does not follow the syntax of + type declarations, and parse transforms inspecting + -type() attributes need to know about the special + syntax. Since the compiler stores the return value of + epp:parse_file() as debug information in the abstract + code chunk ("Abst" or abstract_code), tools too need to + know about the special syntax, if they inspect -type() + attributes in abstract code. + + Change: No separate type form is created by + epp:parse_file(), but the type information is kept in + the record fields. This means that all parse transforms + and all tools inspecting -record() declarations need to + recognize {typed_record_field, Field, Type}. + + + OTP-13184 Application(s): sasl + + The module 'overload' is removed. + + + OTP-13195 Application(s): ssl + + Remove default support for DES cipher suites + + + OTP-13449 Application(s): kernel + + The functions rpc:safe_multi_server_call/2,3 that were + deprecated in R12B have been removed. + + + OTP-13496 Application(s): erts + + *** HIGHLIGHT *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13497 Application(s): erts + + When the 'procs' trace flag is enabled, a 'spawned' + trace event is now also generated by a newly created + process. The previous event 'spawn' remains, but as it + is generated by the process that did the spawn, it is + not guaranteed that it is ordered with other trace + events from the newly spawned process. So when tracking + the lifetime of a process this new event should be used + as the creation event. + + This new trace event is marked as an incompatabiliy + because tools that expect certain trace events when + enabling 'procs' will have to updated. + + + OTP-13504 Application(s): compiler + + The compiler will no longer put the compilation date + and time into BEAM files. That means that two BEAM + files compiled on the same computer from the same + source code and compilation options will be identical. + + Note: If you want to find out whether a BEAM file on + disk is different from the loaded code, compared the + MD5 value obtained from Mod:module_info(md5) with the + MD5 value obtained from beam_lib:md5(BeamFileForMod) + + . + + + OTP-13532 Application(s): erts, runtime_tools + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + OTP-13532 Application(s): erts, runtime_tools + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + OTP-13542 Application(s): dialyzer + Related Id(s): PR-1014 + + The type specification syntax for Maps is improved: + + -- + + The association type KeyType := ValueType denotes an + association that must be present. + + -- + + The shorthand ... stands for the association type any() + => any(). + + An incompatible change is that #{} stands for the empty + map. The type map() (a map of any size) can be written + as #{...}. + + + OTP-13553 Application(s): wx + + Changed atom 'boolean' fields in #wxMouseState{} to + 'boolean()'. + + Moved out arguments in wxListCtrl:hitTest to result. + + Removed no-op functions in wxGauge that have been + removed from wxWidgets-3.1. + + + OTP-13561 Application(s): inets + + Remove module inets_regexp. Module re should be used + instead. + + + OTP-13622 Application(s): kernel + Related Id(s): PR-1065 + + The function inet:gethostbyname/1 now honors the + resolver option inet6 instead of always looking up IPv4 + addresses. + + + --------------------------------------------------------------------- + --- asn1-4.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-4.0.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of asn1-4.0.3: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.12.2 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.12.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13475 Application(s): common_test + + The following modules were missing in + common_test.app.src: ct_groups, ct_property_test, + ct_release_test, ct_webtool, ct_webtool_sup, + test_server_gl. They have now been added. + + + Full runtime dependencies of common_test-1.12.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-2.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13430 Application(s): compiler + Related Id(s): ERL-113 + + compile:forms/1,2 would crash when used in a working + directory thad had been deleted by another process. + (Thanks to Adam Lindberg for reporting this bug.) + + + OTP-13552 Application(s): compiler, dialyzer + + Dialyzer no longer crashes when there is an invalid + function call such as 42(7) in a module being analyzed. + The compiler will now warn for invalid function calls + such as X = 42, x(7). (ERL-138. Thanks to Daniel Feltey + for reporting this bug.) + + + --- Improvements and New Features --- + + OTP-12951 Application(s): compiler + + Optimization of tuple matching has been slightly + improved. + + + OTP-12979 Application(s): compiler + + Five deprecated and undocumented functions in the + module core_lib have been removed. The functions are: + get_anno/{1,2}, is_literal/1, is_literal_list/1, and + literal_value. Use the appropriate functions in the + cerl module instead. + + + OTP-13059 Application(s): compiler, stdlib + + *** HIGHLIGHT *** + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13280 Application(s): compiler + + The function mapfold/4 has been added to the cerl_trees + module. + + + OTP-13289 Application(s): compiler + + Bitstring comprehensions have been generalized to allow + arbitrary expressions in the construction part. + + + OTP-13374 Application(s): compiler + Related Id(s): ERL-44 + + The compiler will now produce warnings for binary + patterns that will never match (example: > = Bin). + + + OTP-13504 Application(s): compiler + + *** POTENTIAL INCOMPATIBILITY *** + + The compiler will no longer put the compilation date + and time into BEAM files. That means that two BEAM + files compiled on the same computer from the same + source code and compilation options will be identical. + + Note: If you want to find out whether a BEAM file on + disk is different from the loaded code, compared the + MD5 value obtained from Mod:module_info(md5) with the + MD5 value obtained from beam_lib:md5(BeamFileForMod) + + . + + + Full runtime dependencies of compiler-7.0: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosEvent-2.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The cosEvent-2.2.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosEvent-2.2.1: erts-7.0, kernel-3.0, + orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosEventDomain-1.2.1 -------------------------------------------- + --------------------------------------------------------------------- + + The cosEventDomain-1.2.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosEventDomain-1.2.1: + cosNotification-1.1.21, erts-7.0, kernel-3.0, orber-3.6.27, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosFileTransfer-1.2.1 ------------------------------------------- + --------------------------------------------------------------------- + + The cosFileTransfer-1.2.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosFileTransfer-1.2.1: + cosProperty-1.1.17, erts-7.0, inets-5.10, kernel-3.0, orber-3.6.27, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosNotification-1.2.2 ------------------------------------------- + --------------------------------------------------------------------- + + The cosNotification-1.2.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosNotification-1.2.2: cosEvent-2.1.15, + cosTime-1.1.14, erts-7.0, kernel-3.0, orber-3.6.27, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosProperty-1.2.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The cosProperty-1.2.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosProperty-1.2.1: erts-7.0, kernel-3.0, + mnesia-4.12, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosTime-1.2.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The cosTime-1.2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosTime-1.2.2: cosEvent-2.1.15, + erts-7.0, kernel-3.0, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosTransactions-1.3.2 ------------------------------------------- + --------------------------------------------------------------------- + + The cosTransactions-1.3.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of cosTransactions-1.3.2: erts-7.0, + kernel-3.0, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- crypto-3.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + The crypto-3.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-12217 Application(s): crypto + + Refactor crypto to use the EVP interface of OpenSSL, + which is the recommended interface that also enables + access to hardware acceleration for some operations. + + + OTP-13206 Application(s): crypto + Related Id(s): 832, pr + + Add support for 192-bit keys for the aes_cbc cipher. + + + OTP-13207 Application(s): crypto + Related Id(s): pr829 + + Add support for 192-bit keys for aes_ecb. + + + OTP-13214 Application(s): crypto, ssl + + Deprecate the function crypto:rand_bytes and make sure + that crypto:strong_rand_bytes is used in all places + that are cryptographically significant. + + + OTP-13483 Application(s): crypto + Related Id(s): PR-998 + + Enable AES-GCM encryption/decryption to change the tag + length between 1 to 16 bytes. + + + Full runtime dependencies of crypto-3.7: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- debugger-4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-4.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13375 Application(s): debugger + + When the debugger searches for source files, it will + also use the location of the source in the compilation + information part of the BEAM file. + + + Full runtime dependencies of debugger-4.2: compiler-5.0, erts-6.0, + kernel-3.0, stdlib-2.5, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13520 Application(s): dialyzer + + Fix a bug in the translation of forms to types. + + + OTP-13544 Application(s): dialyzer + Related Id(s): PR-1007 + + Correct mispelling in Dialyzer's acronym definition. + + + OTP-13552 Application(s): compiler, dialyzer + + Dialyzer no longer crashes when there is an invalid + function call such as 42(7) in a module being analyzed. + The compiler will now warn for invalid function calls + such as X = 42, x(7). (ERL-138. Thanks to Daniel Feltey + for reporting this bug.) + + + --- Improvements and New Features --- + + OTP-10349 Application(s): dialyzer + + The evaluation of SCCs in dialyzer_typesig is + optimized. + + Maps are used instead of Dicts to further optimize the + evalutation. + + + OTP-13244 Application(s): dialyzer + + Since Erlang/OTP R14A, when support for parameterized + modules was added, module() has included tuple(), but + that part is removed; the type module() is now the same + as atom(), as documented in the Reference Manual. + + + OTP-13542 Application(s): dialyzer + Related Id(s): PR-1014 + + *** POTENTIAL INCOMPATIBILITY *** + + The type specification syntax for Maps is improved: + + -- + + The association type KeyType := ValueType denotes an + association that must be present. + + -- + + The shorthand ... stands for the association type any() + => any(). + + An incompatible change is that #{} stands for the empty + map. The type map() (a map of any size) can be written + as #{...}. + + + Full runtime dependencies of dialyzer-3.0: compiler-7.0, erts-8.0, + hipe-3.15.1, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-1.12 --------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-1.12 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13508 Application(s): diameter + + Add diameter:peer_info/1. + + That retrieves information in the style of + diameter:service_info/2, but for a single peer + connection. + + + Full runtime dependencies of diameter-1.12: erts-6.0, kernel-3.0, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- edoc-0.7.19 ----------------------------------------------------- + --------------------------------------------------------------------- + + The edoc-0.7.19 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13558 Application(s): edoc + + Handle typed record fields. + + + Full runtime dependencies of edoc-0.7.19: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13590 Application(s): eldap + Related Id(s): PR-1048 + + If the underlying tcp connection is closed and an LDAP + operation returned tcp_error, the client applications + tend to close the ldap handle with eldap:close. This + will cause a {nocatch, {gen_tcp_error, ...}} exception. + + Such errors are now ignored during close, because the + socket will be closed anyway. + + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of eldap-1.2.2: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.4.3 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-0.4.3 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13600 Application(s): erl_docgen + Related Id(s): ERL-141, Jira: + + Generate HTML anchors for datatypes without name + attribute. + + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + --- Known Bugs and Problems --- + + OTP-13638 Application(s): erl_docgen, otp + + Updated make rules so it's possible to use the xmllint + target for checking the system documentation. + Removed usage of non defined DTD tag (output) from the + system documentation and corrected a number of xml + faults. + + Added support for quote tag and a new level of header + formatting in erl_docgen. + + A fault when generating html for manual set markers for + section headings is corrected so now is the title + visible after hyperlink jump. + + + OTP-13639 Application(s): erl_docgen + + Corrected the space handling for the seealso tag. + + + Full runtime dependencies of erl_docgen-0.4.3: edoc-0.7.13, erts-6.0, + stdlib-2.5, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.9 ----------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.9 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + --------------------------------------------------------------------- + --- erts-8.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-8.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12593 Application(s): erts, kernel + + The handling of on_load functions has been improved. + The major improvement is that if a code upgrade fails + because the on_load function fails, the previous + version of the module will now be retained. + + + OTP-13034 Application(s): erts + + is_builtin(erlang, apply, 3) will now return true. + + + OTP-13288 Application(s): erts + Related Id(s): PR913 + + Fix enif_get_list_length to return false if list is + improper or have length larger than UINT_MAX (did + return true and an incorrect length value). + + + OTP-13341 Application(s): erts + Related Id(s): PR951 + + Cleanup hipe signal handling code for x86 and make it + more portable. + + + OTP-13411 Application(s): erts, kernel + + Use fsync instead of fdatasync on Mac OSX. + + + OTP-13419 Application(s): erts + + Make sure to create a crash dump when running out of + memory. This was accidentally removed in the erts-7.3 + release. + + + OTP-13425 Application(s): erts + + A bug has been fixed where if erlang was started +B on + a unix platform it would be killed by a SIGUSR2 signal + when creating a crash dump. + + + OTP-13452 Application(s): erts + + Fix race between process_flag(trap_exit,true) and a + received exit signal. + + A process could terminate due to exit signal even + though process_flag(trap_exit,true) had returned. A + very specific timing between call to process_flag/2 and + exit signal from another scheduler was required for + this to happen. + + + OTP-13459 Application(s): erts, stdlib + + Don't search for non-existing Map keys twice + + For maps:get/2,3 and maps:find/2, searching for an + immediate key, e.g. an atom, in a small map, the search + was performed twice if the key did not exist. + + + OTP-13474 Application(s): erts + + When a abnormally large distribution message is about + to be sent, the VM has been changed to create a crash + dump instead of a core dump. + + + OTP-13485 Application(s): erts + Related Id(s): ERL-123 + + Fix erlang:process_info/2 type specification + + + OTP-13489 Application(s): erts + Related Id(s): ERL-127 + + Fix bug in open_port/2 with option {args, List}. A vm + crash could be caused by an improper List. + + + OTP-13494 Application(s): erts + Related Id(s): ERL-126 + + Don't crash on terminating processes with + erlang:system_profile/1,2 + + + OTP-13512 Application(s): erts + + Fixed bugs where the reduction counter was not handled + correct. + + + OTP-13517 Application(s): erts + + Fixed typo in description of the EPMD_DUMP_REQ + response. + + + OTP-13540 Application(s): erts + + Fixed a bug where a process flagged as sensitive would + sometimes record its save_calls when it shouldn't. + + + OTP-13562 Application(s): erts + + Update configure scripts to not use hardcoded path for + /bin/pwd and /bin/rm. + + + OTP-13628 Application(s): erts + + When passing a larger binary than the outputv callback + of a linked-in driver can handle in one io vector slot, + the binary is now split into multiple slots in the io + vector. This change only effects system where the max + size of an io vector slot is smaller then the word size + of the system (e.g. Windows). + + This change means that it is now possible on Windows to + send binaries that are larger than 4GB to + port_comnmand, which is what is used for file:write, + gen_tcp:send etc. + + + --- Improvements and New Features --- + + OTP-10267 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first haing to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-10282 Application(s): erts + + Introduce LTTng tracing of Erlang Runtime System + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool. + + For a list of all tracepoints, see Runtime Tools User's + Guide . + + + OTP-12345 Application(s): erts, runtime_tools + + *** HIGHLIGHT *** + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-12573 Application(s): erts + + The port of Erlang/OTP to the realtime operating system + OSE has been removed. + + + OTP-12590 Application(s): erts + Related Id(s): OTP-10251 + + *** HIGHLIGHT *** + + Sharing preserved copy for messages and exit signals + + Enable sharing preserved copy with configure option + --enable-sharing-preserving. This will preserve + sharing, within the process, when communication with + other processes in the Erlang node. There is a + trade-off, the copy is more costly but this cost can be + reclaimed if there is a lot of sharing in the message. + With this feature enabled literals will not be copied + in a send except during a purge phase of the module + where the literals are located. This feature is + considered experimental in 19.0. + + + OTP-12883 Application(s): erts + + Halfword BEAM has been removed. + + + OTP-12908 Application(s): erts, kernel + + Added os:perf_counter/1. + + The perf_counter is a very very cheap and high + resolution timer that can be used to timestamp system + events. It does not have monoticity guarantees, but + should on most OS's expose a monotonous time. + + + OTP-13047 Application(s): erts + + Support for a fragmented young heap generation. That + is, the young heap generation can consist of multiple + non continuous memory areas. The main reason for this + change is to avoid extra copying of messages that could + not be allocated directly on the receivers heap. + + + OTP-13086 Application(s): erts + + Erlang linked-in driver can now force the call to + open_port to block until a call to erl_drv_init_ack is + made inside the driver. This is useful when you want to + do some asynchronous initialization, for example + getting configuration from a pipe, and you want the + initial open_port call to fail if the configuration is + incomplete or wrong. See the erl_driver documentation + for more details on the API. + + + OTP-13087 Application(s): erts + + Erlang linked-in drivers can now set their own pid's as + seen in erlang:port_info/1 by using the erl_drv_set_pid + function. For more details see the erl_driver + documentation. + + + OTP-13088 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The functionality behind erlang:open_port/2 when called + with spawn or spawn_executable has been redone so that + the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and + does not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have + shown this approach to be about 3-5 times as fast as + the old approach where the fork/vfork was done by erts. + This is a pure stability and performance fix, however + some error messages may have changed, which is why it + is marked as a backwards incompatible change. + + + OTP-13096 Application(s): erts + + Improved yielding strategy in the implementation of the + following native functions: + + -- erlang:binary_to_list/1 + + -- erlang:binary_to_list/3 + + -- erlang:bitstring_to_list/1 + + -- erlang:list_to_binary/1 + + -- erlang:iolist_to_binary/1 + + -- erlang:list_to_bitstring/1 + + -- binary:list_to_bin/1 + + This in order to improve performance of these + functions. + + + OTP-13097 Application(s): erts + + All garbage collections of processes now bump + reductions. Also the amount of reductions bumped when + garbage collecting has been adjusted. It now better + corresponds to the amount of work performed. This in + order to improve the real time characteristics of the + system. + + + OTP-13111 Application(s): erts, kernel + + New functions that can load multiple functions at once + have been added to the 'code' module. The functions are + code:atomic_load/1, code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1. + + + OTP-13112 Application(s): erts + + The -boot_var option for erl now only supports a single + key and single value (as documented). The option used + to allow multiple key/value pairs, but that behavior + was undocumented. + + The function erl_prim_loader:start/3 has been removed. + Its documentation has also been removed. + + The undocumented and unsupported function + erl_prim_loader:get_files/2 has been removed. + + + OTP-13122 Application(s): erts + + Low level BIF erlang:purge_module/1 is made more robust + against incorrect use. Lingering processes that still + refer the old code are now killed before the module is + purged to prevent fatal VM behavior. + + + OTP-13123 Application(s): erts + + Improved dirty scheduler implementation. For more + information see the NIF documentation. + + Note that support for determining whether dirty NIF + support exist or not at compile time using the C + preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT has + been removed. + + + OTP-13167 Application(s): erts + + Various optimizations done to process dictionary + access. + + + OTP-13174 Application(s): erts + + Added max_heap_size process flag. See + erlang:process_flag for more details. + + + OTP-13227 Application(s): erts + + Allow dynamic drivers and NIF libraries to be built + with gcc option -fvisibility=hidden for faster loading + and more optimized code. + + + OTP-13265 Application(s): erts + + Add erlang:process_info(Pid, garbage_collection_info) + which returns extended garbage_collection information. + For more details see the documentation. + + + OTP-13293 Application(s): erts + + The functions erlang:list_to_integer/1 and + string:to_integer/1 have been optimized for large + inputs. + + + OTP-13359 Application(s): erts + + Improved memory allocation strategy for hipe native + code on x86_64 (amd64) architectures by reserving + enough low virtual address space needed for the + HiPE/AMD64 small code model. The default virtual + address area for hipe code is set to 512Mb, but can be + changed with emulator flag +MXscs. + + + OTP-13366 Application(s): erts + Related Id(s): OTP-13047 + + *** HIGHLIGHT *** + + Introduction of configurable management of data + referred to by the message queue of a process. Each + process can be configured individually. + + It is now possible to configure the message queue of a + process, so that all data referred by it will be kept + outside of the heap, and by this prevent this data from + being part of garbage collections. + + For more information see the documentation of + process_flag(message_queue_data, MQD). + + + OTP-13401 Application(s): erts + + Processes now yield when scanning large message queues + and not finding a matching message. This in order to + improve real time characteristics. + + + OTP-13440 Application(s): erts + + Optimized an erts internal function that is used to + traverse erlang terms. The internal function was mainly + used by term_to_binary and comparison of terms. + Benchmarks have shown up to a 10% performance increase + in those functions after the optimization. + + + OTP-13442 Application(s): erts + + Add the following NIF API functions: + + -- enif_cpu_time + + -- enif_now_time + + -- enif_make_unique_integer + + -- enif_is_process_alive + + -- enif_is_port_alive + + -- enif_term_to_binary + + -- enif_binary_to_term + + -- enif_port_command + + for details of what each function does, see the erl_nif + documentation. + + + OTP-13487 Application(s): erts, stdlib + + Optimize '++' operator and lists:append/2 by using a + single pass to build a new list while checking for + properness. + + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + OTP-13493 Application(s): erts + Related Id(s): PR-999 + + Don't send unasked for systemd notifications in epmd + + + OTP-13495 Application(s): erts + + The enif_send API has been extended to allow NULL to be + used as the message environment. When used this way, a + message environent is implicitly created and the given + term is copied into that environment before sending. + This can be an optimization if many small messages are + being sent by the nif. + + + OTP-13496 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13497 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + When the 'procs' trace flag is enabled, a 'spawned' + trace event is now also generated by a newly created + process. The previous event 'spawn' remains, but as it + is generated by the process that did the spawn, it is + not guaranteed that it is ordered with other trace + events from the newly spawned process. So when tracking + the lifetime of a process this new event should be used + as the creation event. + + This new trace event is marked as an incompatabiliy + because tools that expect certain trace events when + enabling 'procs' will have to updated. + + + OTP-13501 Application(s): erts + + Add the erlang:match_spec_test/3 function. The + functions allows the testing of match specifications + for both tracing and ets tables. It can be used to test + that a match specification does the expected filtering + on specific data. It also returns more verbose error + reasons for incorrectly constructed match + specifications. + + + OTP-13503 Application(s): erts + + *** HIGHLIGHT *** + + The erts internal tracing support has been changed to + have much less overhead and be more scalable. + + This rewrite does not break any backwards + incompatabilities, but it does change the ordering of + some trace messages when compared to previous releases. + It should be noted that this only applies to trace + messages sent to processes or ports, it does not apply + to the new tracer module. However in future releases + they may also be effected by this. + + Trace messages are only guaranteed to be ordered from + one traced process or port. In previous releases this + was not visible as a 'send' trace message would always + arrive before the corresponding 'receive' trace message + that is no longer always the case. This also means that + timestamped trace messages may seem to arrive out of + order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer. + + + OTP-13507 Application(s): erts + + Add possibility to filter send and receive trace with + match specifications. + + + OTP-13522 Application(s): erts, stdlib + Related Id(s): PR-1025 + + Add maps:update_with/3,4 and maps:take/2 + + + OTP-13532 Application(s): erts, runtime_tools + + *** POTENTIAL INCOMPATIBILITY *** + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + OTP-13541 Application(s): erts + Related Id(s): PR-1026 + + Print heap pointers for garbing processes during + crashdump + + + OTP-13560 Application(s): erts + + Changed and improved low level memory statistics + returned by erlang:system_info/1. The info for + erts_mmap has been moved from mseg_alloc to its own + section returned by {allocator, erts_mmap}. + + + OTP-13580 Application(s): erts + + Add enif_snprintf to the NIF API + + The fucntion enif_snprintf is similar to snprintf call + but can handle formating of Erlang terms via %T format + specifier. + + + OTP-13599 Application(s): erts + + The warning in the documentation for erlang:raise/3 has + been removed. It is now officially perfectly fine to + use raise/3 in production code. (Thanks to Per + Hedeland.) + + + OTP-13627 Application(s): erts + + Add -start_epmd command line option, this lets you + disable automatic starting of epmd when starting a + distributed node. + + Add -epmd_module command line option, this lets you + specify a module to register and lookup node names in. + The default module is erl_epmd. + + + OTP-13630 Application(s): erts + + erlang:halt now truncates strings longer than 200 + characters instead of failing with badarg. + + + Full runtime dependencies of erts-8.0: kernel-5.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- et-1.6 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The et-1.6 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13545 Application(s): et + + Update selector to utilize new garbage collection trace + tags. + + + Full runtime dependencies of et-1.6: erts-8.0, kernel-3.0, + runtime_tools-1.10, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- eunit-2.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13612 Application(s): eunit + + There is a new debugVal/2 that gives control over the + truncation depth. + + + Full runtime dependencies of eunit-2.3: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- gs-1.6.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The gs-1.6.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of gs-1.6.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- hipe-3.15.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The hipe-3.15.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13407 Application(s): hipe + Related Id(s): PR-984 + + HiPE compiler crashed, during compilation, in some + cases that involved inlining of float operations on + complicated control flow graphs. + + + OTP-13626 Application(s): hipe + + Various fixes and improvements to the HiPE LLVM + backend. + + -- Add support for LLVM 3.7 and 3.8 in the HiPE/LLVM + x86_64 backend + + -- Reinstate support for the LLVM backend on x86 (works + OK for LLVM 3.5 to 3.7 -- LLVM 3.8 has a bug that + prevents it from generating correct native code on x86) + + + --- Improvements and New Features --- + + OTP-13625 Application(s): hipe + Related Id(s): PR-1069 + + Elimination of maps:is_key/2 calls to HiPE + + + Full runtime dependencies of hipe-3.15.1: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- ic-4.4.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ic-4.4.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of ic-4.4.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- inets-6.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13383 Application(s): inets + Related Id(s): PR-972 + + Add handling of DELETE Body to http client. + + + OTP-13445 Application(s): inets + Related Id(s): PR-988 + + Removed references to mod_include and webtool from + examples and tests. + + Thanks to waisbrot + + + OTP-13561 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + Remove module inets_regexp. Module re should be used + instead. + + + Full runtime dependencies of inets-6.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- jinterface-1.7 -------------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + --------------------------------------------------------------------- + --- kernel-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-5.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12593 Application(s): erts, kernel + + The handling of on_load functions has been improved. + The major improvement is that if a code upgrade fails + because the on_load function fails, the previous + version of the module will now be retained. + + + OTP-13409 Application(s): kernel + + rpc:call() and rpc:block_call() would sometimes cause + an exception (which was not mentioned in the + documentation). This has been corrected so that + {badrpc,Reason} will be returned instead. + + + OTP-13410 Application(s): kernel + + On Windows, for modules that were loaded early (such as + the lists module), code:which/1 would return the path + with mixed slashes and backslashes, for example: + "C:\\Program + Files\\erl8.0/lib/stdlib-2.7/ebin/lists.beam". This has + been corrected. + + + OTP-13411 Application(s): erts, kernel + + Use fsync instead of fdatasync on Mac OSX. + + + OTP-13444 Application(s): kernel + + The default chunk size for the fallback sendfile + implementation, used on platforms that do not have a + native sendfile, has been decreased in order to reduce + connectivity issues. + + + OTP-13461 Application(s): kernel + + Huges writes (2Gb or more) could fail on some Unix + platforms (for example, OS X and FreeBSD). + + + OTP-13470 Application(s): kernel + Related Id(s): #969, Pull + + A bug has been fixed where the DNS resolver inet_res + did not refresh its view of the contents of for example + resolv.conf immediately after start and hence then + failed name resolution. Reported and fix suggested by + Michal Ptaszek in GitHUB pull req #949. + + + OTP-13516 Application(s): kernel + Related Id(s): PR-1008 + + Fix process leak from global_group. Thanks to Xuming + who reported and fixed this! + + + OTP-13622 Application(s): kernel + Related Id(s): PR-1065 + + *** POTENTIAL INCOMPATIBILITY *** + + The function inet:gethostbyname/1 now honors the + resolver option inet6 instead of always looking up IPv4 + addresses. + + + OTP-13631 Application(s): kernel + Related Id(s): PR-911 + + The Status argument to init:stop/1 is now sanity + checked to make sure erlang:halt does not fail. + + + --- Improvements and New Features --- + + OTP-12908 Application(s): erts, kernel + + Added os:perf_counter/1. + + The perf_counter is a very very cheap and high + resolution timer that can be used to timestamp system + events. It does not have monoticity guarantees, but + should on most OS's expose a monotonous time. + + + OTP-13089 Application(s): kernel + + The os:cmd call has been optimized on unix platforms to + be more performant as the number of schedulers + increase. + + + OTP-13111 Application(s): erts, kernel + + New functions that can load multiple functions at once + have been added to the 'code' module. The functions are + code:atomic_load/1, code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1. + + + OTP-13191 Application(s): kernel + + The code path cache feature turned out not to be very + useful in practice and has been removed. If an attempt + is made to enable the code path cache, there will be a + warning report informing the user that the feature has + been removed. + + + OTP-13294 Application(s): kernel + + When an attempt is made to start a distributed Erlang + node with the same name as an existing node, the error + message will be much shorter and easier to read than + before. Example: + + Protocol 'inet_tcp': the name somename@somehost seems + to be in use by another Erlang node + + + OTP-13325 Application(s): kernel + + The output of the default error logger is somewhat + prettier and easier to read. The default error logger + is used during startup of the OTP system. If the + start-up fails, the output will be easier to read. + + + OTP-13449 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The functions rpc:safe_multi_server_call/2,3 that were + deprecated in R12B have been removed. + + + OTP-13458 Application(s): kernel + + Update the error reasons in dist_util, and show them in + the logs if net_kernel:verbose(1) has been called. + + + OTP-13572 Application(s): erts, kernel + Related Id(s): PR-612 + + *** HIGHLIGHT *** + + Experimental support for Unix Domain Sockets has been + implemented. Read the sources if you want to try it + out. Example: gen_udp:open(0, + [{ifaddr,{local,"/tmp/socket"}}]). Documentation will + be written after user feedback on the experimental API. + + + Full runtime dependencies of kernel-5.0: erts-8.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- megaco-3.18.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.18.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of megaco-3.18.1: 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.14 ----------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.14 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13058 Application(s): mnesia + + *** HIGHLIGHT *** + + Added experimental external backend plugin api. This + adds the possibility for the user to write other + storage backends for data, for example by using shared + memory or ram-cached disk storage. + + The plugin api may change in future versions after + being battle tested. + + + Full runtime dependencies of mnesia-4.14: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- observer-2.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13500 Application(s): observer, runtime_tools + + Update dbg and ttb to work with a tracer module as + tracer and tracing on ports. + + + OTP-13555 Application(s): observer + + Added possibility to change update frequency and length + of the graph windows. + + + OTP-13556 Application(s): observer + + Improved background coloring to work with dark themes + and other visual improvements. + + + Full runtime dependencies of observer-2.2: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.11.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.11.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13559 Application(s): odbc + + Configure enhancment for better handling program paths + used in the build process + + + Full runtime dependencies of odbc-2.11.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- orber-3.8.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The orber-3.8.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of orber-3.8.2: erts-7.0, inets-5.10, + kernel-3.0, mnesia-4.12, ssl-5.3.4, stdlib-2.5 + + + --------------------------------------------------------------------- + --- os_mon-2.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.4.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13526 Application(s): os_mon + Related Id(s): PR-1029 + + Fix type specification for cpu_sup:util/1 + + + OTP-13548 Application(s): os_mon + Related Id(s): PR-1046 + + Fix strict compilation on SUN/SPARC + + + OTP-13601 Application(s): os_mon + Related Id(s): PR-1039 + + Fix memsup:get_os_wordsize() on 64-bit FreeBSD and + 64-bit Linux PPC + + + Full runtime dependencies of os_mon-2.4.1: erts-6.0, kernel-3.0, + mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- otp_mibs-1.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The otp_mibs-1.1.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of otp_mibs-1.1.1: erts-6.0, kernel-3.0, + mnesia-4.12, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.1.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of parsetools-2.1.2: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- percept-0.8.12 -------------------------------------------------- + --------------------------------------------------------------------- + + The percept-0.8.12 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13422 Application(s): percept + + Remove deprecated erlang:now/0 calls + + + Full runtime dependencies of percept-0.8.12: erts-6.0, inets-5.10, + kernel-3.0, runtime_tools-1.8.14, stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13408 Application(s): public_key + + Handle PEM encoded EC public keys + + + Full runtime dependencies of public_key-1.2: asn1-3.0, crypto-3.3, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- reltool-0.7.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The reltool-0.7.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13033 Application(s): reltool + Related Id(s): OTP-12719 + + Modify the code as motivated by a change of the Erlang + Parser (undefined is no longer automatically inserted + to the type of record fields without an initializer). + + + Full runtime dependencies of reltool-0.7.1: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-2.0, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.10 ---------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.10 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13576 Application(s): runtime_tools + Related Id(s): ERL-119 + + Fix bug in dbg:trace_port/2 that could cause the trace + ip driver to produce faulty error reports + "...(re)selected before stop_select was called for + driver trace_ip_drv". + + + --- Improvements and New Features --- + + OTP-12345 Application(s): erts, runtime_tools + + *** HIGHLIGHT *** + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-13481 Application(s): observer, runtime_tools + + Update observer GUI to support tracing on ports, and to + set matchspecs for send/receive. This required some + minor bugfixes in runtime_tools/dbg. + + + OTP-13500 Application(s): observer, runtime_tools + + Update dbg and ttb to work with a tracer module as + tracer and tracing on ports. + + + OTP-13502 Application(s): runtime_tools + + Updated dbg to accept the new trace options + monotonic_timestamp and strict_monotonic_timestamp. + + + OTP-13532 Application(s): erts, runtime_tools + + *** POTENTIAL INCOMPATIBILITY *** + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + Full runtime dependencies of runtime_tools-1.10: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + The sasl-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13184 Application(s): sasl + + *** POTENTIAL INCOMPATIBILITY *** + + The module 'overload' is removed. + + + Full runtime dependencies of sasl-3.0: erts-8.0, kernel-5.0, + stdlib-3.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.2.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.2.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of snmp-5.2.3: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.3 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13131 Application(s): ssh + + Some time optimization mainly in message encoding. + + + OTP-13175 Application(s): ssh + + Optimized the sftp client time by setting new packet + and window sizes. + + + OTP-13267 Application(s): ssh + + The ssh_connection_handler module in SSH is changed and + now uses the new behaviour gen_statem. + + The module can be used as an example of a gen_statem + callback module but with a warning: This commit of ssh + is just a straightforward port from gen_fsm to + gen_statem with some code cleaning. Since the state + machine and the state callbacks are almost unchanged + the ssh module does not demonstrate the full potential + of the new behaviour. + + The "new" state machine uses compund states. The ssh + server and client state machines are quite similar but + differences exist. With gen_fsm there were flags in the + user data which in fact implemented "substates". Now + with gen_statem those are made explicit in the state + names, eg the state userauth and the binary role-flag + becomes the two state names {userauth, server} and + {userauth, client}. + + + OTP-13347 Application(s): ssh + Related Id(s): ERL-86 + + The {error, Reason} tuples returned from ssh_sftp api + functions are described. + + + OTP-13527 Application(s): ssh + + It is now possible to call ssh:daemon/{1,2,3} with + Port=0. This makes the daemon select a free listening + tcp port before opening it. To find this port number + after the call, use the new function ssh:daemon_info/1. + See the reference manual for details. + + + Full runtime dependencies of ssh-4.3: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.0 + + + --------------------------------------------------------------------- + --- ssl-8.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-8.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13635 Application(s): ssl + + Timeouts may have the value 0, gauards have been + corrected to allow this + + + --- Improvements and New Features --- + + OTP-13195 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Remove default support for DES cipher suites + + + OTP-13214 Application(s): crypto, ssl + + Deprecate the function crypto:rand_bytes and make sure + that crypto:strong_rand_bytes is used in all places + that are cryptographically significant. + + + OTP-13255 Application(s): ssl + + Better error handling of user error during TLS upgrade. + ERL-69 is solved by gen_statem rewrite of ssl + application. + + + OTP-13256 Application(s): ssl + + Provide user friendly error message when crypto rejects + a key + + + OTP-13429 Application(s): ssl + Related Id(s): Pull#956 + + TLS distribution connections now allow specifying the + options verify_fun, crl_check and crl_cache. See the + documentation. GitHub pull req #956 contributed by + Magnus Henoch. + + + OTP-13431 Application(s): ssl + + Remove confusing error message when closing a + distributed erlang node running over TLS + + + OTP-13464 Application(s): ssl + + *** HIGHLIGHT *** + + ssl now uses gen_statem instead of gen_fsm to implement + the ssl connection process, this solves some timing + issues in addtion to making the code more intuitive as + the behaviour can be used cleanly instead of having a + lot of workaround for shortcomings of the behaviour. + + + OTP-13546 Application(s): ssl + + Correct ssl:prf/5 to use the negotiated cipher suites + prf function in ssl:prf/5 instead of the default prf. + + + OTP-13629 Application(s): ssl + + Some legacy TLS 1.0 software does not tolerate the + 1/n-1 content split BEAST mitigation technique. Add a + beast_mitigation SSL option (defaulting to + one_n_minus_one) to select or disable the BEAST + mitigation technique. + + + OTP-13632 Application(s): ssl + + *** HIGHLIGHT *** + + Enhance error log messages to facilitate for users to + understand the error + + + OTP-13636 Application(s): ssl + + Incresed default DH params to 2048-bit + + + Full runtime dependencies of ssl-8.0: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- stdlib-3.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + The stdlib-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13260 Application(s): stdlib + Related Id(s): seq13002 + + Fix a race bug affecting dets:open_file/2. + + + OTP-13459 Application(s): erts, stdlib + + Don't search for non-existing Map keys twice + + For maps:get/2,3 and maps:find/2, searching for an + immediate key, e.g. an atom, in a small map, the search + was performed twice if the key did not exist. + + + OTP-13531 Application(s): stdlib + + Avoid stray corner-case math errors on Solaris, e.g. an + error is thrown on undeflows in exp() and pow() when it + shouldn't be. + + + OTP-13534 Application(s): stdlib + Related Id(s): ERL-135 + + Fix linting of map key variables + + Map keys cannot be unbound and then used in parallel + matching. + + Example: #{ K := V } = #{ k := K } = M. This is illegal + if 'K' is not bound. + + + OTP-13602 Application(s): stdlib + + Fixed a bug in re on openbsd where sometimes re:run + would return an incorrect result. + + + OTP-13618 Application(s): stdlib + Related Id(s): PR-1001 + + To avoid potential timer bottleneck on supervisor + restart, timer server is no longer used when the + supervisor is unable to restart a child. + + + --- Improvements and New Features --- + + OTP-10292 Application(s): stdlib + + The types of The Abstract Format in the erl_parse + module have been refined. + + + OTP-11879 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Undocumented syntax for function specifications, -spec + F/A :: Domain -> Range, has been removed (without + deprecation). + + Using the is_subtype(V, T) syntax for constraints (in + function specifications) is no longer documented, and + the newer syntax V :: T should be used instead. The + Erlang Parser still recognizes the is_subtype syntax, + and will continue to do so for some time. + + + OTP-12502 Application(s): stdlib + Related Id(s): OTP-12501 + + The 'random' module has been deprecated. Use the 'rand' + module instead. + + + OTP-12719 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Background: In record fields with a type declaration + but without an initializer, the Erlang parser inserted + automatically the singleton type 'undefined' to the + list of declared types, if that value was not present + there. That is, the record declaration: + + -record(rec, {f1 :: float(), f2 = 42 :: integer(), f3 + :: some_mod:some_typ()}). + + was translated by the parser to: + + -record(rec, {f1 :: float() | 'undefined', f2 = 42 :: + integer(), f3 :: some_mod:some_typ() | 'undefined'}). + + The rationale for this was that creation of a "dummy" + #rec{} record should not result in a warning from + dialyzer that, for example, the implicit initialization + of the #rec.f1 field violates its type declaration. + + Problems: This seemingly innocent action has some + unforeseen consequences. + + For starters, there is no way for programmers to + declare that e.g. only floats make sense for the f1 + field of #rec{} records when there is no "obvious" + default initializer for this field. (This also affects + tools like PropEr that use these declarations produced + by the Erlang parser to generate random instances of + records for testing purposes.) + + It also means that dialyzer does not warn if e.g. an + is_atom/1 test or something more exotic like an + atom_to_list/1 call is performed on the value of the f1 + field. + + Similarly, there is no way to extend dialyzer to warn + if it finds record constructions where f1 is not + initialized to some float. + + Last but not least, it is semantically problematic when + the type of the field is an opaque type: creating a + union of an opaque and a structured type is very + problematic for analysis because it fundamentally + breaks the opacity of the term at that point. + + Change: To solve these problems the parser will not + automatically insert the 'undefined' value anymore; + instead the user has the option to choose the places + where this value makes sense (for the field) and where + it does not and insert the | 'undefined' there + manually. + + Consequences of this change: This change means that + dialyzer will issue a warning for all places where + records with uninitialized fields are created and those + fields have a declared type that is incompatible with + 'undefined' (e.g. float()). This warning can be + suppressed easily by adding | 'undefined' to the type + of this field. This also adds documentation that the + user really intends to create records where this field + is uninitialized. + + + OTP-12861 Application(s): stdlib + + Remove deprecated functions in the modules erl_scan and + erl_parse. + + + OTP-13059 Application(s): compiler, stdlib + + *** HIGHLIGHT *** + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13065 Application(s): stdlib + Related Id(s): PR-960 + + *** HIGHLIGHT *** + + A new behaviour gen_statem has been implemented. It has + been thoroughly reviewed, is stable enough to be used + by at least two heavy OTP applications, and is here to + stay. But depending on user feedback, we do not expect + but might find it necessary to make minor not backwards + compatible changes into OTP-20.0, so its state can be + designated as "not quite experimental"... + + The gen_statem behaviour is intended to replace gen_fsm + for new code. It has the same features and add some + really useful: + + -- State code is gathered + + -- The state can be any term + + -- Events can be postponed + + -- Events can be self generated + + -- A reply can be sent from a later state + + -- There can be multiple sys traceable replies + + The callback model(s) for gen_statem differs from the + one for gen_fsm, but it is still fairly easy to rewrite + from gen_fsm to gen_statem. + + + OTP-13082 Application(s): stdlib + + Optimize binary:split/2 and binary:split/3 with native + BIF implementation. + + + OTP-13148 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Background: The types of record fields have since R12B + been put in a separate form by epp:parse_file(), + leaving the record declaration form untyped. The + separate form, however, does not follow the syntax of + type declarations, and parse transforms inspecting + -type() attributes need to know about the special + syntax. Since the compiler stores the return value of + epp:parse_file() as debug information in the abstract + code chunk ("Abst" or abstract_code), tools too need to + know about the special syntax, if they inspect -type() + attributes in abstract code. + + Change: No separate type form is created by + epp:parse_file(), but the type information is kept in + the record fields. This means that all parse transforms + and all tools inspecting -record() declarations need to + recognize {typed_record_field, Field, Type}. + + + OTP-13152 Application(s): stdlib + + Unsized fields of the type bytes in binary generators + are now forbidden. (The other ways of writing unsized + fields, such as binary, are already forbidden.) + + + OTP-13153 Application(s): stdlib + + The type map() is built-in, and cannot be redefined. + + + OTP-13229 Application(s): stdlib + Related Id(s): ERL-55 + + Let dets:open_file() exit with a badarg message if + given a raw file name (a binary). + + + OTP-13392 Application(s): stdlib + + Add filename:basedir/2,3 + + basedir returns suitable path(s) for 'user_cache', + 'user_config', 'user_data', 'user_log', 'site_config' + and 'site_data'. On linux and linux like systems the + paths will respect the XDG environment variables. + + + OTP-13476 Application(s): stdlib + + There are new preprocessor directives -error(Term) and + -warning(Term) to cause a compilation error or a + compilation warning, respectively. + + + OTP-13487 Application(s): erts, stdlib + + Optimize '++' operator and lists:append/2 by using a + single pass to build a new list while checking for + properness. + + + OTP-13522 Application(s): erts, stdlib + Related Id(s): PR-1025 + + Add maps:update_with/3,4 and maps:take/2 + + + OTP-13523 Application(s): stdlib + + lists:join/2 has been added. Similar to string:join/2 + but works with arbitrary lists. + + + OTP-13524 Application(s): stdlib + Related Id(s): PR-1002 + + Obfuscate asserts to make Dialyzer shut up. + + + OTP-13623 Application(s): stdlib + + Relax translation of initial calls in proc_lib, i.e. + remove the restriction to only do the translation for + gen_server and gen_fsm. This enables user defined gen + based generic callback modules to be displayed nicely + in c:i() and observer. + + + OTP-13642 Application(s): stdlib + + Lower ETS hash load factor to improve lookup + performance at the cost of less than one word per + object. + + + Full runtime dependencies of stdlib-3.0: compiler-5.0, crypto-3.3, + erts-8.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.0 ------------------------------------------------ + --------------------------------------------------------------------- + + The syntax_tools-2.0 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-12863 Application(s): syntax_tools + + *** POTENTIAL INCOMPATIBILITY *** + + The abstract data type in erl_syntax is augmented with + types and function specifications. + + The module erl_prettypr pretty prints types and + function specification, and the output can be parsed. + + The types of record fields are no longer ignored. As a + consequence erl_syntax_lib:analyze_record_field/1 + returns {Default, Type} instead of Default. The + functions analyze_record_attribute, analyze_attribute, + analyze_form, and analyze_forms in the erl_syntax_lib + module are also affected by this incompatible change. + + + Full runtime dependencies of syntax_tools-2.0: compiler-7.0, + erts-8.0, kernel-5.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- tools-2.8.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-2.8.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13499 Application(s): tools + + Update fprof to use the new 'spawned' trace event to + determine when a process has been created. + + + --- Improvements and New Features --- + + OTP-13610 Application(s): tools + + Various emacs mode improvements, such as better tags + support. + + + Full runtime dependencies of tools-2.8.4: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- typer-0.9.11 ---------------------------------------------------- + --------------------------------------------------------------------- + + The typer-0.9.11 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of typer-0.9.11: compiler-5.0, + dialyzer-2.7, erts-6.0, hipe-3.10.3, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- wx-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13491 Application(s): wx + + Fixed bugs which could cause called functions to be + invoked twice or not at all when callbacks where + invoked at the same time. + + + --- Improvements and New Features --- + + OTP-13553 Application(s): wx + + *** POTENTIAL INCOMPATIBILITY *** + + Changed atom 'boolean' fields in #wxMouseState{} to + 'boolean()'. + + Moved out arguments in wxListCtrl:hitTest to result. + + Removed no-op functions in wxGauge that have been + removed from wxWidgets-3.1. + + + Full runtime dependencies of wx-1.7: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.11 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.11 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_docgen, gs, ic, megaco, + orber, otp_mibs, parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of xmerl-1.3.11: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Aleksei Magusev, Alexey Lebedeff, Andreas Schultz, Andrew Bennett, + Byaruhanga Franklin, Constantin Rack, Daniel Sommermann, Daniil + Fedotov, Derek Brown, Diana Corbacho, Dmytro Lytovchenko, Dániel + Szoboszlay, Erik Norgren, FabioBatSilva, Jesper Louis Andersen, Joe + DeVivo, Johan Claesson, John Eckersberg, José Valim, Kenneth Lakin, + Kostis Sagonas, Loïc Hoguin, Luca Favatella, Lukas Larsson, Magnus + Henoch, Magnus Lång, Michael Klishin, Michael Santos, Michal Ptaszek, + Mikael Pettersson, Milton Inostroza, Nathaniel Waisbrot, Nikolaos S. + Papaspyrou, Péter Gömöri, Richard Carlsson, Rico Antonio Felix, Sean + Charles, Serge Aleynikov, Simon Cornish, Stavros Aronis, Stefan + Strigler, Steve Vinoski, Stuart Thackray, Ulf Wiger, Vlad Dumitrescu, + Yiannis Tsiouris, Yuki Ito, def_null, eksperimental, jrobhoward, + tmanevik, xsipewe, xuming + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0.1.README.txt b/release-notes/OTP-19.0.1.README.txt new file mode 100644 index 0000000..cefb766 --- /dev/null +++ b/release-notes/OTP-19.0.1.README.txt @@ -0,0 +1,157 @@ +Patch Package: OTP 19.0.1 +Git Tag: OTP-19.0.1 +Date: 2016-06-30 +Trouble Report Id: OTP-13674, OTP-13702, OTP-13708, OTP-13709, + OTP-13712, OTP-13715, OTP-13716 +Seq num: seq13143 +System: OTP +Release: 19 +Application: dialyzer-3.0.1, erts-8.0.1, inets-6.3.1, + observer-2.2.1, ssh-4.3.1, tools-2.8.5 +Predecessor: OTP 19.0 + + Check out the git tag OTP-19.0.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. + + --------------------------------------------------------------------- + --- dialyzer-3.0.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-3.0.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13709 Application(s): dialyzer + Related Id(s): ERL-177, PR-1115 + + Fix a map related bug. + + + Full runtime dependencies of dialyzer-3.0.1: compiler-7.0, erts-8.0, + hipe-3.15.1, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- erts-8.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-8.0.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13716 Application(s): erts + + A memory allocation bug in group_leader/2 could cause + an emulator crash when garbage collecting a process + that had been assigned a remote group leader. This bug + was introduced in ERTS version 8.0. + + + Full runtime dependencies of erts-8.0.1: kernel-5.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- inets-6.3.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13712 Application(s): inets + Related Id(s): seq13143 + + A debug message was accidently left enabled in the ftp + client. + + + Full runtime dependencies of inets-6.3.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- observer-2.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.2.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13702 Application(s): observer + Related Id(s): ERL-171 + + Fixed a crash happening when observing another node, + who have a different number of schedulers than the + current one. + + + Full runtime dependencies of observer-2.2.1: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- ssh-4.3.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.3.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13674 Application(s): ssh + Related Id(s): TR-HU92273 + + SSH client does not any longer retry a bad password + given as option to ssh:connect et al. + + + OTP-13715 Application(s): ssh + + Removed possible hanging risk for a certain timing + sequence when communicating client and server executes + on the same node. + + + Full runtime dependencies of ssh-4.3.1: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.0 + + + --------------------------------------------------------------------- + --- tools-2.8.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-2.8.5 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13708 Application(s): tools + Related Id(s): ERL-173 + + Correct a bug when adding multiple modules to an Xref + server. The bug was introduced in OTP-19.0. + + + Full runtime dependencies of tools-2.8.5: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Magnus Lång + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0.2.README.txt b/release-notes/OTP-19.0.2.README.txt new file mode 100644 index 0000000..3d13e03 --- /dev/null +++ b/release-notes/OTP-19.0.2.README.txt @@ -0,0 +1,89 @@ +Patch Package: OTP 19.0.2 +Git Tag: OTP-19.0.2 +Date: 2016-07-15 +Trouble Report Id: OTP-13719, OTP-13731, OTP-13732, OTP-13738 +Seq num: seq13142 +System: OTP +Release: 19 +Application: compiler-7.0.1, erts-8.0.2, stdlib-3.0.1 +Predecessor: OTP 19.0.1 + + Check out the git tag OTP-19.0.2, 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. + + --------------------------------------------------------------------- + --- compiler-7.0.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.0.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13738 Application(s): compiler + + A literal binary matching regression was introduced in + 19.0 where a match could fail to resolve to the right + clause. This has now been fixed. + + + Full runtime dependencies of compiler-7.0.1: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- erts-8.0.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-8.0.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13731 Application(s): erts + Related Id(s): ERL-188 + + Fix scheduler deadlock bug in ets:update_counter/4 when + key is not found and inserting the default object + causes the table to grow. + + + OTP-13732 Application(s): erts + Related Id(s): seq13142 + + Fix VM abort "Overrun stack and heap" in garbage + collection triggered by a bsl operation and some very + specific heap conditions. + + + Full runtime dependencies of erts-8.0.2: kernel-5.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- stdlib-3.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.0.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13719 Application(s): stdlib + Related Id(s): ERL-182 + + Correct a bug regarding typed records in the Erlang + shell. The bug was introduced in OTP-19.0. + + + Full runtime dependencies of stdlib-3.0.1: compiler-5.0, crypto-3.3, + erts-8.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0.3.README.txt b/release-notes/OTP-19.0.3.README.txt new file mode 100644 index 0000000..29b35f7 --- /dev/null +++ b/release-notes/OTP-19.0.3.README.txt @@ -0,0 +1,84 @@ +Patch Package: OTP 19.0.3 +Git Tag: OTP-19.0.3 +Date: 2016-08-09 +Trouble Report Id: OTP-13688, OTP-13741, OTP-13753 +Seq num: seq13149, seq13150 +System: OTP +Release: 19 +Application: inets-6.3.2, kernel-5.0.1, ssl-8.0.1 +Predecessor: OTP 19.0.2 + + Check out the git tag OTP-19.0.3, 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. + + --------------------------------------------------------------------- + --- inets-6.3.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13688 Application(s): inets + Related Id(s): seq13149 + + PUT and DELETE support has been added to mod_esi + + + Full runtime dependencies of inets-6.3.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- kernel-5.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-5.0.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13741 Application(s): kernel + + Fix a os:cmd bug where creating a background job using + & would cause os:cmd to hang until the background + job terminated or closed its stdout and stderr file + descriptors. This bug has existed from kernel 5.0. + + + Full runtime dependencies of kernel-5.0.1: erts-8.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- ssl-8.0.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-8.0.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13753 Application(s): ssl + Related Id(s): seq13150 + + The TLS/SSL protocol version selection for the SSL + server has been corrected to follow RFC 5246 Appendix + E.1 especially in case where the list of supported + versions has gaps. Now the server selects the highest + protocol version it supports that is not higher than + what the client supports. + + + Full runtime dependencies of ssl-8.0.1: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0.4.README.txt b/release-notes/OTP-19.0.4.README.txt new file mode 100644 index 0000000..98e1f6f --- /dev/null +++ b/release-notes/OTP-19.0.4.README.txt @@ -0,0 +1,47 @@ +Patch Package: OTP 19.0.4 +Git Tag: OTP-19.0.4 +Date: 2016-08-12 +Trouble Report Id: OTP-13798, OTP-13799 +Seq num: +System: OTP +Release: 19 +Application: erts-8.0.3 +Predecessor: OTP 19.0.3 + + Check out the git tag OTP-19.0.4, 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. + + --------------------------------------------------------------------- + --- erts-8.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-8.0.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13798 Application(s): erts + Related Id(s): OTP-11997 + + Fixed a race that could cause a lost wakeup of a + process that timed out in a receive ... after. This bug + was introduced in ERTS version 7.0. + + + OTP-13799 Application(s): erts + + Fixed segfault after writing an erl crash dump. + + + Full runtime dependencies of erts-8.0.3: kernel-5.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + +
\ No newline at end of file diff --git a/release-notes/OTP-19.0.5.README.txt b/release-notes/OTP-19.0.5.README.txt new file mode 100644 index 0000000..153025a --- /dev/null +++ b/release-notes/OTP-19.0.5.README.txt @@ -0,0 +1,41 @@ +Patch Package: OTP 19.0.5 +Git Tag: OTP-19.0.5 +Date: 2016-08-17 +Trouble Report Id: OTP-13813 +Seq num: +System: OTP +Release: 19 +Application: kernel-5.0.2 +Predecessor: OTP 19.0.4 + + Check out the git tag OTP-19.0.5, 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. + + --------------------------------------------------------------------- + --- kernel-5.0.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-5.0.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13813 Application(s): kernel + + When calling os:cmd from a process that has set + trap_exit to true an 'EXIT' message would be left in + the message queue. This bug was introduced in kernel + vsn 5.0.1. + + + Full runtime dependencies of kernel-5.0.2: erts-8.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0.6.README.txt b/release-notes/OTP-19.0.6.README.txt new file mode 100644 index 0000000..1e65ed6 --- /dev/null +++ b/release-notes/OTP-19.0.6.README.txt @@ -0,0 +1,41 @@ +Patch Package: OTP 19.0.6 +Git Tag: OTP-19.0.6 +Date: 2016-09-14 +Trouble Report Id: OTP-13889 +Seq num: +System: OTP +Release: 19 +Application: erts-8.0.4 +Predecessor: OTP 19.0.5 + + Check out the git tag OTP-19.0.6, 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. + + --------------------------------------------------------------------- + --- erts-8.0.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-8.0.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13889 Application(s): erts + + Fixed a VM crash that occured in garbage collection of + a process when it had received maps over the + distribution. This bug was introduced in ERTS version + 8.0 (OTP 19.0). + + + Full runtime dependencies of erts-8.0.4: kernel-5.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0.7.README.txt b/release-notes/OTP-19.0.7.README.txt new file mode 100644 index 0000000..8ee206b --- /dev/null +++ b/release-notes/OTP-19.0.7.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 19.0.7 +Git Tag: OTP-19.0.7 +Date: 2016-09-14 +Trouble Report Id: OTP-13890 +Seq num: +System: OTP +Release: 19 +Application: erts-8.0.5 +Predecessor: OTP 19.0.6 + + Check out the git tag OTP-19.0.7, 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. + + --------------------------------------------------------------------- + --- erts-8.0.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-8.0.5 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13890 Application(s): erts + + Fixed a VM crash that occured in a garbage collection + of a process when it had received binaries. This bug + was introduced in ERTS version 8.0 (OTP 19.0). + + + Full runtime dependencies of erts-8.0.5: kernel-5.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.0.README.txt b/release-notes/OTP-19.0.README.txt new file mode 100644 index 0000000..5053de1 --- /dev/null +++ b/release-notes/OTP-19.0.README.txt @@ -0,0 +1,3134 @@ +Patch Package: OTP 19.0 +Git Tag: OTP-19.0 +Date: 2016-06-21 +Trouble Report Id: OTP-10267, OTP-10282, OTP-10292, OTP-10349, + OTP-11384, OTP-11879, OTP-12217, OTP-12345, + OTP-12441, OTP-12502, OTP-12573, OTP-12590, + OTP-12593, OTP-12719, OTP-12837, OTP-12860, + OTP-12861, OTP-12863, OTP-12883, OTP-12908, + OTP-12951, OTP-12979, OTP-13033, OTP-13034, + OTP-13047, OTP-13058, OTP-13059, OTP-13065, + OTP-13082, OTP-13086, OTP-13087, OTP-13088, + OTP-13089, OTP-13096, OTP-13097, OTP-13111, + OTP-13112, OTP-13122, OTP-13123, OTP-13131, + OTP-13148, OTP-13152, OTP-13153, OTP-13167, + OTP-13174, OTP-13175, OTP-13184, OTP-13191, + OTP-13195, OTP-13206, OTP-13207, OTP-13214, + OTP-13227, OTP-13229, OTP-13244, OTP-13255, + OTP-13256, OTP-13260, OTP-13265, OTP-13267, + OTP-13280, OTP-13288, OTP-13289, OTP-13293, + OTP-13294, OTP-13325, OTP-13341, OTP-13347, + OTP-13359, OTP-13366, OTP-13374, OTP-13375, + OTP-13383, OTP-13392, OTP-13401, OTP-13407, + OTP-13408, OTP-13409, OTP-13410, OTP-13411, + OTP-13415, OTP-13419, OTP-13422, OTP-13425, + OTP-13429, OTP-13430, OTP-13431, OTP-13440, + OTP-13442, OTP-13444, OTP-13445, OTP-13449, + OTP-13452, OTP-13458, OTP-13459, OTP-13461, + OTP-13463, OTP-13464, OTP-13465, OTP-13470, + OTP-13474, OTP-13475, OTP-13476, OTP-13479, + OTP-13481, OTP-13482, OTP-13483, OTP-13485, + OTP-13487, OTP-13488, OTP-13489, OTP-13491, + OTP-13493, OTP-13494, OTP-13495, OTP-13496, + OTP-13497, OTP-13499, OTP-13500, OTP-13501, + OTP-13502, OTP-13503, OTP-13504, OTP-13507, + OTP-13508, OTP-13512, OTP-13516, OTP-13517, + OTP-13520, OTP-13522, OTP-13523, OTP-13524, + OTP-13526, OTP-13527, OTP-13530, OTP-13531, + OTP-13532, OTP-13534, OTP-13540, OTP-13541, + OTP-13542, OTP-13544, OTP-13545, OTP-13547, + OTP-13548, OTP-13551, OTP-13552, OTP-13553, + OTP-13554, OTP-13555, OTP-13556, OTP-13558, + OTP-13559, OTP-13560, OTP-13561, OTP-13562, + OTP-13566, OTP-13572, OTP-13576, OTP-13580, + OTP-13590, OTP-13593, OTP-13597, OTP-13598, + OTP-13599, OTP-13600, OTP-13601, OTP-13602, + OTP-13606, OTP-13610, OTP-13611, OTP-13612, + OTP-13615, OTP-13618, OTP-13619, OTP-13622, + OTP-13623, OTP-13625, OTP-13626, OTP-13627, + OTP-13628, OTP-13629, OTP-13630, OTP-13631, + OTP-13632, OTP-13634, OTP-13636, OTP-13638, + OTP-13639, OTP-13644, OTP-13647, OTP-13650, + OTP-13651, OTP-13653, OTP-13654, OTP-13655, + OTP-13656, OTP-13657, OTP-13658, OTP-13662, + OTP-13666, OTP-13668, OTP-13673, OTP-13678 +Seq num: seq13002, seq13124, seq13136 +System: OTP +Release: 19 +Application: asn1-4.0.3, common_test-1.12.2, compiler-7.0, + cosEvent-2.2.1, cosEventDomain-1.2.1, + cosFileTransfer-1.2.1, cosNotification-1.2.2, + cosProperty-1.2.1, cosTime-1.2.2, + cosTransactions-1.3.2, crypto-3.7, + debugger-4.2, dialyzer-3.0, diameter-1.12, + edoc-0.7.19, eldap-1.2.2, erl_docgen-0.5, + erl_interface-3.9, erts-8.0, et-1.6, + eunit-2.3, gs-1.6.1, hipe-3.15.1, ic-4.4.1, + inets-6.3, jinterface-1.7, kernel-5.0, + megaco-3.18.1, mnesia-4.14, observer-2.2, + odbc-2.11.2, orber-3.8.2, os_mon-2.4.1, + otp_mibs-1.1.1, parsetools-2.1.2, + percept-0.9, public_key-1.2, reltool-0.7.1, + runtime_tools-1.10, sasl-3.0, snmp-5.2.3, + ssh-4.3, ssl-8.0, stdlib-3.0, + syntax_tools-2.0, tools-2.8.4, typer-0.9.11, + wx-1.7, xmerl-1.3.11 +Predecessor: OTP + + Check out the git tag OTP-19.0, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-10267 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first having to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-12345 Application(s): erts, runtime_tools + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convenience module called msacc that has + been added to runtime_tools that can assist in + gathering and interpreting the data from Microstate + accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-12590 Application(s): erts + Related Id(s): OTP-10251 + + Sharing preserved copy for messages and exit signals + + Enable sharing preserved copy with configure option + --enable-sharing-preserving. This will preserve + sharing, within the process, when communication with + other processes in the Erlang node. There is a + trade-off, the copy is more costly but this cost can be + reclaimed if there is a lot of sharing in the message. + In addition literals will not be copied in a send + except during a purge phase of the module where the + literals are located. This feature is considered + experimental in 19.0. + + + OTP-13058 Application(s): mnesia + + Added experimental external backend plugin api. This + adds the possibility for the user to write other + storage backends for data, for example by using shared + memory or ram-cached disk storage. + + The plugin api may change in future versions after + being battle tested. + + + OTP-13059 Application(s): compiler, stdlib + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13065 Application(s): stdlib + Related Id(s): PR-960 + + A new behaviour gen_statem has been implemented. It has + been thoroughly reviewed, is stable enough to be used + by at least two heavy OTP applications, and is here to + stay. But depending on user feedback, we do not expect + but might find it necessary to make minor not backwards + compatible changes into OTP-20.0, so its state can be + designated as "not quite experimental"... + + The gen_statem behaviour is intended to replace gen_fsm + for new code. It has the same features and add some + really useful: + + -- State code is gathered + + -- The state can be any term + + -- Events can be postponed + + -- Events can be self generated + + -- A reply can be sent from a later state + + -- There can be multiple sys traceable replies + + The callback model(s) for gen_statem differs from the + one for gen_fsm, but it is still fairly easy to rewrite + from gen_fsm to gen_statem. + + + OTP-13255 Application(s): ssl + + Better error handling of user error during TLS upgrade. + ERL-69 is solved by gen_statem rewrite of ssl + application. + + + OTP-13366 Application(s): erts + Related Id(s): OTP-13047 + + Introduction of configurable management of data + referred to by the message queue of a process. Each + process can be configured individually. + + It is now possible to configure the message queue of a + process, so that all data referred by it will be kept + outside of the heap, and by this prevent this data from + being part of garbage collections. + + For more information see the documentation of + process_flag(message_queue_data, MQD). + + + OTP-13408 Application(s): public_key + + Handle PEM encoded EC public keys + + + OTP-13496 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13503 Application(s): erts + + The erts internal tracing support has been changed to + have much less overhead and be more scalable. + + This rewrite does not break any backwards + incompatibilities, but it does change the ordering of + some trace messages when compared to previous releases. + It should be noted that this only applies to trace + messages sent to processes or ports, it does not apply + to the new tracer module. However in future releases + they may also be effected by this. + + Trace messages are only guaranteed to be ordered from + one traced process or port. In previous releases this + was not visible as a 'send' trace message would always + arrive before the corresponding 'receive' trace message + that is no longer always the case. This also means that + timestamped trace messages may seem to arrive out of + order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer. + + + OTP-13572 Application(s): erts, kernel + Related Id(s): PR-612 + + Experimental support for Unix Domain Sockets has been + implemented. Read the sources if you want to try it + out. Example: gen_udp:open(0, + [{ifaddr,{local,"/tmp/socket"}}]). Documentation will + be written after user feedback on the experimental API. + + + OTP-13632 Application(s): ssl + + Enhance error log messages to facilitate for users to + understand the error + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-10267 Application(s): erts + + *** HIGHLIGHT *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first having to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-11879 Application(s): stdlib + + Undocumented syntax for function specifications, -spec + F/A :: Domain -> Range, has been removed (without + deprecation). + + Using the is_subtype(V, T) syntax for constraints (in + function specifications) is no longer documented, and + the newer syntax V :: T should be used instead. The + Erlang Parser still recognizes the is_subtype syntax, + and will continue to do so for some time. + + + OTP-12719 Application(s): stdlib + + Background: In record fields with a type declaration + but without an initializer, the Erlang parser inserted + automatically the singleton type 'undefined' to the + list of declared types, if that value was not present + there. That is, the record declaration: + + -record(rec, {f1 :: float(), f2 = 42 :: integer(), f3 + :: some_mod:some_typ()}). + + was translated by the parser to: + + -record(rec, {f1 :: float() | 'undefined', f2 = 42 :: + integer(), f3 :: some_mod:some_typ() | 'undefined'}). + + The rationale for this was that creation of a "dummy" + #rec{} record should not result in a warning from + dialyzer that, for example, the implicit initialization + of the #rec.f1 field violates its type declaration. + + Problems: This seemingly innocent action has some + unforeseen consequences. + + For starters, there is no way for programmers to + declare that e.g. only floats make sense for the f1 + field of #rec{} records when there is no "obvious" + default initializer for this field. (This also affects + tools like PropEr that use these declarations produced + by the Erlang parser to generate random instances of + records for testing purposes.) + + It also means that dialyzer does not warn if e.g. an + is_atom/1 test or something more exotic like an + atom_to_list/1 call is performed on the value of the f1 + field. + + Similarly, there is no way to extend dialyzer to warn + if it finds record constructions where f1 is not + initialized to some float. + + Last but not least, it is semantically problematic when + the type of the field is an opaque type: creating a + union of an opaque and a structured type is very + problematic for analysis because it fundamentally + breaks the opacity of the term at that point. + + Change: To solve these problems the parser will not + automatically insert the 'undefined' value anymore; + instead the user has the option to choose the places + where this value makes sense (for the field) and where + it does not and insert the | 'undefined' there + manually. + + Consequences of this change: This change means that + dialyzer will issue a warning for all places where + records with uninitialized fields are created and those + fields have a declared type that is incompatible with + 'undefined' (e.g. float()). This warning can be + suppressed easily by adding | 'undefined' to the type + of this field. This also adds documentation that the + user really intends to create records where this field + is uninitialized. + + + OTP-12863 Application(s): syntax_tools + + The abstract data type in erl_syntax is augmented with + types and function specifications. + + The module erl_prettypr pretty prints types and + function specification, and the output can be parsed. + + The types of record fields are no longer ignored. As a + consequence erl_syntax_lib:analyze_record_field/1 + returns {Default, Type} instead of Default. The + functions analyze_record_attribute, analyze_attribute, + analyze_form, and analyze_forms in the erl_syntax_lib + module are also affected by this incompatible change. + + + OTP-13088 Application(s): erts + + The functionality behind erlang:open_port/2 when called + with spawn or spawn_executable has been redone so that + the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and + does not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have + shown this approach to be about 3-5 times as fast as + the old approach where the fork/vfork was done by erts. + This is a pure stability and performance fix, however + some error messages may have changed, which is why it + is marked as a backwards incompatible change. + + + OTP-13148 Application(s): stdlib + + Background: The types of record fields have since R12B + been put in a separate form by epp:parse_file(), + leaving the record declaration form untyped. The + separate form, however, does not follow the syntax of + type declarations, and parse transforms inspecting + -type() attributes need to know about the special + syntax. Since the compiler stores the return value of + epp:parse_file() as debug information in the abstract + code chunk ("Abst" or abstract_code), tools too need to + know about the special syntax, if they inspect -type() + attributes in abstract code. + + Change: No separate type form is created by + epp:parse_file(), but the type information is kept in + the record fields. This means that all parse transforms + and all tools inspecting -record() declarations need to + recognize {typed_record_field, Field, Type}. + + + OTP-13184 Application(s): sasl + + The module 'overload' is removed. + + + OTP-13195 Application(s): ssl + + Remove default support for DES cipher suites + + + OTP-13449 Application(s): kernel + + The functions rpc:safe_multi_server_call/2,3 that were + deprecated in R12B have been removed. + + + OTP-13465 Application(s): ssl + + Phase out interoperability with clients that offer + SSLv2. By default they are no longer supported, but an + option to provide interoperability is offered. + + + OTP-13496 Application(s): erts + + *** HIGHLIGHT *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13497 Application(s): erts + + When the 'procs' trace flag is enabled, a 'spawned' + trace event is now also generated by a newly created + process. The previous event 'spawn' remains, but as it + is generated by the process that did the spawn, it is + not guaranteed that it is ordered with other trace + events from the newly spawned process. So when tracking + the lifetime of a process this new event should be used + as the creation event. + + This new trace event is marked as an incompatibility + because tools that expect certain trace events when + enabling 'procs' will have to updated. + + + OTP-13504 Application(s): compiler + + The compiler will no longer put the compilation date + and time into BEAM files. That means that two BEAM + files compiled on the same computer from the same + source code and compilation options will be identical. + + Note: If you want to find out whether a BEAM file on + disk is different from the loaded code, compared the + MD5 value obtained from Mod:module_info(md5) with the + MD5 value obtained from beam_lib:md5(BeamFileForMod) + + . + + + OTP-13532 Application(s): erts, runtime_tools + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + OTP-13542 Application(s): dialyzer + Related Id(s): PR-1014 + + The type specification syntax for Maps is improved: + + -- + + The association type KeyType := ValueType denotes an + association that must be present. + + -- + + The shorthand ... stands for the association type any() + => any(). + + An incompatible change is that #{} stands for the empty + map. The type map() (a map of any size) can be written + as #{...}. + + + OTP-13553 Application(s): wx + + Changed atom 'boolean' fields in #wxMouseState{} to + 'boolean()'. + + Moved out arguments in wxListCtrl:hitTest to result. + + Removed no-op functions in wxGauge that have been + removed from wxWidgets-3.1. + + + OTP-13561 Application(s): inets + + Remove module inets_regexp. Module re should be used + instead. + + + OTP-13619 Application(s): stdlib + Related Id(s): PR-1000 + + Supervisors now explicitly add their callback module in + the return from sys:get_status/1,2. This is to simplify + custom supervisor implementations. The Misc part of the + return value from sys:get_status/1,2 for a supervisor + is now: + + [{data, [{"State", + State}]},{supervisor,[{"Callback",Module}]}] + + + OTP-13622 Application(s): kernel + Related Id(s): PR-1065 + + The function inet:gethostbyname/1 now honors the + resolver option inet6 instead of always looking up IPv4 + addresses. + + + --------------------------------------------------------------------- + --- asn1-4.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-4.0.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, gs, ic, megaco, orber, otp_mibs, + parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of asn1-4.0.3: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.12.2 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.12.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13475 Application(s): common_test + + The following modules were missing in + common_test.app.src: ct_groups, ct_property_test, + ct_release_test, ct_webtool, ct_webtool_sup, + test_server_gl. They have now been added. + + + OTP-13615 Application(s): common_test + Related Id(s): seq13124 + + Common Test printed incorrect timestamps for received + error reports. + + + Full runtime dependencies of common_test-1.12.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-2.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13430 Application(s): compiler + Related Id(s): ERL-113 + + compile:forms/1,2 would crash when used in a working + directory that had been deleted by another process. + + + OTP-13552 Application(s): compiler, dialyzer + Related Id(s): ERL-138 + + Dialyzer no longer crashes when there is an invalid + function call such as 42(7) in a module being analyzed. + The compiler will now warn for invalid function calls + such as X = 42, x(7). + + + --- Improvements and New Features --- + + OTP-12951 Application(s): compiler + + Optimization of tuple matching has been slightly + improved. + + + OTP-12979 Application(s): compiler + + Five deprecated and undocumented functions in the + module core_lib have been removed. The functions are: + get_anno/{1,2}, is_literal/1, is_literal_list/1, and + literal_value. Use the appropriate functions in the + cerl module instead. + + + OTP-13059 Application(s): compiler, stdlib + + *** HIGHLIGHT *** + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13280 Application(s): compiler + + The function mapfold/4 has been added to the cerl_trees + module. + + + OTP-13289 Application(s): compiler + + Bitstring comprehensions have been generalized to allow + arbitrary expressions in the construction part. + + + OTP-13374 Application(s): compiler + Related Id(s): ERL-44 + + The compiler will now produce warnings for binary + patterns that will never match (example: > = Bin). + + + OTP-13504 Application(s): compiler + + *** POTENTIAL INCOMPATIBILITY *** + + The compiler will no longer put the compilation date + and time into BEAM files. That means that two BEAM + files compiled on the same computer from the same + source code and compilation options will be identical. + + Note: If you want to find out whether a BEAM file on + disk is different from the loaded code, compared the + MD5 value obtained from Mod:module_info(md5) with the + MD5 value obtained from beam_lib:md5(BeamFileForMod) + + . + + + OTP-13654 Application(s): compiler + + The function compile:env_compiler_options/0 has been + added to allow tools to pick up the same default + compiler options as the compiler itself. + + + Full runtime dependencies of compiler-7.0: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-3.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + The crypto-3.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-12217 Application(s): crypto + + Refactor crypto to use the EVP interface of OpenSSL, + which is the recommended interface that also enables + access to hardware acceleration for some operations. + + + OTP-13206 Application(s): crypto + Related Id(s): PR-832 + + Add support for 192-bit keys for the aes_cbc cipher. + + + OTP-13207 Application(s): crypto + Related Id(s): PR-829 + + Add support for 192-bit keys for aes_ecb. + + + OTP-13214 Application(s): crypto, ssl + + Deprecate the function crypto:rand_bytes and make sure + that crypto:strong_rand_bytes is used in all places + that are cryptographically significant. + + + OTP-13483 Application(s): crypto + Related Id(s): PR-998 + + Enable AES-GCM encryption/decryption to change the tag + length between 1 to 16 bytes. + + + Full runtime dependencies of crypto-3.7: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- debugger-4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-4.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13375 Application(s): debugger + + When the debugger searches for source files, it will + also use the location of the source in the compilation + information part of the BEAM file. + + + Full runtime dependencies of debugger-4.2: compiler-5.0, erts-6.0, + kernel-3.0, stdlib-2.5, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13520 Application(s): dialyzer + + Fix a bug in the translation of forms to types. + + + OTP-13544 Application(s): dialyzer + Related Id(s): PR-1007 + + Correct misspelling in Dialyzer's acronym definition. + + + OTP-13552 Application(s): compiler, dialyzer + Related Id(s): ERL-138 + + Dialyzer no longer crashes when there is an invalid + function call such as 42(7) in a module being analyzed. + The compiler will now warn for invalid function calls + such as X = 42, x(7). + + + OTP-13653 Application(s): dialyzer + Related Id(s): ERL-157 + + Fix a bug that caused Dialyzer to go into an infinite + loop. + + + OTP-13655 Application(s): dialyzer + Related Id(s): PR-1092 + + Fix a bug in Dialyzer related to call-site analysis. + + + --- Improvements and New Features --- + + OTP-10349 Application(s): dialyzer + + The evaluation of SCCs in dialyzer_typesig is + optimized. + + Maps are used instead of Dicts to further optimize the + evaluation. + + + OTP-13244 Application(s): dialyzer + + Since Erlang/OTP R14A, when support for parameterized + modules was added, module() has included tuple(), but + that part is removed; the type module() is now the same + as atom(), as documented in the Reference Manual. + + + OTP-13542 Application(s): dialyzer + Related Id(s): PR-1014 + + *** POTENTIAL INCOMPATIBILITY *** + + The type specification syntax for Maps is improved: + + -- + + The association type KeyType := ValueType denotes an + association that must be present. + + -- + + The shorthand ... stands for the association type any() + => any(). + + An incompatible change is that #{} stands for the empty + map. The type map() (a map of any size) can be written + as #{...}. + + + OTP-13547 Application(s): dialyzer + + The translation of forms to types is improved. + + + Full runtime dependencies of dialyzer-3.0: compiler-7.0, erts-8.0, + hipe-3.15.1, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-1.12 --------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-1.12 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13611 Application(s): diameter + + Ensure listening socket is closed at transport removal. + + Transport removal did not immediately close a + diameter_tcp/sctp listening socket, and a subsequent + peer connection caused it to remain open. + + + --- Improvements and New Features --- + + OTP-13508 Application(s): diameter + + Add diameter:peer_info/1. + + That retrieves information in the style of + diameter:service_info/2, but for a single peer + connection. + + + Full runtime dependencies of diameter-1.12: erts-6.0, kernel-3.0, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- edoc-0.7.19 ----------------------------------------------------- + --------------------------------------------------------------------- + + The edoc-0.7.19 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13558 Application(s): edoc + + Handle typed record fields. + + + Full runtime dependencies of edoc-0.7.19: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13590 Application(s): eldap + Related Id(s): PR-1048 + + If the underlying tcp connection is closed and an LDAP + operation returned tcp_error, the client applications + tend to close the ldap handle with eldap:close. This + will cause a {nocatch, {gen_tcp_error, ...}} exception. + + Such errors are now ignored during close, because the + socket will be closed anyway. + + + --- Improvements and New Features --- + + OTP-13566 Application(s): eldap + + Modernize test suites + + + Full runtime dependencies of eldap-1.2.2: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.5 -------------------------------------------------- + --------------------------------------------------------------------- + + The erl_docgen-0.5 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13600 Application(s): erl_docgen + Related Id(s): ERL-141, Jira: + + Generate HTML anchors for data types without name + attribute. + + + OTP-13638 Application(s): erl_docgen, otp + + Updated make rules so it's possible to use the xmllint + target for checking the system documentation. + Removed usage of non defined DTD tag (output) from the + system documentation and corrected a number of xml + faults. + + Added support for quote tag and a new level of header + formatting in erl_docgen. + + A fault when generating html for manual set markers for + section headings is corrected so now is the title + visible after hyperlink jump. + + + OTP-13639 Application(s): erl_docgen + + Corrected the space handling for the seealso tag. + + + --- Improvements and New Features --- + + OTP-13668 Application(s): erl_docgen + Related Id(s): PR-543 + + Sort the modules function index alphabetically. + + + Full runtime dependencies of erl_docgen-0.5: edoc-0.7.13, erts-6.0, + stdlib-2.5, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.9 ----------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.9 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13666 Application(s): erl_interface + Related Id(s): ERL-158 + + Fix decoding of LLONG_MIN in erl_decode + + + OTP-13673 Application(s): erl_interface + + On windows ei_decode_ulong and ei_decode_long now + correctly returns an error when trying to decode a + number that does not fit in a long. Fixed a bug on + windows where enabling ei tracing would cause a + segmentation fault. + + + --- Improvements and New Features --- + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + --------------------------------------------------------------------- + --- erts-8.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-8.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12593 Application(s): erts, kernel + + The handling of on_load functions has been improved. + The major improvement is that if a code upgrade fails + because the on_load function fails, the previous + version of the module will now be retained. + + + OTP-13034 Application(s): erts + + is_builtin(erlang, apply, 3) will now return true. + + + OTP-13288 Application(s): erts + Related Id(s): PR913 + + Fix enif_get_list_length to return false if list is + improper or have length larger than UINT_MAX (did + return true and an incorrect length value). + + + OTP-13341 Application(s): erts + Related Id(s): PR951 + + Cleanup hipe signal handling code for x86 and make it + more portable. + + + OTP-13411 Application(s): erts, kernel + + Make file:datasync use fsync instead of fdatasync on + Mac OSX. + + + OTP-13419 Application(s): erts + + Make sure to create a crash dump when running out of + memory. This was accidentally removed in the erts-7.3 + release. + + + OTP-13425 Application(s): erts + + A bug has been fixed where if erlang was started +B on + a unix platform it would be killed by a SIGUSR2 signal + when creating a crash dump. + + + OTP-13452 Application(s): erts + + Fix race between process_flag(trap_exit,true) and a + received exit signal. + + A process could terminate due to exit signal even + though process_flag(trap_exit,true) had returned. A + very specific timing between call to process_flag/2 and + exit signal from another scheduler was required for + this to happen. + + + OTP-13459 Application(s): erts, stdlib + + Don't search for non-existing Map keys twice + + For maps:get/2,3 and maps:find/2, searching for an + immediate key, e.g. an atom, in a small map, the search + was performed twice if the key did not exist. + + + OTP-13474 Application(s): erts + + When an abnormally large distribution message is about + to be sent, the VM has been changed to create a crash + dump instead of a core dump. + + + OTP-13485 Application(s): erts + Related Id(s): ERL-123 + + Fix erlang:process_info/2 type specification + + + OTP-13489 Application(s): erts + Related Id(s): ERL-127 + + Fix bug in open_port/2 with option {args, List}. A vm + crash could be caused by an improper List. + + + OTP-13494 Application(s): erts + Related Id(s): ERL-126 + + Fixed a race-condition bug where the emulator could + crash when erlang:system_profile/1,2 was enabled and a + process had to be re-scheduled during termination. + + + OTP-13512 Application(s): erts + + Fixed bugs where the reduction counter was not handled + correct. + + + OTP-13517 Application(s): erts + + Fixed typo in description of the EPMD_DUMP_REQ + response. + + + OTP-13540 Application(s): erts + + Fixed a bug where a process flagged as sensitive would + sometimes record its save_calls when it shouldn't. + + + OTP-13562 Application(s): erts + + Update configure scripts to not use hard-coded path for + /bin/pwd and /bin/rm. + + + OTP-13628 Application(s): erts + + When passing a larger binary than the outputv callback + of a linked-in driver can handle in one io vector slot, + the binary is now split into multiple slots in the io + vector. This change only effects system where the max + size of an io vector slot is smaller then the word size + of the system (e.g. Windows). + + This change means that it is now possible on Windows to + send binaries that are larger than 4GB to port_command, + which is what is used for file:write, gen_tcp:send etc. + + + OTP-13657 Application(s): erts + + Workaround of Maps output in crashdumps. Currently the + atom 'undefined' is generated instead of Map data if a + Map type is encountered during crash. + + + --- Improvements and New Features --- + + OTP-10267 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow a tracer + module to be the trace event handler instead of a + process or port. The tracer module makes it possible + for trace tools to filter or manipulate trace event + data without the trace event first having to be copied + from the traced process or port. + + With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns the + tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases. + + + OTP-10282 Application(s): erts + + Introduce LTTng tracing of Erlang Runtime System + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool. + + For a list of all tracepoints, see Runtime Tools User's + Guide . + + + OTP-11384 Application(s): erts + + Make it possible to monitor/demonitor ports using the + erlang:monitor/2 API. The process and port information + functions have also been updated to include information + about monitors from processes to ports. + + + OTP-12345 Application(s): erts, runtime_tools + + *** HIGHLIGHT *** + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convenience module called msacc that has + been added to runtime_tools that can assist in + gathering and interpreting the data from Microstate + accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-12573 Application(s): erts + + The port of Erlang/OTP to the real-time operating + system OSE has been removed. + + + OTP-12590 Application(s): erts + Related Id(s): OTP-10251 + + *** HIGHLIGHT *** + + Sharing preserved copy for messages and exit signals + + Enable sharing preserved copy with configure option + --enable-sharing-preserving. This will preserve + sharing, within the process, when communication with + other processes in the Erlang node. There is a + trade-off, the copy is more costly but this cost can be + reclaimed if there is a lot of sharing in the message. + In addition literals will not be copied in a send + except during a purge phase of the module where the + literals are located. This feature is considered + experimental in 19.0. + + + OTP-12883 Application(s): erts + + Halfword BEAM has been removed. + + + OTP-12908 Application(s): erts, kernel + + Added os:perf_counter/1. + + The perf_counter is a very very cheap and high + resolution timer that can be used to timestamp system + events. It does not have monoticity guarantees, but + should on most OS's expose a monotonous time. + + + OTP-13047 Application(s): erts + + Support for a fragmented young heap generation. That + is, the young heap generation can consist of multiple + non continuous memory areas. The main reason for this + change is to avoid extra copying of messages that could + not be allocated directly on the receivers heap. + + + OTP-13086 Application(s): erts + + Erlang linked-in driver can now force the call to + open_port to block until a call to erl_drv_init_ack is + made inside the driver. This is useful when you want to + do some asynchronous initialization, for example + getting configuration from a pipe, and you want the + initial open_port call to fail if the configuration is + incomplete or wrong. See the erl_driver documentation + for more details on the API. + + + OTP-13087 Application(s): erts + + Erlang linked-in drivers can now set their own pids as + seen in erlang:port_info/1 by using the erl_drv_set_pid + function. For more details see the erl_driver + documentation. + + + OTP-13088 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The functionality behind erlang:open_port/2 when called + with spawn or spawn_executable has been redone so that + the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and + does not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have + shown this approach to be about 3-5 times as fast as + the old approach where the fork/vfork was done by erts. + This is a pure stability and performance fix, however + some error messages may have changed, which is why it + is marked as a backwards incompatible change. + + + OTP-13096 Application(s): erts + + Improved yielding strategy in the implementation of the + following native functions: + + -- erlang:binary_to_list/1 + + -- erlang:binary_to_list/3 + + -- erlang:bitstring_to_list/1 + + -- erlang:list_to_binary/1 + + -- erlang:iolist_to_binary/1 + + -- erlang:list_to_bitstring/1 + + -- binary:list_to_bin/1 + + This in order to improve performance of these + functions. + + + OTP-13097 Application(s): erts + + All garbage collections of processes now bump + reductions. Also the amount of reductions bumped when + garbage collecting has been adjusted. It now better + corresponds to the amount of work performed. This in + order to improve the real time characteristics of the + system. + + + OTP-13111 Application(s): erts, kernel + + New functions that can load multiple modules at once + have been added to the 'code' module. The functions are + code:atomic_load/1, code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1. + + + OTP-13112 Application(s): erts + + The -boot_var option for erl now only supports a single + key and single value (as documented). The option used + to allow multiple key/value pairs, but that behavior + was undocumented. + + The function erl_prim_loader:start/3 has been removed. + Its documentation has also been removed. + + The undocumented and unsupported function + erl_prim_loader:get_files/2 has been removed. + + + OTP-13122 Application(s): erts + + Low level BIF erlang:purge_module/1 is made more robust + against incorrect use. Lingering processes that still + refer the old code are now killed before the module is + purged to prevent fatal VM behavior. + + + OTP-13123 Application(s): erts + + Improved dirty scheduler implementation. For more + information see the NIF documentation. + + -- The dirty scheduler support is still *experimental*. + + -- The support for determining whether dirty NIF + support exist or not at compile time using the C + preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT has + been removed. + + -- The enif_is_on_dirty_scheduler() function has been + removed. Use enif_thread_type() instead. + + + OTP-13167 Application(s): erts + + Various optimizations done to process dictionary + access. + + + OTP-13174 Application(s): erts + + Added max_heap_size process flag. max_heap_size allows + the user to limit the maximum heap used by a process. + See erlang:process_flag for more details. + + + OTP-13227 Application(s): erts + + Allow dynamic drivers and NIF libraries to be built + with gcc option -fvisibility=hidden for faster loading + and more optimized code. + + + OTP-13265 Application(s): erts + + Add erlang:process_info(Pid, garbage_collection_info) + which returns extended garbage_collection information. + For more details see the documentation. + + + OTP-13293 Application(s): erts + + The functions erlang:list_to_integer/1 and + string:to_integer/1 have been optimized for large + inputs. + + + OTP-13359 Application(s): erts + + Improved memory allocation strategy for hipe native + code on x86_64 (amd64) architectures by reserving + enough low virtual address space needed for the + HiPE/AMD64 small code model. The default virtual + address area for hipe code is set to 512Mb, but can be + changed with emulator flag +MXscs. + + + OTP-13366 Application(s): erts + Related Id(s): OTP-13047 + + *** HIGHLIGHT *** + + Introduction of configurable management of data + referred to by the message queue of a process. Each + process can be configured individually. + + It is now possible to configure the message queue of a + process, so that all data referred by it will be kept + outside of the heap, and by this prevent this data from + being part of garbage collections. + + For more information see the documentation of + process_flag(message_queue_data, MQD). + + + OTP-13401 Application(s): erts + + Processes now yield when scanning large message queues + and not finding a matching message. This in order to + improve real time characteristics. + + + OTP-13440 Application(s): erts + + Optimized an erts internal function that is used to + traverse erlang terms. The internal function was mainly + used by term_to_binary and comparison of terms. + Benchmarks have shown up to a 10% performance increase + in those functions after the optimization. + + + OTP-13442 Application(s): erts + + Add the following NIF API functions: + + -- enif_cpu_time + + -- enif_now_time + + -- enif_make_unique_integer + + -- enif_is_process_alive + + -- enif_is_port_alive + + -- enif_term_to_binary + + -- enif_binary_to_term + + -- enif_port_command + + for details of what each function does, see the erl_nif + documentation. + + + OTP-13487 Application(s): erts, stdlib + + Optimize '++' operator and lists:append/2 by using a + single pass to build a new list while checking for + properness. + + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + OTP-13493 Application(s): erts + Related Id(s): PR-999 + + Don't send unasked for systemd notifications in epmd + + + OTP-13495 Application(s): erts + + The enif_send API has been extended to allow NULL to be + used as the message environment. When used this way, a + message environment is implicitly created and the given + term is copied into that environment before sending. + This can be an optimization if many small messages are + being sent by the nif. + + + OTP-13496 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The tracing support has been extended to allow tracing + on ports. Ports can be traced on using the 'ports', + 'send' and 'receive' trace flags. + + The first argument of erlang:trace/3 has been extended + so that 'all', 'existing' and 'new' now include both + processes and ports. New Tracee variants, + 'all_processes', 'all_ports', 'existing_processes' etc + have been added to specify only processes or ports. + + + OTP-13497 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + When the 'procs' trace flag is enabled, a 'spawned' + trace event is now also generated by a newly created + process. The previous event 'spawn' remains, but as it + is generated by the process that did the spawn, it is + not guaranteed that it is ordered with other trace + events from the newly spawned process. So when tracking + the lifetime of a process this new event should be used + as the creation event. + + This new trace event is marked as an incompatibility + because tools that expect certain trace events when + enabling 'procs' will have to updated. + + + OTP-13501 Application(s): erts + + Add the erlang:match_spec_test/3 function. The + functions allows the testing of match specifications + for both tracing and ets tables. It can be used to test + that a match specification does the expected filtering + on specific data. It also returns more verbose error + reasons for incorrectly constructed match + specifications. + + + OTP-13503 Application(s): erts + + *** HIGHLIGHT *** + + The erts internal tracing support has been changed to + have much less overhead and be more scalable. + + This rewrite does not break any backwards + incompatibilities, but it does change the ordering of + some trace messages when compared to previous releases. + It should be noted that this only applies to trace + messages sent to processes or ports, it does not apply + to the new tracer module. However in future releases + they may also be effected by this. + + Trace messages are only guaranteed to be ordered from + one traced process or port. In previous releases this + was not visible as a 'send' trace message would always + arrive before the corresponding 'receive' trace message + that is no longer always the case. This also means that + timestamped trace messages may seem to arrive out of + order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer. + + + OTP-13507 Application(s): erts + + Add possibility to filter send and receive trace with + match specifications. + + + OTP-13522 Application(s): erts, stdlib + Related Id(s): PR-1025 + + Add maps:update_with/3,4 and maps:take/2 + + + OTP-13532 Application(s): erts, runtime_tools + + *** POTENTIAL INCOMPATIBILITY *** + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + OTP-13541 Application(s): erts + Related Id(s): PR-1026 + + Print heap pointers for garbing processes during + crashdump + + + OTP-13560 Application(s): erts + + Changed and improved low level memory statistics + returned by erlang:system_info/1. The info for + erts_mmap has been moved from mseg_alloc to its own + section returned by {allocator, erts_mmap}. + + + OTP-13580 Application(s): erts + + Add enif_snprintf to the NIF API + + The function enif_snprintf is similar to snprintf call + but can handle formatting of Erlang terms via %T format + specifier. + + + OTP-13599 Application(s): erts + + The warning in the documentation for erlang:raise/3 has + been removed. It is now officially perfectly fine to + use raise/3 in production code. + + + OTP-13606 Application(s): erts + + Fix bugs caused by the VM sometimes truncating object + sizes or offsets to 32 bits on 64-bit hosts. These bugs + were mainly found when working with large unicode + strings and nifs environments. + + + OTP-13627 Application(s): erts + + Add -start_epmd command line option, this lets you + disable automatic starting of epmd when starting a + distributed node. + + Add -epmd_module command line option, this lets you + specify a module to register and look-up node names in. + The default module is erl_epmd. + + + OTP-13630 Application(s): erts + + erlang:halt now truncates strings longer than 200 + characters instead of failing with badarg. + + + OTP-13634 Application(s): erts + + Fix possible race in poller wake up on windows + + + Full runtime dependencies of erts-8.0: kernel-5.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- et-1.6 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The et-1.6 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13545 Application(s): et + + Update selector to utilize new garbage collection trace + tags. + + + Full runtime dependencies of et-1.6: erts-8.0, kernel-3.0, + runtime_tools-1.10, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- eunit-2.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13612 Application(s): eunit + + There is a new debugVal/2 that gives control over the + truncation depth. + + + Full runtime dependencies of eunit-2.3: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- hipe-3.15.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The hipe-3.15.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13407 Application(s): hipe + Related Id(s): PR-984 + + HiPE compiler crashed, during compilation, in some + cases that involved inlining of float operations on + complicated control flow graphs. + + + OTP-13626 Application(s): hipe + + Various fixes and improvements to the HiPE LLVM + backend. + + -- Add support for LLVM 3.7 and 3.8 in the HiPE/LLVM + x86_64 backend + + -- Reinstate support for the LLVM backend on x86 (works + OK for LLVM 3.5 to 3.7 -- LLVM 3.8 has a bug that + prevents it from generating correct native code on x86) + + + --- Improvements and New Features --- + + OTP-13625 Application(s): hipe + Related Id(s): PR-1069 + + Elimination of maps:is_key/2 calls to HiPE + + + Full runtime dependencies of hipe-3.15.1: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-6.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13644 Application(s): inets + + Ftp client fixes: 1) Corrected a bug that the ftp + client gen_server crashed if the listening data socket + was closed. + + 2) Corrections of ftp client error codes so they are as + defined in the reference manual + + + --- Improvements and New Features --- + + OTP-12441 Application(s): inets + + Remove usage of erlang:now(). + + + OTP-13383 Application(s): inets + Related Id(s): PR-972 + + Add handling of DELETE Body to http client. + + + OTP-13445 Application(s): inets + Related Id(s): PR-988 + + Removed references to mod_include and webtool from + examples and tests. + + + OTP-13561 Application(s): inets + + *** POTENTIAL INCOMPATIBILITY *** + + Remove module inets_regexp. Module re should be used + instead. + + + Full runtime dependencies of inets-6.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- jinterface-1.7 -------------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13482 Application(s): jinterface + + Fix Jinterface build on Maven + + + --- Improvements and New Features --- + + OTP-13488 Application(s): erl_interface, erts, jinterface + + Handle terms (pids,ports and refs) from nodes with a + 'creation' value larger than 3. This is a preparation + of the distribution protocol to allow OTP 19 nodes to + correctly communicate with future nodes (20 or higher). + The 'creation' value differentiates different + incarnations of the same node (name). + + + --------------------------------------------------------------------- + --- kernel-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-5.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12593 Application(s): erts, kernel + + The handling of on_load functions has been improved. + The major improvement is that if a code upgrade fails + because the on_load function fails, the previous + version of the module will now be retained. + + + OTP-13409 Application(s): kernel + + rpc:call() and rpc:block_call() would sometimes cause + an exception (which was not mentioned in the + documentation). This has been corrected so that + {badrpc,Reason} will be returned instead. + + + OTP-13410 Application(s): kernel + + On Windows, for modules that were loaded early (such as + the lists module), code:which/1 would return the path + with mixed slashes and backslashes, for example: + "C:\\Program + Files\\erl8.0/lib/stdlib-2.7/ebin/lists.beam". This has + been corrected. + + + OTP-13411 Application(s): erts, kernel + + Make file:datasync use fsync instead of fdatasync on + Mac OSX. + + + OTP-13444 Application(s): kernel + + The default chunk size for the fallback sendfile + implementation, used on platforms that do not have a + native sendfile, has been decreased in order to reduce + connectivity issues. + + + OTP-13461 Application(s): kernel + + Large file writes (2Gb or more) could fail on some Unix + platforms (for example, OS X and FreeBSD). + + + OTP-13470 Application(s): kernel + Related Id(s): #969, Pull + + A bug has been fixed where the DNS resolver inet_res + did not refresh its view of the contents of for example + resolv.conf immediately after start and hence then + failed name resolution. Reported and fix suggested by + Michal Ptaszek in GitHUB pull req #949. + + + OTP-13516 Application(s): kernel + Related Id(s): PR-1008 + + Fix process leak from global_group. + + + OTP-13622 Application(s): kernel + Related Id(s): PR-1065 + + *** POTENTIAL INCOMPATIBILITY *** + + The function inet:gethostbyname/1 now honors the + resolver option inet6 instead of always looking up IPv4 + addresses. + + + OTP-13631 Application(s): kernel + Related Id(s): PR-911 + + The Status argument to init:stop/1 is now sanity + checked to make sure erlang:halt does not fail. + + + --- Improvements and New Features --- + + OTP-12837 Application(s): kernel + + Add {line_delim, byte()} option to inet:setopts/2 and + decode_packet/3 + + + OTP-12908 Application(s): erts, kernel + + Added os:perf_counter/1. + + The perf_counter is a very very cheap and high + resolution timer that can be used to timestamp system + events. It does not have monoticity guarantees, but + should on most OS's expose a monotonous time. + + + OTP-13089 Application(s): kernel + + The os:cmd call has been optimized on unix platforms to + be scale better with the number of schedulers. + + + OTP-13111 Application(s): erts, kernel + + New functions that can load multiple modules at once + have been added to the 'code' module. The functions are + code:atomic_load/1, code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1. + + + OTP-13191 Application(s): kernel + + The code path cache feature turned out not to be very + useful in practice and has been removed. If an attempt + is made to enable the code path cache, there will be a + warning report informing the user that the feature has + been removed. + + + OTP-13294 Application(s): kernel + + When an attempt is made to start a distributed Erlang + node with the same name as an existing node, the error + message will be much shorter and easier to read than + before. Example: + + Protocol 'inet_tcp': the name somename@somehost seems + to be in use by another Erlang node + + + OTP-13325 Application(s): kernel + + The output of the default error logger is somewhat + prettier and easier to read. The default error logger + is used during start-up of the OTP system. If the + start-up fails, the output will be easier to read. + + + OTP-13449 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The functions rpc:safe_multi_server_call/2,3 that were + deprecated in R12B have been removed. + + + OTP-13458 Application(s): kernel + + Update the error reasons in dist_util, and show them in + the logs if net_kernel:verbose(1) has been called. + + + OTP-13572 Application(s): erts, kernel + Related Id(s): PR-612 + + *** HIGHLIGHT *** + + Experimental support for Unix Domain Sockets has been + implemented. Read the sources if you want to try it + out. Example: gen_udp:open(0, + [{ifaddr,{local,"/tmp/socket"}}]). Documentation will + be written after user feedback on the experimental API. + + + OTP-13650 Application(s): kernel + + Allow heart to be configured to not kill the previous + emulator before calling the HEART_COMMAND. This is done + by setting the environment variable HEART_NO_KILL to + TRUE. + + + Full runtime dependencies of kernel-5.0: erts-8.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- mnesia-4.14 ----------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.14 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13058 Application(s): mnesia + + *** HIGHLIGHT *** + + Added experimental external backend plugin api. This + adds the possibility for the user to write other + storage backends for data, for example by using shared + memory or ram-cached disk storage. + + The plugin api may change in future versions after + being battle tested. + + + Full runtime dependencies of mnesia-4.14: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- observer-2.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13481 Application(s): observer, runtime_tools + + Update observer GUI to support tracing on ports, and to + set matchspecs for send/receive. This required some + minor bugfixes in runtime_tools/dbg. + + + OTP-13500 Application(s): observer, runtime_tools + + Update dbg and ttb to work with a tracer module as + tracer and tracing on ports. + + + OTP-13555 Application(s): observer + + Added possibility to change update frequency and length + of the graph windows. + + + OTP-13556 Application(s): observer + + Improved background coloring to work with dark themes + and other visual improvements. + + + OTP-13647 Application(s): observer + + Crashdump viewer now allows port info "Port controls + forker process..." + + + Full runtime dependencies of observer-2.2: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.11.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.11.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13559 Application(s): odbc + + Configure enhancement for better handling program paths + used in the build process + + + Full runtime dependencies of odbc-2.11.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.4.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13526 Application(s): os_mon + Related Id(s): PR-1029 + + Fix type specification for cpu_sup:util/1 + + + OTP-13548 Application(s): os_mon + Related Id(s): PR-1046 + + Fix strict compilation on SUN/SPARC + + + OTP-13597 Application(s): os_mon + Related Id(s): PR-1049 + + Implement cpu_sup:util/0,1 on Mac OSX + + + OTP-13601 Application(s): os_mon + Related Id(s): PR-1039 + + Fix memsup:get_os_wordsize() on 64-bit FreeBSD and + 64-bit Linux PPC + + + Full runtime dependencies of os_mon-2.4.1: erts-6.0, kernel-3.0, + mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.1.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, gs, ic, megaco, orber, otp_mibs, + parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of parsetools-2.1.2: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- percept-0.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + The percept-0.9 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13422 Application(s): percept + + Remove deprecated erlang:now/0 calls + + + --- Improvements and New Features --- + + OTP-13598 Application(s): percept + + Improve line implementation + + Add capabilities for line thickness and anti-aliasing. + + + Full runtime dependencies of percept-0.9: erts-6.0, inets-5.10, + kernel-3.0, runtime_tools-1.8.14, stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13554 Application(s): public_key + + The ASN-1 type GeneralName can have more values, then + the most common directory name, the code now handles + this. + + + --- Improvements and New Features --- + + OTP-13408 Application(s): public_key + + *** HIGHLIGHT *** + + Handle PEM encoded EC public keys + + + Full runtime dependencies of public_key-1.2: asn1-3.0, crypto-3.3, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- reltool-0.7.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The reltool-0.7.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13033 Application(s): reltool + Related Id(s): OTP-12719 + + Modify the code as motivated by a change of the Erlang + Parser (undefined is no longer automatically inserted + to the type of record fields without an initializer). + + + Full runtime dependencies of reltool-0.7.1: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-2.0, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.10 ---------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.10 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13576 Application(s): runtime_tools + Related Id(s): ERL-119 + + Fix bug in dbg:trace_port/2 that could cause the trace + ip driver to produce faulty error reports + "...(re)selected before stop_select was called for + driver trace_ip_drv". + + + --- Improvements and New Features --- + + OTP-12345 Application(s): erts, runtime_tools + + *** HIGHLIGHT *** + + Add microstate accounting + + Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage + area is to pin point performance bottlenecks by + checking which states the threads are in and then from + there figuring out why and where to optimize. + + Since checking whether microstate accounting is on or + off is relatively expensive only a few of the states + are enabled by default and more states can be enabled + through configure. + + There is a convenience module called msacc that has + been added to runtime_tools that can assist in + gathering and interpreting the data from Microstate + accounting. + + For more information see + erlang:statistics(microstate_accounting, _) and the + msacc module in runtime_tools. + + + OTP-13481 Application(s): observer, runtime_tools + + Update observer GUI to support tracing on ports, and to + set matchspecs for send/receive. This required some + minor bugfixes in runtime_tools/dbg. + + + OTP-13500 Application(s): observer, runtime_tools + + Update dbg and ttb to work with a tracer module as + tracer and tracing on ports. + + + OTP-13502 Application(s): runtime_tools + + Updated dbg to accept the new trace options + monotonic_timestamp and strict_monotonic_timestamp. + + + OTP-13532 Application(s): erts, runtime_tools + + *** POTENTIAL INCOMPATIBILITY *** + + Introduce LTTng tracing via Erlang tracing. + + For LTTng to be enabled OTP needs to be built with + configure option --with-dynamic-trace=lttng. + + The dynamic trace module dyntrace is now capable to be + used as a LTTng sink for Erlang tracing. For a list of + all tracepoints, see Runtime Tools User's Guide . + + This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and gc_end has been + split into gc_minor_start, gc_minor_end and + gc_major_start, gc_major_end. + + + Full runtime dependencies of runtime_tools-1.10: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + The sasl-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13184 Application(s): sasl + + *** POTENTIAL INCOMPATIBILITY *** + + The module 'overload' is removed. + + + Full runtime dependencies of sasl-3.0: erts-8.0, kernel-5.0, + stdlib-3.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- ssh-4.3 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-12860 Application(s): ssh + + A socket created and connected by gen_tcp could now be + used as input to ssh:connect, ssh:shell, + ssh_sftp:start_channel and ssh:daemon. + + + OTP-13131 Application(s): ssh + + Some time optimization mainly in message encoding. + + + OTP-13175 Application(s): ssh + + Optimized the sftp client time by setting new packet + and window sizes. + + + OTP-13267 Application(s): ssh + + The ssh_connection_handler module in SSH is changed and + now uses the new behaviour gen_statem. + + The module can be used as an example of a gen_statem + callback module but with a warning: This commit of ssh + is just a straightforward port from gen_fsm to + gen_statem with some code cleaning. Since the state + machine and the state callbacks are almost unchanged + the ssh module does not demonstrate the full potential + of the new behaviour. + + The "new" state machine uses compound states. The ssh + server and client state machines are quite similar but + differences exist. With gen_fsm there were flags in the + user data which in fact implemented "substates". Now + with gen_statem those are made explicit in the state + names, eg. the state userauth and the binary role-flag + becomes the two state names {userauth, server} and + {userauth, client}. + + + OTP-13347 Application(s): ssh + Related Id(s): ERL-86 + + The {error, Reason} tuples returned from ssh_sftp api + functions are described. + + + OTP-13479 Application(s): ssh + + Added -spec in ssh + + + OTP-13527 Application(s): ssh + + It is now possible to call ssh:daemon/{1,2,3} with + Port=0. This makes the daemon select a free listening + tcp port before opening it. To find this port number + after the call, use the new function ssh:daemon_info/1. + See the reference manual for details. + + + Full runtime dependencies of ssh-4.3: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.0 + + + --------------------------------------------------------------------- + --- ssl-8.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-8.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13651 Application(s): ssl + + Server now rejects, a not requested client cert, as an + incorrect handshake message and ends the connection. + + + --- Improvements and New Features --- + + OTP-13195 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Remove default support for DES cipher suites + + + OTP-13214 Application(s): crypto, ssl + + Deprecate the function crypto:rand_bytes and make sure + that crypto:strong_rand_bytes is used in all places + that are cryptographically significant. + + + OTP-13255 Application(s): ssl + + *** HIGHLIGHT *** + + Better error handling of user error during TLS upgrade. + ERL-69 is solved by gen_statem rewrite of ssl + application. + + + OTP-13256 Application(s): ssl + + Provide user friendly error message when crypto rejects + a key + + + OTP-13415 Application(s): ssl + + Add ssl:getstat/1 and ssl:getstat/2 + + + OTP-13429 Application(s): ssl + Related Id(s): Pull#956 + + TLS distribution connections now allow specifying the + options verify_fun, crl_check and crl_cache. See the + documentation. GitHub pull req #956 contributed by + Magnus Henoch. + + + OTP-13431 Application(s): ssl + + Remove confusing error message when closing a + distributed erlang node running over TLS + + + OTP-13463 Application(s): ssl + + Remove default support for use of md5 in TLS 1.2 + signature algorithms + + + OTP-13464 Application(s): ssl + + ssl now uses gen_statem instead of gen_fsm to implement + the ssl connection process, this solves some timing + issues in addition to making the code more intuitive as + the behaviour can be used cleanly instead of having a + lot of workaround for shortcomings of the behaviour. + + + OTP-13465 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Phase out interoperability with clients that offer + SSLv2. By default they are no longer supported, but an + option to provide interoperability is offered. + + + OTP-13530 Application(s): ssl + + OpenSSL has functions to generate short (eight hex + digits) hashes of issuers of certificates and CRLs. + These hashes are used by the "c_rehash" script to + populate directories of CA certificates and CRLs, e.g. + in the Apache web server. Add functionality to let an + Erlang program find the right CRL for a given + certificate in such a directory. + + + OTP-13629 Application(s): ssl + + Some legacy TLS 1.0 software does not tolerate the + 1/n-1 content split BEAST mitigation technique. Add a + beast_mitigation SSL option (defaulting to + one_n_minus_one) to select or disable the BEAST + mitigation technique. + + + OTP-13632 Application(s): ssl + + *** HIGHLIGHT *** + + Enhance error log messages to facilitate for users to + understand the error + + + OTP-13636 Application(s): ssl + + Increased default DH params to 2048-bit + + + OTP-13656 Application(s): ssl + + Propagate CRL unknown CA error so that public_key + validation process continues correctly and determines + what should happen. + + + OTP-13678 Application(s): ssl + + Introduce a flight concept for handshake packages. This + is a preparation for enabling DTLS, however it can also + have a positive effects for TLS on slow and unreliable + networks. + + + Full runtime dependencies of ssl-8.0: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.0 + + + --------------------------------------------------------------------- + --- stdlib-3.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + The stdlib-3.0 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13260 Application(s): stdlib + Related Id(s): seq13002 + + Fix a race bug affecting dets:open_file/2. + + + OTP-13459 Application(s): erts, stdlib + + Don't search for non-existing Map keys twice + + For maps:get/2,3 and maps:find/2, searching for an + immediate key, e.g. an atom, in a small map, the search + was performed twice if the key did not exist. + + + OTP-13531 Application(s): stdlib + + Avoid stray corner-case math errors on Solaris, e.g. an + error is thrown on underflows in exp() and pow() when + it shouldn't be. + + + OTP-13534 Application(s): stdlib + Related Id(s): ERL-135 + + Fix linting of map key variables + + Map keys cannot be unbound and then used in parallel + matching. + + Example: #{ K := V } = #{ k := K } = M. This is illegal + if 'K' is not bound. + + + OTP-13602 Application(s): stdlib + + Fixed a bug in re on openbsd where sometimes re:run + would return an incorrect result. + + + OTP-13618 Application(s): stdlib + Related Id(s): PR-1001 + + To avoid potential timer bottleneck on supervisor + restart, timer server is no longer used when the + supervisor is unable to restart a child. + + + OTP-13662 Application(s): stdlib + Related Id(s): seq13136 + + The Erlang code preprocessor (epp) can handle file + names spanning over many tokens. Example: -include("a" + "file" "name").. + + + --- Improvements and New Features --- + + OTP-10292 Application(s): stdlib + + The types of The Abstract Format in the erl_parse + module have been refined. + + + OTP-11879 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Undocumented syntax for function specifications, -spec + F/A :: Domain -> Range, has been removed (without + deprecation). + + Using the is_subtype(V, T) syntax for constraints (in + function specifications) is no longer documented, and + the newer syntax V :: T should be used instead. The + Erlang Parser still recognizes the is_subtype syntax, + and will continue to do so for some time. + + + OTP-12502 Application(s): stdlib + Related Id(s): OTP-12501 + + The 'random' module has been deprecated. Use the 'rand' + module instead. + + + OTP-12719 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Background: In record fields with a type declaration + but without an initializer, the Erlang parser inserted + automatically the singleton type 'undefined' to the + list of declared types, if that value was not present + there. That is, the record declaration: + + -record(rec, {f1 :: float(), f2 = 42 :: integer(), f3 + :: some_mod:some_typ()}). + + was translated by the parser to: + + -record(rec, {f1 :: float() | 'undefined', f2 = 42 :: + integer(), f3 :: some_mod:some_typ() | 'undefined'}). + + The rationale for this was that creation of a "dummy" + #rec{} record should not result in a warning from + dialyzer that, for example, the implicit initialization + of the #rec.f1 field violates its type declaration. + + Problems: This seemingly innocent action has some + unforeseen consequences. + + For starters, there is no way for programmers to + declare that e.g. only floats make sense for the f1 + field of #rec{} records when there is no "obvious" + default initializer for this field. (This also affects + tools like PropEr that use these declarations produced + by the Erlang parser to generate random instances of + records for testing purposes.) + + It also means that dialyzer does not warn if e.g. an + is_atom/1 test or something more exotic like an + atom_to_list/1 call is performed on the value of the f1 + field. + + Similarly, there is no way to extend dialyzer to warn + if it finds record constructions where f1 is not + initialized to some float. + + Last but not least, it is semantically problematic when + the type of the field is an opaque type: creating a + union of an opaque and a structured type is very + problematic for analysis because it fundamentally + breaks the opacity of the term at that point. + + Change: To solve these problems the parser will not + automatically insert the 'undefined' value anymore; + instead the user has the option to choose the places + where this value makes sense (for the field) and where + it does not and insert the | 'undefined' there + manually. + + Consequences of this change: This change means that + dialyzer will issue a warning for all places where + records with uninitialized fields are created and those + fields have a declared type that is incompatible with + 'undefined' (e.g. float()). This warning can be + suppressed easily by adding | 'undefined' to the type + of this field. This also adds documentation that the + user really intends to create records where this field + is uninitialized. + + + OTP-12861 Application(s): stdlib + + Remove deprecated functions in the modules erl_scan and + erl_parse. + + + OTP-13059 Application(s): compiler, stdlib + + *** HIGHLIGHT *** + + The pre-processor can now expand the ?FUNCTION_NAME and + ?FUNCTION_ARITY macros. + + + OTP-13065 Application(s): stdlib + Related Id(s): PR-960 + + *** HIGHLIGHT *** + + A new behaviour gen_statem has been implemented. It has + been thoroughly reviewed, is stable enough to be used + by at least two heavy OTP applications, and is here to + stay. But depending on user feedback, we do not expect + but might find it necessary to make minor not backwards + compatible changes into OTP-20.0, so its state can be + designated as "not quite experimental"... + + The gen_statem behaviour is intended to replace gen_fsm + for new code. It has the same features and add some + really useful: + + -- State code is gathered + + -- The state can be any term + + -- Events can be postponed + + -- Events can be self generated + + -- A reply can be sent from a later state + + -- There can be multiple sys traceable replies + + The callback model(s) for gen_statem differs from the + one for gen_fsm, but it is still fairly easy to rewrite + from gen_fsm to gen_statem. + + + OTP-13082 Application(s): stdlib + + Optimize binary:split/2 and binary:split/3 with native + BIF implementation. + + + OTP-13148 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Background: The types of record fields have since R12B + been put in a separate form by epp:parse_file(), + leaving the record declaration form untyped. The + separate form, however, does not follow the syntax of + type declarations, and parse transforms inspecting + -type() attributes need to know about the special + syntax. Since the compiler stores the return value of + epp:parse_file() as debug information in the abstract + code chunk ("Abst" or abstract_code), tools too need to + know about the special syntax, if they inspect -type() + attributes in abstract code. + + Change: No separate type form is created by + epp:parse_file(), but the type information is kept in + the record fields. This means that all parse transforms + and all tools inspecting -record() declarations need to + recognize {typed_record_field, Field, Type}. + + + OTP-13152 Application(s): stdlib + + Unsized fields of the type bytes in binary generators + are now forbidden. (The other ways of writing unsized + fields, such as binary, are already forbidden.) + + + OTP-13153 Application(s): stdlib + + The type map() is built-in, and cannot be redefined. + + + OTP-13229 Application(s): stdlib + Related Id(s): ERL-55 + + Let dets:open_file() exit with a badarg message if + given a raw file name (a binary). + + + OTP-13392 Application(s): stdlib + + Add filename:basedir/2,3 + + basedir returns suitable path(s) for 'user_cache', + 'user_config', 'user_data', 'user_log', 'site_config' + and 'site_data'. On linux and linux like systems the + paths will respect the XDG environment variables. + + + OTP-13476 Application(s): stdlib + + There are new preprocessor directives -error(Term) and + -warning(Term) to cause a compilation error or a + compilation warning, respectively. + + + OTP-13487 Application(s): erts, stdlib + + Optimize '++' operator and lists:append/2 by using a + single pass to build a new list while checking for + properness. + + + OTP-13522 Application(s): erts, stdlib + Related Id(s): PR-1025 + + Add maps:update_with/3,4 and maps:take/2 + + + OTP-13523 Application(s): stdlib + + lists:join/2 has been added. Similar to string:join/2 + but works with arbitrary lists. + + + OTP-13524 Application(s): stdlib + Related Id(s): PR-1002 + + Obfuscate asserts to make Dialyzer shut up. + + + OTP-13619 Application(s): stdlib + Related Id(s): PR-1000 + + *** POTENTIAL INCOMPATIBILITY *** + + Supervisors now explicitly add their callback module in + the return from sys:get_status/1,2. This is to simplify + custom supervisor implementations. The Misc part of the + return value from sys:get_status/1,2 for a supervisor + is now: + + [{data, [{"State", + State}]},{supervisor,[{"Callback",Module}]}] + + + OTP-13623 Application(s): stdlib + + Relax translation of initial calls in proc_lib, i.e. + remove the restriction to only do the translation for + gen_server and gen_fsm. This enables user defined gen + based generic callback modules to be displayed nicely + in c:i() and observer. + + + OTP-13658 Application(s): stdlib + + The function queue:lait/1 (misspelling of liat/1) is + now deprecated. + + + Full runtime dependencies of stdlib-3.0: compiler-5.0, crypto-3.3, + erts-8.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.0 ------------------------------------------------ + --------------------------------------------------------------------- + + The syntax_tools-2.0 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-12863 Application(s): syntax_tools + + *** POTENTIAL INCOMPATIBILITY *** + + The abstract data type in erl_syntax is augmented with + types and function specifications. + + The module erl_prettypr pretty prints types and + function specification, and the output can be parsed. + + The types of record fields are no longer ignored. As a + consequence erl_syntax_lib:analyze_record_field/1 + returns {Default, Type} instead of Default. The + functions analyze_record_attribute, analyze_attribute, + analyze_form, and analyze_forms in the erl_syntax_lib + module are also affected by this incompatible change. + + + Full runtime dependencies of syntax_tools-2.0: compiler-7.0, + erts-8.0, kernel-5.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- tools-2.8.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-2.8.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13499 Application(s): tools + + Update fprof to use the new 'spawned' trace event to + determine when a process has been created. + + + --- Improvements and New Features --- + + OTP-13593 Application(s): tools + + Optimize adding multiple modules to an Xref server. + + + OTP-13610 Application(s): tools + + Various emacs mode improvements, such as better tags + support. + + + Full runtime dependencies of tools-2.8.4: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- typer-0.9.11 ---------------------------------------------------- + --------------------------------------------------------------------- + + The typer-0.9.11 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, gs, ic, megaco, orber, otp_mibs, + parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of typer-0.9.11: compiler-5.0, + dialyzer-2.7, erts-6.0, hipe-3.10.3, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- wx-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13491 Application(s): wx + + Fixed bugs which could cause called functions to be + invoked twice or not at all when callbacks where + invoked at the same time. + + + --- Improvements and New Features --- + + OTP-13553 Application(s): wx + + *** POTENTIAL INCOMPATIBILITY *** + + Changed atom 'boolean' fields in #wxMouseState{} to + 'boolean()'. + + Moved out arguments in wxListCtrl:hitTest to result. + + Removed no-op functions in wxGauge that have been + removed from wxWidgets-3.1. + + + Full runtime dependencies of wx-1.7: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.11 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.11 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13551 Application(s): asn1, cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, gs, ic, megaco, orber, otp_mibs, + parsetools, snmp, typer, xmerl + + Internal changes + + + Full runtime dependencies of xmerl-1.3.11: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Aleksei Magusev, Alexey Lebedeff, Andreas Schultz, Andrew Bennett, + Byaruhanga Franklin, Constantin Rack, Daniel Sommermann, Daniil + Fedotov, Derek Brown, Diana Corbacho, Dmytro Lytovchenko, Dániel + Szoboszlay, Erik Norgren, FabioBatSilva, Jesper Louis Andersen, Joe + DeVivo, Johan Claesson, John, John Eckersberg, José Valim, Kenji + Rikitake, Kenneth Lakin, Kostis Sagonas, Loïc Hoguin, Luca Favatella, + Lukas Larsson, Magnus Henoch, Magnus Lång, Michael Klishin, Michael + Santos, Michal Ptaszek, Mikael Pettersson, Milton Inostroza, + Nathaniel Waisbrot, Nikolaos S. Papaspyrou, Péter Gömöri, Richard + Carlsson, Rico Antonio Felix, Sasan Hezarkhani, Sean Charles, Serge + Aleynikov, Simon Cornish, Stavros Aronis, Stefan Strigler, Steve + Vinoski, Stuart Thackray, Ulf Wiger, Vlad Dumitrescu, Yiannis + Tsiouris, Yuki Ito, alisdair sullivan, def_null, eksperimental, + jrobhoward, xsipewe, xuming + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.1.1.README.txt b/release-notes/OTP-19.1.1.README.txt new file mode 100644 index 0000000..6e492ab --- /dev/null +++ b/release-notes/OTP-19.1.1.README.txt @@ -0,0 +1,52 @@ +Patch Package: OTP 19.1.1 +Git Tag: OTP-19.1.1 +Date: 2016-09-29 +Trouble Report Id: OTP-13917, OTP-13918 +Seq num: +System: OTP +Release: 19 +Application: ssl-8.0.3 +Predecessor: OTP 19.1 + + Check out the git tag OTP-19.1.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. + + --------------------------------------------------------------------- + --- ssl-8.0.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.0.3 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13917 Application(s): ssl + + A timing related bug in event handling could cause + interoperability problems between an erlang TLS server + and some TLS clients, especially noticed with Firefox + as TLS client. + + + OTP-13918 Application(s): ssl + + Correct ECC curve selection, the error could cause the + default to always be selected. + + + Full runtime dependencies of ssl-8.0.3: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.1.2.README.txt b/release-notes/OTP-19.1.2.README.txt new file mode 100644 index 0000000..783bd63 --- /dev/null +++ b/release-notes/OTP-19.1.2.README.txt @@ -0,0 +1,42 @@ +Patch Package: OTP 19.1.2 +Git Tag: OTP-19.1.2 +Date: 2016-10-06 +Trouble Report Id: OTP-13905, OTP-13932 +Seq num: seq13189 +System: OTP +Release: 19 +Application: ssh-4.3.3 +Predecessor: OTP 19.1.1 + + --------------------------------------------------------------------- + --- ssh-4.3.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.3.3 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + + OTP-13932 Application(s): ssh + Related Id(s): seq13189 + + Handle all possible exit values that should be + interpreted as {error, closed}. Failing to do so could + lead to unexpected crashes for users of the ssh + application. + + + Full runtime dependencies of ssh-4.3.3: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.1.3.README.txt b/release-notes/OTP-19.1.3.README.txt new file mode 100644 index 0000000..e1c6e23 --- /dev/null +++ b/release-notes/OTP-19.1.3.README.txt @@ -0,0 +1,45 @@ +Patch Package: OTP 19.1.3 +Git Tag: OTP-19.1.3 +Date: 2016-10-11 +Trouble Report Id: OTP-13953 +Seq num: seq13199 +System: OTP +Release: 19 +Application: ssh-4.3.4 +Predecessor: OTP 19.1.2 + + Check out the git tag OTP-19.1.3, 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. + + --------------------------------------------------------------------- + --- ssh-4.3.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.3.4 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13953 Application(s): ssh + Related Id(s): seq13199 + + Intermittent ssh ERROR REPORT mentioning + nonblocking_sender + + + Full runtime dependencies of ssh-4.3.4: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.1.4.README.txt b/release-notes/OTP-19.1.4.README.txt new file mode 100644 index 0000000..21c478c --- /dev/null +++ b/release-notes/OTP-19.1.4.README.txt @@ -0,0 +1,45 @@ +Patch Package: OTP 19.1.4 +Git Tag: OTP-19.1.4 +Date: 2016-10-14 +Trouble Report Id: OTP-13966 +Seq num: +System: OTP +Release: 19 +Application: ssh-4.3.5 +Predecessor: OTP 19.1.3 + + Check out the git tag OTP-19.1.4, 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. + + --------------------------------------------------------------------- + --- ssh-4.3.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.3.5 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13966 Application(s): ssh + + If a client illegaly sends an info-line and then + immediatly closes the TCP-connection, a badmatch + exception was raised. + + + Full runtime dependencies of ssh-4.3.5: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.1.5.README.txt b/release-notes/OTP-19.1.5.README.txt new file mode 100644 index 0000000..aaa3a47 --- /dev/null +++ b/release-notes/OTP-19.1.5.README.txt @@ -0,0 +1,43 @@ +Patch Package: OTP 19.1.5 +Git Tag: OTP-19.1.5 +Date: 2016-10-18 +Trouble Report Id: OTP-13972 +Seq num: +System: OTP +Release: 19 +Application: ssh-4.3.6 +Predecessor: OTP 19.1.4 + + Check out the git tag OTP-19.1.5, 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. + + --------------------------------------------------------------------- + --- ssh-4.3.6 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.3.6 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13972 Application(s): ssh + + Re-negotiation problems with OpenSSH client solved. + + + Full runtime dependencies of ssh-4.3.6: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.1.6.1.README.txt b/release-notes/OTP-19.1.6.1.README.txt new file mode 100644 index 0000000..746c170 --- /dev/null +++ b/release-notes/OTP-19.1.6.1.README.txt @@ -0,0 +1,45 @@ +Patch Package: OTP 19.1.6.1 +Git Tag: OTP-19.1.6.1 +Date: 2017-06-02 +Trouble Report Id: OTP-14444 +Seq num: +System: OTP +Release: 19 +Application: erts-8.1.1.1 +Predecessor: OTP 19.1.6 + + Check out the git tag OTP-19.1.6.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. + + --------------------------------------------------------------------- + --- erts-8.1.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-8.1.1.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14444 Application(s): erts + Related Id(s): ERIERL-24 + + A code purge operation could under certain + circumstances expand the size of hibernated processes. + + + Full runtime dependencies of erts-8.1.1.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.1.6.README.txt b/release-notes/OTP-19.1.6.README.txt new file mode 100644 index 0000000..b70ee96 --- /dev/null +++ b/release-notes/OTP-19.1.6.README.txt @@ -0,0 +1,73 @@ +Patch Package: OTP 19.1.6 +Git Tag: OTP-19.1.6 +Date: 2016-11-09 +Trouble Report Id: OTP-13956, OTP-13997, OTP-14009 +Seq num: +System: OTP +Release: 19 +Application: erts-8.1.1 +Predecessor: OTP 19.1.5 + + Check out the git tag OTP-19.1.6, 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. + + --------------------------------------------------------------------- + --- erts-8.1.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The erts-8.1.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13956 Application(s): erts + Related Id(s): ERL-133, ERL-262 + + The emulator got a dynamic library dependency towards + libsctp, which on Linux was not intended since the + emulator there loads and resolves the needed sctp + functions in runtime. This has been fixed and a + configure switch --enable-sctp=lib has been added for + those who want such a library dependency. + + + OTP-13997 Application(s): erts + + Fix SIGUSR1 crashdump generation + + Do not generate a core when a crashdump is asked for. + + + OTP-14009 Application(s): erts + + The new functions in code that allows loading of many + modules at once had a performance problem. While + executing a helper function in the erl_prim_loader + process, garbage messages were produced. The garbages + messages were ignored and ultimately discarded, but + there would be a negative impact on performance and + memory usage. The number of garbage message depended on + both the number of modules to be loaded and the length + of the code path. + + The functions affected of this problem were: + atomic_load/1, ensure_modules_loaded/1, and + prepare_loading/1. + + + Full runtime dependencies of erts-8.1.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.1.README.txt b/release-notes/OTP-19.1.README.txt new file mode 100644 index 0000000..8283575 --- /dev/null +++ b/release-notes/OTP-19.1.README.txt @@ -0,0 +1,1363 @@ +Patch Package: OTP 19.1 +Git Tag: OTP-19.1 +Date: 2016-09-21 +Trouble Report Id: OTP-11993, OTP-13564, OTP-13624, OTP-13633, + OTP-13681, OTP-13682, OTP-13698, OTP-13701, + OTP-13706, OTP-13718, OTP-13720, OTP-13721, + OTP-13723, OTP-13724, OTP-13725, OTP-13730, + OTP-13733, OTP-13734, OTP-13735, OTP-13740, + OTP-13742, OTP-13744, OTP-13746, OTP-13752, + OTP-13755, OTP-13758, OTP-13759, OTP-13763, + OTP-13765, OTP-13770, OTP-13773, OTP-13775, + OTP-13776, OTP-13777, OTP-13778, OTP-13780, + OTP-13781, OTP-13782, OTP-13783, OTP-13787, + OTP-13789, OTP-13795, OTP-13800, OTP-13802, + OTP-13803, OTP-13804, OTP-13808, OTP-13809, + OTP-13816, OTP-13818, OTP-13822, OTP-13833, + OTP-13834, OTP-13841, OTP-13843, OTP-13845, + OTP-13846, OTP-13847, OTP-13848, OTP-13849, + OTP-13850, OTP-13851, OTP-13852, OTP-13853, + OTP-13854, OTP-13855, OTP-13859, OTP-13861, + OTP-13863, OTP-13866, OTP-13867, OTP-13868, + OTP-13869, OTP-13871, OTP-13876, OTP-13877, + OTP-13878, OTP-13880, OTP-13883, OTP-13891, + OTP-13892, OTP-13893 +Seq num: seq13135, seq13158, seq13177, seq13178 +System: OTP +Release: 19 +Application: asn1-4.0.4, common_test-1.12.3, + compiler-7.0.2, crypto-3.7.1, debugger-4.2.1, + dialyzer-3.0.2, diameter-1.12.1, edoc-0.8, + erl_docgen-0.6, erl_interface-3.9.1, + erts-8.1, eunit-2.3.1, gs-1.6.2, hipe-3.15.2, + ic-4.4.2, inets-6.3.3, jinterface-1.7.1, + kernel-5.1, mnesia-4.14.1, observer-2.2.2, + odbc-2.11.3, parsetools-2.1.3, reltool-0.7.2, + runtime_tools-1.10.1, sasl-3.0.1, snmp-5.2.4, + ssh-4.3.2, ssl-8.0.2, stdlib-3.1, + syntax_tools-2.1, tools-2.8.6, wx-1.7.1, + xmerl-1.3.12 +Predecessor: OTP 19.0.7 + + Check out the git tag OTP-19.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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-13808 Application(s): erts, sasl + Related Id(s): OTP-13833 + + Improved dirty scheduler support. A purge of a module + can now be performed without having to wait for + completion of all ongoing dirty NIF calls. + + Note that when enabling support for dirty schedulers, a + new purge strategy will as of ERTS version 8.1 be + enabled. This new strategy is not fully backwards + compatible with the strategy used by default. For more + information see the documentation of + erlang:check_process_code/3. + + + OTP-13808 Application(s): erts, sasl + Related Id(s): OTP-13833 + + Improved dirty scheduler support. A purge of a module + can now be performed without having to wait for + completion of all ongoing dirty NIF calls. + + Note that when enabling support for dirty schedulers, a + new purge strategy will as of ERTS version 8.1 be + enabled. This new strategy is not fully backwards + compatible with the strategy used by default. For more + information see the documentation of + erlang:check_process_code/3. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-13752 Application(s): stdlib + + gen_statem has been changed to set the callback mode + for a server to what Module:callback_mode/0 returns. + This facilitates e.g code downgrade since the callback + mode now becomes a property of the currently active + code, not of the server process. + + Exception handling from Module:init/1 has also been + improved. + + + --------------------------------------------------------------------- + --- asn1-4.0.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-4.0.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13624 Application(s): asn1 + + Compiling multiple ASN.1 modules in the same directory + with parallel make (make -j) should now be safe. + + + Full runtime dependencies of asn1-4.0.4: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.12.3 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.12.3 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13730 Application(s): common_test + Related Id(s): seq13135 + + If the telnet server would pause during transmission of + a line of text before terminating the line, the + ct_telnet:expect/3 function would print the line twice + in the test case HTML log. This problem has been fixed. + + + OTP-13841 Application(s): common_test + + The functions ct:set_verbosity/2 and ct:get_verbosity/1 + have been added in order to make it possible for test + cases, CT Hooks, or test framework functions, to modify + and read verbosity levels for logging. + + + OTP-13855 Application(s): common_test, tools + + make (tools) and ct_make (common_test) would crash if + an Erlang source file contained a -warning() directive. + + + Full runtime dependencies of common_test-1.12.3: 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-2.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.0.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.0.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13701 Application(s): compiler + + If the compiler fails to write the BEAM file, it will + now report the reason of the error for the write + operation. + + + OTP-13780 Application(s): compiler + Related Id(s): ERL-202 + + Fixed an internal compiler error. (Thanks to Svilen + Ivanov for reporting this bug.) + + + OTP-13804 Application(s): compiler + Related Id(s): ERL-209 + + The compiler could crash when trying to compile a + complicated expression with multiple catches all on one + line . (Thanks to Thomas Arts for reporting this bug.) + + + OTP-13863 Application(s): compiler + + Eliminated a few internal compiler failures. + + + Full runtime dependencies of compiler-7.0.2: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-3.7.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-3.7.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13783 Application(s): crypto + Related Id(s): ERL-203 + + Crypto has been fixed to work against OpenSSL versions + with disabled DES ciphers. Correct spelling of cipher + algorithm 'des3_cfb' has been introduced; the previous + misspeling still works. + + + OTP-13789 Application(s): crypto + Related Id(s): PR-1140 + + The size of an internal array in crypto has been fixed + to not segfault when having all possible ciphers. Bug + fix by Duncan Overbruck. + + + Full runtime dependencies of crypto-3.7.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- debugger-4.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-4.2.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13800 Application(s): debugger, diameter, erts, gs, ic, + jinterface, otp + + Update build scripts to not make assumtions about where + env, cp and perl are located. + + + Full runtime dependencies of debugger-4.2.1: compiler-5.0, erts-6.0, + kernel-3.0, stdlib-2.5, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.0.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-3.0.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13682 Application(s): dialyzer + + The translation of forms to types is improved for + opaque types in a few cases. + + + OTP-13723 Application(s): dialyzer + Related Id(s): ERL-159, PR-1121 + + Add warning suppression to compiler-generated case + statements. Warnings about clauses that cannot match + and are also compiler generated are suppressed unless + none of the clauses return. + + + Full runtime dependencies of dialyzer-3.0.2: compiler-7.0, erts-8.0, + hipe-3.15.1, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-1.12.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-1.12.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13787 Application(s): diameter + Related Id(s): OTP-13611 + + Close diameter_tcp/sctp listening sockets at + diameter:stop_service/1. + + Broken by OTP-13611. + + + OTP-13800 Application(s): debugger, diameter, erts, gs, ic, + jinterface, otp + + Update build scripts to not make assumtions about where + env, cp and perl are located. + + + Full runtime dependencies of diameter-1.12.1: erts-6.0, kernel-3.0, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- edoc-0.8 -------------------------------------------------------- + --------------------------------------------------------------------- + + The edoc-0.8 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13720 Application(s): edoc, erl_docgen, syntax_tools + Related Id(s): ERL-120 + + Improve types and specs in OTP documentation generated + from Erlang source files. + + + Full runtime dependencies of edoc-0.8: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_docgen-0.6 -------------------------------------------------- + --------------------------------------------------------------------- + + The erl_docgen-0.6 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13720 Application(s): edoc, erl_docgen, syntax_tools + Related Id(s): ERL-120 + + Improve types and specs in OTP documentation generated + from Erlang source files. + + + Full runtime dependencies of erl_docgen-0.6: edoc-0.7.13, erts-6.0, + stdlib-2.5, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.9.1 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.9.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13849 Application(s): erl_interface + + Look for .erlang.cookie in windows system directory if + HOMEDRIVE and HOMEPATH is not set. The same behaviour + as the VM. + + + --------------------------------------------------------------------- + --- erts-8.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-8.1 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13724 Application(s): erts + Related Id(s): PR-1116 + + Fix bug for calls from hipe code to BIFs that disable + GC while yielding. Has been causing Dialyzer crashes on + ARM (and presumably all other non-intel platforms). + + + OTP-13733 Application(s): erts + Related Id(s): ERL-175 + + Fix a bug where changing the current working directory + of the VM would not change the current working + directory of programs spawned using + erlang:open_port({spawn,""}, ...). + + + OTP-13734 Application(s): erts + + Fix a bug where disabling tracing from a process that + had return_to tracing enabled and was tracing on + erlang:trace/3 would cause a segmentation fault. + + + OTP-13740 Application(s): erts + + Update all erts documentation to use simpler English, + use consistent terminology and be easier to navigate. + + + OTP-13744 Application(s): erts + + Add dirty schedulers to the microstate accounting + statistics. + + + OTP-13759 Application(s): erts + + Fixed dirty scheduler build support on 32-bit windows. + + + OTP-13773 Application(s): erts + Related Id(s): ERL-102 + + inet:getstat(Socket) on an SCTP socket returned 0 for + send stats. This bug has now been corrected. Reported + by systra as issue ERL-102 on bugs.erlang.org. + + + OTP-13775 Application(s): erts + + AF_UNSPEC and unknown address families were misread by + UDP receive in prim_inet resulting in an exception. + This bug has now been corrected. + + + OTP-13777 Application(s): erts + Related Id(s): PR-1122 + + Sweep HiPE stack for literals during code purge. + + + OTP-13795 Application(s): erts + + Fix bug in run_erl for OpenBSD that could cause it on + rare occations to exit without starting the program + (erl) at all. + + + OTP-13800 Application(s): debugger, diameter, erts, gs, ic, + jinterface, otp + + Update build scripts to not make assumtions about where + env, cp and perl are located. + + + OTP-13802 Application(s): erts, kernel + + Fixed a bug where init:stop could deadlock if a process + with infinite shutdown timeout (e.g. a supervisor) + attempted to load code while terminating. + + + OTP-13803 Application(s): erts + + Fixed a segmentation fault on sparc CPUs when free'ing + a tracer module's state. + + + OTP-13809 Application(s): erts + + funs was not properly handled during purge of a module. + This could cause a crash of the VM after a purge of a + module. + + + OTP-13818 Application(s): erts + + Fixed a memory leak when the process monitoring a port + crashed. + + + OTP-13822 Application(s): erts + + Fixed multiple dirty scheduler related tracing bugs. + + + OTP-13848 Application(s): erts + Related Id(s): ERL-216 + + Fix error handling in beam code runtime loader for a + number of cases when index and size fields got + corrupted (negative) values. + + + OTP-13852 Application(s): erts + + Minor fix of dirty scheduler implementation. + + + OTP-13866 Application(s): erts + + Calls to erl_drv_send_term() or erl_drv_output_term() + from a non-scheduler thread while the corresponding + port was invalid caused the emulator to enter an + inconsistent state which eventually caused an emulator + crash. + + + OTP-13868 Application(s): erts + + Fix a rare race condition in erlang:open_port({spawn, + ""}, ...) that would result in the erl_child_setup + program aborting and cause the emulator to exit. + + + OTP-13869 Application(s): erts + + Driver and NIF operations accessing processes or ports + could cause an emulator crash when used from + non-scheduler threads. Those operations are: + + -- erl_drv_send_term() + + -- driver_send_term() + + -- erl_drv_output_term() + + -- driver_output_term() + + -- enif_send() + + -- enif_port_command() + + + OTP-13871 Application(s): erts + Related Id(s): ERL-241 + + Fix start scripts generation dependency in Makefile + + + OTP-13877 Application(s): erts + + The VM could crash if erlang:get_stacktrace() was + called after a rescheduled NIF had thrown an exception. + + + OTP-13893 Application(s): erts + Related Id(s): ERL-240 + + Calling code:delete/1 before a loading a module with an + on_load function, the old code would be overwritten, + causing a memory or a crash if NIFs were involved. + (Thanks to vans163 for reporting this bug.) + + + --- Improvements and New Features --- + + OTP-13698 Application(s): erts + + Improved accuracy of timeouts on MacOS X. This by + setting premature timeouts followed by a short actual + timeout during scheduler wait. + + + OTP-13735 Application(s): erts + + Added the following symbolic time unit representations + to the erlang:time_unit() type: + + -- second + + -- millisecond + + -- microsecond + + -- nanosecond + + The following symbolic time unit representations are + now *deprecated*, but still part of the + erlang:time_unit() type: + + -- seconds + + -- milli_seconds + + -- micro_seconds + + -- nano_seconds + + + OTP-13763 Application(s): erts + Related Id(s): ERL-199 + + Fix maps hashing entropy of maps with maps keys. + + + OTP-13808 Application(s): erts, sasl + Related Id(s): OTP-13833 + + *** HIGHLIGHT *** + + Improved dirty scheduler support. A purge of a module + can now be performed without having to wait for + completion of all ongoing dirty NIF calls. + + Note that when enabling support for dirty schedulers, a + new purge strategy will as of ERTS version 8.1 be + enabled. This new strategy is not fully backwards + compatible with the strategy used by default. For more + information see the documentation of + erlang:check_process_code/3. + + + OTP-13833 Application(s): erts, sasl + + A new purge strategy has been introduced. The new + strategy will by default be disabled during the OTP 19 + release, but will be the only strategy available as of + the OTP 20 release. + + The new strategy is slightly incompatible with the + strategy being used by default in OTP 19. Using the + default strategy, processes holding funs that refer to + the module being purged either fail a soft purge, or + will be killed during a hard purge. The new strategy + completely ignores funs. If funs referring to the code + being purged exist, and are used after a purge, an + exception will be raised upon usage. That is, the + behavior will be exactly the same as the case when a + fun is received by a process after the purge. + + The new strategy can optionally be enabled when + building OTP during OTP 19, and will automatically be + enabled if the runtime system is built with support for + dirty schedulers. + + For more information see the documentation of + erlang:check_process_code/3. + + + OTP-13851 Application(s): erts + + Fixed unnecessary overestimation of heap size need + during garbage collection. + + + Full runtime dependencies of erts-8.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- eunit-2.3.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.3.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13892 Application(s): eunit + + When asserts were moved out to a separate header file, + the automatic enabling of asserts when testing is + enabled stopped working. + + + Full runtime dependencies of eunit-2.3.1: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- gs-1.6.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The gs-1.6.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13800 Application(s): debugger, diameter, erts, gs, ic, + jinterface, otp + + Update build scripts to not make assumtions about where + env, cp and perl are located. + + + Full runtime dependencies of gs-1.6.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- hipe-3.15.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The hipe-3.15.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13846 Application(s): hipe + Related Id(s): PR-1146 + + Fixed various hipe compiler backend bugs affecting + mostly ARM and SPARC. + + + OTP-13861 Application(s): hipe + Related Id(s): PR-1148 + + Fixed some Dialyzer warnings and code cleanup for the + Sparc compiler backend. + + + OTP-13878 Application(s): hipe + Related Id(s): ERL-249, PR-1161 + + Fix erl_bif_types opaque bug. + + + --- Improvements and New Features --- + + OTP-13876 Application(s): hipe + + Fix erl_types opaque match order + + + Full runtime dependencies of hipe-3.15.2: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- ic-4.4.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ic-4.4.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13718 Application(s): ic, snmp + Related Id(s): ERL-179 + + Correct bugs when path to mib or idl spec files + contains UTF-8 characters. + + + OTP-13800 Application(s): debugger, diameter, erts, gs, ic, + jinterface, otp + + Update build scripts to not make assumtions about where + env, cp and perl are located. + + + Full runtime dependencies of ic-4.4.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- inets-6.3.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13776 Application(s): inets + Related Id(s): ERL-200, PR-1132 + + The legacy option 'inet6fb4' for inets had stopped + working. This bug has now been corrected. Fix by Edwin + Fine in bugs.erlang.org ERL-200 and Github PR#1132. + + + Full runtime dependencies of inets-6.3.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- jinterface-1.7.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The jinterface-1.7.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13800 Application(s): debugger, diameter, erts, gs, ic, + jinterface, otp + + Update build scripts to not make assumtions about where + env, cp and perl are located. + + + --------------------------------------------------------------------- + --- kernel-5.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-5.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13742 Application(s): kernel + + Fix a memory leak when calling + seq_trace:get_system_tracer(). + + + OTP-13758 Application(s): kernel + Related Id(s): ERL-195 + + Fix for the problem that when adding the ebin directory + of an application to the code path, the code:priv_dir/1 + function returns an incorrect path to the priv + directory of the same application. + + + OTP-13765 Application(s): kernel + Related Id(s): ERL-194 + + Fix code_server crash when adding code paths of two + levels. + + + OTP-13770 Application(s): kernel + Related Id(s): PR-1129 + + Respect -proto_dist switch while connection to EPMD + + + OTP-13802 Application(s): erts, kernel + + Fixed a bug where init:stop could deadlock if a process + with infinite shutdown timeout (e.g. a supervisor) + attempted to load code while terminating. + + + OTP-13867 Application(s): kernel + Related Id(s): seq13178 + + Close stdin of commands run in os:cmd. This is a + backwards compatiblity fix that restores the behaviour + of pre 19.0 os:cmd. + + + --- Improvements and New Features --- + + OTP-13564 Application(s): kernel + + Add net_kernel:setopts/2 and net_kernel:getopts/2 to + control options for distribution sockets in runtime. + + + Full runtime dependencies of kernel-5.1: erts-8.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- mnesia-4.14.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.14.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13891 Application(s): mnesia, runtime_tools + + Correct some minor documentation issues. + + + Full runtime dependencies of mnesia-4.14.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- observer-2.2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.2.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13845 Application(s): observer + Related Id(s): ERL-237 + + Fixed error handling in observer when mnesia tables was + requested and not available. + + + Full runtime dependencies of observer-2.2.2: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.11.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.11.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13781 Application(s): odbc + + ODBC build configure has been updated to accept Mac OS + X El Capitan. Fixed by Lee Bannard. + + + Full runtime dependencies of odbc-2.11.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.3 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.1.3 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13681 Application(s): parsetools + + Yecc generates Dialyzer suppressions to avoid warnings + when operator precedence declarations are used. + + + Full runtime dependencies of parsetools-2.1.3: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- reltool-0.7.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The reltool-0.7.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-11993 Application(s): reltool + + Dependencies specified in .app files would earlier only + be followed for applications that are included in a + 'rel' spec in the reltool config. For other + applications, only xref would decide the dependencies. + + Some dependency chains would even be missed for + applications that are included in a 'rel' spec in the + reltool config. E.g. + + -- Application x has y as included application, and y + in turn has z as included application. Then z is not + included. + + -- Application x has y in its 'applications' tag in the + .app file, and y in turn has z as included application. + Then z is not included. + + These bugs are now corrected. + + + Full runtime dependencies of reltool-0.7.2: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-2.0, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.10.1 -------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.10.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13891 Application(s): mnesia, runtime_tools + + Correct some minor documentation issues. + + + Full runtime dependencies of runtime_tools-1.10.1: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The sasl-3.0.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- erts-8.1 (first satisfied in OTP 19.1) + + + --- Improvements and New Features --- + + OTP-13808 Application(s): erts, sasl + Related Id(s): OTP-13833 + + *** HIGHLIGHT *** + + Improved dirty scheduler support. A purge of a module + can now be performed without having to wait for + completion of all ongoing dirty NIF calls. + + Note that when enabling support for dirty schedulers, a + new purge strategy will as of ERTS version 8.1 be + enabled. This new strategy is not fully backwards + compatible with the strategy used by default. For more + information see the documentation of + erlang:check_process_code/3. + + + OTP-13833 Application(s): erts, sasl + + A new purge strategy has been introduced. The new + strategy will by default be disabled during the OTP 19 + release, but will be the only strategy available as of + the OTP 20 release. + + The new strategy is slightly incompatible with the + strategy being used by default in OTP 19. Using the + default strategy, processes holding funs that refer to + the module being purged either fail a soft purge, or + will be killed during a hard purge. The new strategy + completely ignores funs. If funs referring to the code + being purged exist, and are used after a purge, an + exception will be raised upon usage. That is, the + behavior will be exactly the same as the case when a + fun is received by a process after the purge. + + The new strategy can optionally be enabled when + building OTP during OTP 19, and will automatically be + enabled if the runtime system is built with support for + dirty schedulers. + + For more information see the documentation of + erlang:check_process_code/3. + + + Full runtime dependencies of sasl-3.0.1: erts-8.1, kernel-5.0, + stdlib-3.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.2.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.2.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13718 Application(s): ic, snmp + Related Id(s): ERL-179 + + Correct bugs when path to mib or idl spec files + contains UTF-8 characters. + + + --- Improvements and New Features --- + + OTP-13706 Application(s): snmp + + Solves snmp config string handling as reported by + ERL-164 and solved by PR-1100 + + + Full runtime dependencies of snmp-5.2.4: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.3.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.3.2 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13782 Application(s): ssh + Related Id(s): seq13158 + + Upgrade of an established client connection could crash + because the ssh client supervisors children had wrong + type. This is fixed now. + + + OTP-13847 Application(s): ssh + Related Id(s): 0-190243, 1, 205277, 219318, + defensics-ssh3 + + Partly checks the public key early in public key + authorization + + + OTP-13850 Application(s): ssh + Related Id(s): 0-214168, 1, defensics-ssh3 + + Corrected handling of SHA for ECDSA (Elliptic curve + public keys) + + + OTP-13854 Application(s): ssh + + Problems found by test suites as well as by + Codenomicon/Defensics fixed: - reduce max random + padding to 15 bytes (Codenomicon/Defensics) - + inclomplete pdu handling (Codenomicon/Defensics) - + badmatch in test suite - non-blocking send fixes + deadlock in ssh_connection_SUITE:interrupted_send + + + OTP-13859 Application(s): ssh + Related Id(s): seq13177 + + Caller is now notified when a tcp close is received. + + + --- Improvements and New Features --- + + OTP-13843 Application(s): ssh + Related Id(s): PR-1147 + + Use application:ensure_all_started/2 instead of + hard-coding deps + + + Full runtime dependencies of ssh-4.3.2: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.1 + + + --------------------------------------------------------------------- + --- ssl-8.0.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.0.2 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13853 Application(s): ssl + + Correctly formed handshake messages received out of + order will now correctly fail the connection with + unexpected message. + + + --- Improvements and New Features --- + + OTP-13834 Application(s): ssl + + ssl application now behaves gracefully also on + partially incorrect input from peer. + + + OTP-13883 Application(s): ssl + + Add application environment configuration + bypass_pem_cache. This can be used as a workaround for + the current implementation of the PEM-cache that has + proven to be a bottleneck. + + + Full runtime dependencies of ssl-8.0.2: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.1 + + + --------------------------------------------------------------------- + --- stdlib-3.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The stdlib-3.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13633 Application(s): stdlib + + The zip:unzip/1,2 and zip:extract/1,2 functions have + been updated to handle directory traversal exploits. + Any element in the zip file that contains a path that + points to a directory above the top level working + directory, cwd, will instead be extracted in cwd. An + error message is printed for any such element in the + zip file during the unzip operation. The keep_old_files + option determines if a file will overwrite a previous + file with the same name within the zip file. + + + OTP-13721 Application(s): stdlib + Related Id(s): PR-1113 + + Correct the contracts for ets:match_object/1,3. + + + OTP-13746 Application(s): stdlib, tools + Related Id(s): ERL-172, ERL-187 + + Errors in type specification and Emacs template + generation for gen_statem:code_change/4 has been fixed + from bugs.erlang.org's Jira cases ERL-172 and ERL-187. + + + --- Improvements and New Features --- + + OTP-13752 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + gen_statem has been changed to set the callback mode + for a server to what Module:callback_mode/0 returns. + This facilitates e.g code downgrade since the callback + mode now becomes a property of the currently active + code, not of the server process. + + Exception handling from Module:init/1 has also been + improved. + + + Full runtime dependencies of stdlib-3.1: compiler-5.0, crypto-3.3, + erts-8.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The syntax_tools-2.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13725 Application(s): syntax_tools + Related Id(s): ERL-151, PR-1071 + + Fix a bug where erl_tidy crashed on the tilde character + when printing to standard output. + + + OTP-13755 Application(s): syntax_tools + + merl_transform could get into an infinite loop when + syntactically incorrect text was passed to a + merl:qquote/2,3 call. + + + --- Improvements and New Features --- + + OTP-13720 Application(s): edoc, erl_docgen, syntax_tools + Related Id(s): ERL-120 + + Improve types and specs in OTP documentation generated + from Erlang source files. + + + Full runtime dependencies of syntax_tools-2.1: compiler-7.0, + erts-8.0, kernel-5.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- tools-2.8.6 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The tools-2.8.6 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13746 Application(s): stdlib, tools + Related Id(s): ERL-172, ERL-187 + + Errors in type specification and Emacs template + generation for gen_statem:code_change/4 has been fixed + from bugs.erlang.org's Jira cases ERL-172 and ERL-187. + + + OTP-13778 Application(s): tools + Related Id(s): PR-1136 + + Fix gc_start/gc_end in fprof tags when parsing old + trace logs. + + + OTP-13855 Application(s): common_test, tools + + make (tools) and ct_make (common_test) would crash if + an Erlang source file contained a -warning() directive. + + + Full runtime dependencies of tools-2.8.6: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-3.1 + + + --------------------------------------------------------------------- + --- wx-1.7.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.7.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13816 Application(s): wx + + Increased the stacksize for the wx thread. The default + stacksize on Windows is 1MB which is not enough if the + user created many nested dialogs. + + + Full runtime dependencies of wx-1.7.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.12 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.12 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13880 Application(s): xmerl + + Fix a number of broken links in the xmerl + documentation. + + + Full runtime dependencies of xmerl-1.3.12: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Aleksei Magusev, Alexey Lebedeff, Andreas Schultz, Bernhard Schwarz, + Brujo Benavides, Cherep, Daniel Goertzen, Duncaen, Edwin Fine, Fred + Hebert, ILYA Khlopotov, Ignacio Martínez, Johan Claesson, Kostis + Sagonas, Lee Bannard, Linus.yuan, Magnus Henoch, Magnus Lång, Mahesh + Baheti, Mark Bucciarelli, Peter Lemenkov, Philip Arndt, Pierre + Fenoll, Péter Gömöri, Richard Carlsson, Stavros Aronis, Tihon, Tony + Han, Vlad Dumitrescu, jonasf, okumin, xsipewe + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.2.1.README.txt b/release-notes/OTP-19.2.1.README.txt new file mode 100644 index 0000000..b56d813 --- /dev/null +++ b/release-notes/OTP-19.2.1.README.txt @@ -0,0 +1,49 @@ +Patch Package: OTP 19.2.1 +Git Tag: OTP-19.2.1 +Date: 2017-01-16 +Trouble Report Id: OTP-14144 +Seq num: seq13242 +System: OTP +Release: 19 +Application: erts-8.2.1 +Predecessor: OTP 19.2 + + Check out the git tag OTP-19.2.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. + + --------------------------------------------------------------------- + --- erts-8.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The erts-8.2.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14144 Application(s): erts + Related Id(s): seq13242 + + Fix a quite rare bug causing VM crash during code + loading and the use of export funs (fun M:F/A) of not + yet loaded modules. Requires a very specfic timing of + concurrent scheduler threads. Has been seen on ARM but + can probably also occure on other architectures. Bug + has existed since OTP R16. + + + Full runtime dependencies of erts-8.2.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.2.2.README.txt b/release-notes/OTP-19.2.2.README.txt new file mode 100644 index 0000000..272b00d --- /dev/null +++ b/release-notes/OTP-19.2.2.README.txt @@ -0,0 +1,39 @@ +Patch Package: OTP 19.2.2 +Git Tag: OTP-19.2.2 +Date: 2017-02-01 +Trouble Report Id: OTP-14167 +Seq num: +System: OTP +Release: 19 +Application: mnesia-4.14.3 +Predecessor: OTP 19.2.1 + + Check out the git tag OTP-19.2.2, 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. + + --------------------------------------------------------------------- + --- mnesia-4.14.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.14.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14167 Application(s): mnesia + + Fixed crash in checkpoint handling when table was + deleted during backup. + + + Full runtime dependencies of mnesia-4.14.3: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.2.3.README.txt b/release-notes/OTP-19.2.3.README.txt new file mode 100644 index 0000000..433e599 --- /dev/null +++ b/release-notes/OTP-19.2.3.README.txt @@ -0,0 +1,77 @@ +Patch Package: OTP 19.2.3 +Git Tag: OTP-19.2.3 +Date: 2017-02-08 +Trouble Report Id: OTP-14159, OTP-14184, OTP-14203 +Seq num: seq13266 +System: OTP +Release: 19 +Application: erts-8.2.2, inets-6.3.5 +Predecessor: OTP 19.2.2 + + Check out the git tag OTP-19.2.3, 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. + + --------------------------------------------------------------------- + --- erts-8.2.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The erts-8.2.2 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14159 Application(s): erts + Related Id(s): ERL-340 + + Fix bug in binary_to_term for binaries created by + term_to_binary with option compressed. The bug can + cause badarg exception for a valid binary when Erlang + VM is linked against a zlib library of version 1.2.9 or + newer. Bug exists since OTP 17.0. + + + OTP-14184 Application(s): erts + Related Id(s): seq13266 + + The driver efile_drv when opening a file now use + fstat() on the open file instead of stat() before + opening, if fstat() exists. This avoids a race when the + file happens to change between stat() and open(). + + + Full runtime dependencies of erts-8.2.2: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- inets-6.3.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.5 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14203 Application(s): inets + Related Id(s): OTP-13982 + + Correct misstakes in ftp client introduced in + inets-6.3.4 + + + Full runtime dependencies of inets-6.3.5: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.2.README.txt b/release-notes/OTP-19.2.README.txt new file mode 100644 index 0000000..0d60e8b --- /dev/null +++ b/release-notes/OTP-19.2.README.txt @@ -0,0 +1,1096 @@ +Patch Package: OTP 19.2 +Git Tag: OTP-19.2 +Date: 2016-12-13 +Trouble Report Id: OTP-11403, OTP-12982, OTP-13693, OTP-13829, + OTP-13857, OTP-13887, OTP-13888, OTP-13895, + OTP-13896, OTP-13902, OTP-13904, OTP-13905, + OTP-13907, OTP-13916, OTP-13919, OTP-13920, + OTP-13925, OTP-13926, OTP-13927, OTP-13928, + OTP-13929, OTP-13930, OTP-13931, OTP-13933, + OTP-13934, OTP-13944, OTP-13945, OTP-13947, + OTP-13948, OTP-13951, OTP-13955, OTP-13959, + OTP-13960, OTP-13965, OTP-13967, OTP-13970, + OTP-13971, OTP-13973, OTP-13974, OTP-13979, + OTP-13980, OTP-13981, OTP-13982, OTP-13985, + OTP-13992, OTP-13996, OTP-13998, OTP-14003, + OTP-14005, OTP-14010, OTP-14018, OTP-14022, + OTP-14026, OTP-14027, OTP-14028, OTP-14031, + OTP-14040, OTP-14041, OTP-14043, OTP-14044, + OTP-14046, OTP-14048, OTP-14049, OTP-14050, + OTP-14051, OTP-14055, OTP-14064, OTP-14074, + OTP-14082, OTP-14083, OTP-14084 +Seq num: seq13171, seq13198, seq13223, seq13226 +System: OTP +Release: 19 +Application: common_test-1.13, compiler-7.0.3, + crypto-3.7.2, dialyzer-3.0.3, edoc-0.8.1, + erl_docgen-0.6.1, erl_interface-3.9.2, + erts-8.2, eunit-2.3.2, hipe-3.15.3, + inets-6.3.4, kernel-5.1.1, mnesia-4.14.2, + observer-2.3, odbc-2.12, parsetools-2.1.4, + public_key-1.3, runtime_tools-1.11, + sasl-3.0.2, ssh-4.4, ssl-8.1, stdlib-3.2, + syntax_tools-2.1.1, tools-2.9, wx-1.8 +Predecessor: OTP 19.1.6 + + Check out the git tag OTP-19.2, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-12982 Application(s): ssl + + Experimental version of DTLS. It is runnable but not + complete and cannot be considered reliable for + production usage. To use DTLS add the option{protocol, + dtls} to ssl:connect and ssl:listen. + + + OTP-13887 Application(s): ssh + Related Id(s): OTP-13888 + + Extended the option silently_accept_hosts for + ssh:connect to make it possible for the client to check + the SSH host key fingerprint string. Se the reference + manual for SSH. + + + OTP-13929 Application(s): stdlib + Related Id(s): ERL-284, PR-1170 + + The new behaviour gen_statem has been improved with 3 + new features: the possibility to use old style + non-proxy timeouts for gen_statem:call/2,3, state entry + code, and state timeouts. These are backwards + compatible. Minor code and documentation improvements + has been performed including a borderline semantics + correction of timeout zero handling. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-14083 Application(s): odbc + + Change configure to skip odbc for old MACs, the change + in PR-1227 is not backwards compatible with old MACs, + and we do not see a need to continue support for such + old versions. However it is still possible to make it + work on such machines using the --with-odbc configure + option. + + + --------------------------------------------------------------------- + --- common_test-1.13 ------------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.13 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13973 Application(s): common_test + Related Id(s): ERL-279 + + Some types of printouts to screen during test runs + (including ct:print/1,2,3,4) used the local user + process as IO device and these printouts would not be + visible when e.g. running tests via a shell on a remote + node. A default Common Test group leader process has + been introduced to solve the problem. This process + routes printouts to the group leader of the starting + process, if available, otherwise to user. + + + OTP-14026 Application(s): common_test + Related Id(s): ERL-287 + + Some Common Test processes, that act as I/O group + leaders for test cases, would not terminate as expected + at the end of test runs. This error has been corrected. + + + OTP-14044 Application(s): common_test + Related Id(s): seq13223 + + The logging verbosity feature was incorrectly + documented. The default verbosity levels for test runs + is e.g. not 50 (?STD_VERBOSITY), but 100 + (?MAX_VERBOSITY). Also, some of the examples had errors + and flaws. The corresponding chapter (5.18) in the + User's Guide has been updated. + + + --- Improvements and New Features --- + + OTP-14043 Application(s): common_test + Related Id(s): seq13226 + + A feature to let the user specify headings to log + printouts has been added. The heading is specified as + {heading,string()} in the Opts list argument to + ct:pal/3,4,5, ct:print/3,4,5, or ct:log/3,4,5. If the + heading option is omitted, the category name, or + "User", is used as the heading instead. + + + Full runtime dependencies of common_test-1.13: 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-2.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.0.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.0.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13931 Application(s): compiler + Related Id(s): ERL-266 + + Fixed a compiler crash when maps were matched. + + + OTP-13947 Application(s): compiler + Related Id(s): ERL-268 + + Fixed a compiler crash having to with the delayed + sub-creation optimization. (Thanks to Jose Valim for + reporting this bug.) + + + OTP-13985 Application(s): compiler + + The compiler option inline_list_funcs accidentally + turned off some other optimizations. + + + OTP-14040 Application(s): compiler + Related Id(s): ERL-301 + + The compiler could sometimes generate spurious warnings + when inlining was enabled. + + + Full runtime dependencies of compiler-7.0.3: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-3.7.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-3.7.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13895 Application(s): crypto + Related Id(s): PR-1163 + + The crypto application has been fixed to not use RC2 + against OpenSSL built with RC2 disabled. + + + OTP-13896 Application(s): crypto + Related Id(s): PR-1169 + + The crypto application has been fixed to not use RC4 + against OpenSSL built with RC4 disabled. + + + --- Improvements and New Features --- + + OTP-13951 Application(s): crypto, erts + + To ease troubleshooting, erlang:load_nif/2 now includes + the return value from a failed call to + load/reload/upgrade in the text part of the error + tuple. The crypto NIF makes use of this feature by + returning the source line where/if the initialization + fails. + + + Full runtime dependencies of crypto-3.7.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- dialyzer-3.0.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-3.0.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13693 Application(s): dialyzer + + Fix bugs regarding opaque types. + + + OTP-13979 Application(s): dialyzer + Related Id(s): ERL-283 + + Fix error handling of bad -dialyzer() attributes. + + + --- Improvements and New Features --- + + OTP-11403 Application(s): dialyzer + + A few warning messages have been improved. + + + Full runtime dependencies of dialyzer-3.0.3: compiler-7.0, erts-8.0, + hipe-3.15.1, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-0.8.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The edoc-0.8.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13930 Application(s): edoc + Related Id(s): PR-1175 + + Document the function tags @param and @returns. + + + Full runtime dependencies of edoc-0.8.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.6.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-0.6.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13971 Application(s): erl_docgen + + Docgen would previously emit "utf8" as the default + encoding in xml. This has now been remedied by emitting + the correct string "UTF-8" instead. + + + Full runtime dependencies of erl_docgen-0.6.1: edoc-0.7.13, erts-6.0, + stdlib-2.5, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.9.2 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.9.2 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13981 Application(s): erl_interface + + Fix ei_connect_init and ei_connect_xinit to adjust the + creation argument to be compatible with nodes older + than OTP-19. + + + --- Improvements and New Features --- + + OTP-13980 Application(s): erl_interface + + Editorial documentation changes + + + --------------------------------------------------------------------- + --- erts-8.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-8.2 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13904 Application(s): erts + Related Id(s): ERL-256 + + Fixed configure failures on MacOSX. Most important + clock_gettime() was detected when building for MacOSX - + El Capitan using XCode 8 despite it is not available + until MacOSX - Sierra. + + + OTP-13920 Application(s): erts, kernel, sasl + Related Id(s): ERL-267 + + code:add_pathsa/1 and command line option -pa both + revert the given list of directories when adding it at + the beginning of the code path. This is now documented. + + + OTP-13927 Application(s): erts + + Fix a compilation error of erts in OpenBSD related to + the usage of the __errno variable. + + + OTP-13928 Application(s): erts + + Fixed so that when enabling tracing on a process that + had an invalid tracer associated with it, the new + tracer overwrites the old tracer. Before this fix, + calling erlang:trace/3 would behave as if the tracer + was still alive and not apply the new trace. + + This fault was introduced in ERTS 8.0. + + + OTP-13955 Application(s): erts + Related Id(s): ERL-280 + + Fix parsing of -profile_boot 'true' | 'false' + + + OTP-13992 Application(s): erts + + A slight improvement of erlang:get_stacktrace/0 for + exceptions raised in hipe compiled code. Beam compiled + functions in such stack trace was earlier replaced by + some unrelated function. They are now instead omitted. + This is an attempt to reduce the confusion in the + absence of a complete and correct stack trace for mixed + beam and hipe functions. + + + OTP-13996 Application(s): erts + + Correct type declaration of match specification head. + + + OTP-14031 Application(s): erts + Related Id(s): ERL-294, PR-1239 + + HiPE code loading failed for x86_64 if gcc was + configured with --enable-default-pie. Fixed by + disabling PIE, if needed for HiPE, when building the + VM. + + + OTP-14048 Application(s): erts + + Faulty arguments could be presented on exception from a + NIF that had rescheduled itself using + enif_schedule_nif(). + + + OTP-14049 Application(s): erts + + The runtime system could crash if a garbage collection + on a process was performed immediately after a NIF had + been rescheduled using enif_schedule_nif(). + + + OTP-14050 Application(s): erts + + A reference to purged code could be left undetected by + the purge operation if a process just had rescheduled a + NIF call using enif_schedule_nif() when the process was + checked. This could cause a runtime system crash. + + + OTP-14051 Application(s): erts + + Fixed a number of dirty scheduler related bugs: + + -- Process priority was not handled correct when + scheduling on a dirty scheduler. + + -- The runtime system could crash when an exit signal + with a compound exit reason was sent to a process + executing on a dirty scheduler. + + -- The runtime system crashed when call tracing a + process executing on a dirty scheduler. + + -- A code purge operation could end up hanging forever + when a process executed on a dirty scheduler + + + OTP-14055 Application(s): erts + + Fixed a number of bugs that caused faulty stack-traces + to be created on exception when a process was traced. + + + --- Improvements and New Features --- + + OTP-13925 Application(s): erts + + Fix minor soft purge race bug that could incorrectly + trigger code_server to load new code for the module if + the soft purge failed and no current version of the + module existed. + + + OTP-13951 Application(s): crypto, erts + + To ease troubleshooting, erlang:load_nif/2 now includes + the return value from a failed call to + load/reload/upgrade in the text part of the error + tuple. The crypto NIF makes use of this feature by + returning the source line where/if the initialization + fails. + + + OTP-14046 Application(s): erts + + New environment variable ERL_CRASH_DUMP_BYTES can be + used to limit the size of crash dumps. If the limit is + reached, crash dump generation is aborted and the + generated file will be truncated. + + + Full runtime dependencies of erts-8.2: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- eunit-2.3.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.3.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14084 Application(s): eunit, syntax_tools + + The address to the FSF in the license header has been + updated. + + + Full runtime dependencies of eunit-2.3.2: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- hipe-3.15.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The hipe-3.15.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13965 Application(s): hipe + Related Id(s): PR-1253 + + Fix flow control bug in hipe compiler that may cause + compile time crash. + + + OTP-14005 Application(s): hipe + + Fix bug in native compilation of bitstring pattern + matching causing erroneous runtime matching result. The + bug only affects code containing constant-valued + segments whose size is expressed in bits; it is + triggered when the pattern matching against these + segments fails (i.e., when the next clause needs to be + tried). + + + OTP-14027 Application(s): hipe + Related Id(s): ERL-292, PR-1237 + + Workaround in HiPE LLVM backend for a bug in LLVM 3.9. + The bug could cause LLVM-compiled modules to be + rejected during loading with a badarg exception in + hipe_bifs:enter_sdecs/1, but also cause corruption or + segmentation faults i runtime. + + + OTP-14028 Application(s): hipe + Related Id(s): PR-1237 + + Fix a bug in HiPE LLVM backend involving incorrect type + tests of atoms sometimes causing incorrect behaviour or + even segfaults. + + + Full runtime dependencies of hipe-3.15.3: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-6.3.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13960 Application(s): inets + Related Id(s): PR1196 + + Fixes a bug that makes the ftp client end up in bad + state if there is a multi line response from the server + and the response number is in the message being sent. + + + OTP-13967 Application(s): inets + + The ftp client could stop consuming messages when the + multiline response handling was corrected. + + + OTP-14041 Application(s): inets + + Fix keep-alive https through proxy connections so that + all requests, following the first one, will run as + expected instead of failing. + + + OTP-14082 Application(s): inets + + Fix bug from commit + fdfda2fab0921d409789174556582db28141448e that could + make listing of group members in mod_auth callbacks + fail. + + + --- Improvements and New Features --- + + OTP-13902 Application(s): inets + + Update behavior of httpc:request to match RFC-7231 + + + OTP-13982 Application(s): inets + Related Id(s): PR-1207 + + Fixed dialyzer warnings as well as some white-space + issues. Thanks to Kostis. + + + Full runtime dependencies of inets-6.3.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- kernel-5.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-5.1.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- erts-8.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13920 Application(s): erts, kernel, sasl + Related Id(s): ERL-267 + + code:add_pathsa/1 and command line option -pa both + revert the given list of directories when adding it at + the beginning of the code path. This is now documented. + + + OTP-14003 Application(s): kernel + + Add lost runtime dependency to erts-8.1. This should + have been done in kernel-5.1 (OTP-19.1) as it cannot + run without at least erts-8.1 (OTP-19.1). + + + OTP-14022 Application(s): kernel + Related Id(s): PR-1208 + + Type and doc for + gen_{tcp,udp,sctp}:controlling_process/2 has been + improved. + + + Full runtime dependencies of kernel-5.1.1: erts-8.1, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- mnesia-4.14.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.14.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13944 Application(s): mnesia + Related Id(s): PR-1184 + + A continuation returned by mnesia:select/[14] should be + reusable in different, non-transactional activities. + + + OTP-13970 Application(s): mnesia + Related Id(s): seq13198 + + Fixed crash when calling block_table multiple times. + Could happen when having locks for a long time and + restarting mnesia. + + + OTP-14074 Application(s): mnesia + + Change mnesia_tm process to have off-heap messages + since mnesia_tm can be the receiver of many + non-synchronized message from other nodes. + + + Full runtime dependencies of mnesia-4.14.2: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- observer-2.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14010 Application(s): observer + + The shell script (priv/bin/cdv) and bat file + (priv/bin/cdv.bat) which can be used for starting + crashdump_viewer both started a distributed erlang + node. This would cause any attempt at starting a second + instance of the crashdump_viewer to fail. To solve this + problem, cdv and cdv.bat now use non-distributed nodes + when starting the crashdump_viewer. + + + OTP-14064 Application(s): observer + + A bug caused the number of buckets to be shown in the + 'Objects' column, and the number of objects to be shown + in the 'Memory' column for ets table in + crashdump_viewer. This is now corrected. + + + --- Improvements and New Features --- + + OTP-13829 Application(s): observer, runtime_tools + Related Id(s): seq13171 + + Add option queue_size to ttb:tracer/2. This sets the + maximum queue size for the IP trace driver which is + used when tracing to shell and/or {local,File}. + + The default value for queue_size is specified by dbg, + and it is now changed from 50 to 200. + + + OTP-13948 Application(s): observer, runtime_tools + Related Id(s): ERL-272 + + The port information page is updated to show more + information per port. + + + Full runtime dependencies of observer-2.3: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.12 ------------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.12 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-14083 Application(s): odbc + + *** POTENTIAL INCOMPATIBILITY *** + + Change configure to skip odbc for old MACs, the change + in PR-1227 is not backwards compatible with old MACs, + and we do not see a need to continue support for such + old versions. However it is still possible to make it + work on such machines using the --with-odbc configure + option. + + + Full runtime dependencies of odbc-2.12: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.4 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.1.4 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13916 Application(s): parsetools + Related Id(s): ERL-263 + + Correct counting of newlines when rules with newlines + are used in Leex. + + + OTP-13919 Application(s): parsetools + + Correct handling of Unicode in Leex. + + + Full runtime dependencies of parsetools-2.1.4: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13888 Application(s): public_key + Related Id(s): OTP-13887 + + New function public_key:ssh_hostkey_fingerprint/1,2 to + calculate the SSH host key fingerprint string. + + + Full runtime dependencies of public_key-1.3: asn1-3.0, crypto-3.3, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- runtime_tools-1.11 ---------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.11 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13829 Application(s): observer, runtime_tools + Related Id(s): seq13171 + + Add option queue_size to ttb:tracer/2. This sets the + maximum queue size for the IP trace driver which is + used when tracing to shell and/or {local,File}. + + The default value for queue_size is specified by dbg, + and it is now changed from 50 to 200. + + + OTP-13948 Application(s): observer, runtime_tools + Related Id(s): ERL-272 + + The port information page is updated to show more + information per port. + + + Full runtime dependencies of runtime_tools-1.11: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.0.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The sasl-3.0.2 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- erts-8.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13920 Application(s): erts, kernel, sasl + Related Id(s): ERL-267 + + code:add_pathsa/1 and command line option -pa both + revert the given list of directories when adding it at + the beginning of the code path. This is now documented. + + + Full runtime dependencies of sasl-3.0.2: erts-8.1, kernel-5.0, + stdlib-3.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- ssh-4.4 --------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.4 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13857 Application(s): ssh + Related Id(s): ERL-238, OTP-13858 + + A file read with an sftp client could loose data if the + packet_size is set to larger than 64k. This is + corrected now in such a way that the packet_size is + silently lowered if there is a risk for data loss. + + + OTP-13905 Application(s): ssh + Related Id(s): PR-1173 + + When user defined SSH shell REPL process exits with + reason normal, the SSH channel callback module should + report successful exit status to the SSH client. This + provides simple way for SSH clients to check for + successful completion of executed commands. (Thanks to + isvilen) + + + --- Improvements and New Features --- + + OTP-13887 Application(s): ssh + Related Id(s): OTP-13888 + + *** HIGHLIGHT *** + + Extended the option silently_accept_hosts for + ssh:connect to make it possible for the client to check + the SSH host key fingerprint string. Se the reference + manual for SSH. + + + Full runtime dependencies of ssh-4.4: crypto-3.3, erts-6.0, + kernel-3.0, public_key-1.1, stdlib-3.1 + + + --------------------------------------------------------------------- + --- ssl-8.1 --------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.1 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13926 Application(s): ssl + + List of possible anonymous suites, never supported by + default, where incorrect for some TLS versions. + + + --- Improvements and New Features --- + + OTP-12982 Application(s): ssl + + *** HIGHLIGHT *** + + Experimental version of DTLS. It is runnable but not + complete and cannot be considered reliable for + production usage. To use DTLS add the option{protocol, + dtls} to ssl:connect and ssl:listen. + + + OTP-13959 Application(s): ssl + + Add API options to handle ECC curve selection. + + + Full runtime dependencies of ssl-8.1: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.1 + + + --------------------------------------------------------------------- + --- stdlib-3.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The stdlib-3.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13907 Application(s): stdlib + Related Id(s): ERL-163, PR-1158 + + When a simple_one_for_one supervisor is shutting down, + and a child exits with an exit reason of the form + {shutdown, Term}, an error report was earlier printed. + This is now corrected. + + + OTP-13974 Application(s): stdlib + + Allow empty list as parameter of the fun used with + dbg:fun2ms/1. + + + --- Improvements and New Features --- + + OTP-13929 Application(s): stdlib + Related Id(s): ERL-284, PR-1170 + + *** HIGHLIGHT *** + + The new behaviour gen_statem has been improved with 3 + new features: the possibility to use old style + non-proxy timeouts for gen_statem:call/2,3, state entry + code, and state timeouts. These are backwards + compatible. Minor code and documentation improvements + has been performed including a borderline semantics + correction of timeout zero handling. + + + Full runtime dependencies of stdlib-3.2: compiler-5.0, crypto-3.3, + erts-8.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The syntax_tools-2.1.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14084 Application(s): eunit, syntax_tools + + The address to the FSF in the license header has been + updated. + + + Full runtime dependencies of syntax_tools-2.1.1: compiler-7.0, + erts-8.0, kernel-5.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- tools-2.9 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The tools-2.9 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13998 Application(s): tools + + Fix unhandled trace event send_to_non_existing_process + in fprof. + + + --- Improvements and New Features --- + + OTP-13945 Application(s): tools + Related Id(s): PR-1157 + + Improved edoc support in emacs erlang-mode. + + + OTP-14018 Application(s): tools + Related Id(s): PR-1197 + + Added erldoc to emacs mode which opens html + documentation in browser from emacs. For example M-x + erldoc-browse RET lists:foreach/2. + + + Full runtime dependencies of tools-2.9: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-3.1 + + + --------------------------------------------------------------------- + --- wx-1.8 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.8 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13934 Application(s): wx + Related Id(s): ERL-270 + + Allow string arguments to be binaries as specified, + i.e. unicode:chardata(). + + + --- Improvements and New Features --- + + OTP-13933 Application(s): wx + + Add wxWindow:dragAcceptFiles/2 and wxDropFilesEvent to + support simple drag and drop from file browser. + + + Full runtime dependencies of wx-1.8: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Ahmed Shafeeq Bin Mohd Shariff, Alexander Clouter, Alexandre + Snarskii, Andreas Schultz, Andrey Teplyashin, Bozhidar Batsov, Doug + Rohrer, Dániel Szoboszlay, Eric Meadows-Jönsson, Evgeny M, Fred + Hebert, Ildar Khizbulin, JT Turner, Johan Sommerfeld, José Valim, + Jxck, Kostis Sagonas, Leo Liu, Loïc Hoguin, Luca Favatella, Lutz + Behnke, Magnus Henoch, Magnus Lång, Matwey V. Kornilov, Michael + Truog, Péter Gömöri, Richard Carlsson, Svilen Ivanov, Tom Richards, + Trevor Brown, Tuncer Ayaz, Victor Ren, Will, xsipewe + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.1.README.txt b/release-notes/OTP-19.3.1.README.txt new file mode 100644 index 0000000..fef9013 --- /dev/null +++ b/release-notes/OTP-19.3.1.README.txt @@ -0,0 +1,157 @@ +Patch Package: OTP 19.3.1 +Git Tag: OTP-19.3.1 +Date: 2017-04-04 +Trouble Report Id: OTP-14242, OTP-14290, OTP-14298, OTP-14300, + OTP-14308, OTP-14313 +Seq num: seq13294 +System: OTP +Release: 19 +Application: crypto-3.7.4, erts-8.3.1, inets-6.3.7, + ssh-4.4.2, ssl-8.1.2 +Predecessor: OTP 19.3 + + Check out the git tag OTP-19.3.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. + + --------------------------------------------------------------------- + --- crypto-3.7.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-3.7.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14313 Application(s): crypto + Related Id(s): PR-1393 + + Fix a bug with AES CFB 128 for 192 and 256 bit keys. + Thanks to kellymclaughlin ! + + + Full runtime dependencies of crypto-3.7.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- erts-8.3.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The erts-8.3.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14308 Application(s): erts + Related Id(s): ERL-383 + + Trying to open a directory with file:read_file/1 on + Unix leaked a file descriptor. This bug has now been + fixed. + + + --- Known Bugs and Problems --- + + OTP-14290 Application(s): erts + + Invoking init:stop/0 via the SIGTERM signal, in a + non-SMP BEAM, could cause BEAM to terminate with fatal + error. This has now been fixed and the BEAM will + terminate normally when SIGTERM is received. + + + Full runtime dependencies of erts-8.3.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- inets-6.3.7 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.7 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14242 Application(s): inets + + Fixed a bug in ftp that made further operations after a + recv_chunk operation impossible. + + + Full runtime dependencies of inets-6.3.7: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssh-4.4.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.4.2 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependencies have to be satisfied: + -- crypto-3.7.3 (first satisfied in OTP 19.3) + -- public_key-1.4 (first satisfied in OTP 19.3) + -- stdlib-3.3 (first satisfied in OTP 19.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14298 Application(s): ssh + Related Id(s): seq13294 + + ssh:daemon_info/1 crashed if the listening IP was not + 'any' + + + Full runtime dependencies of ssh-4.4.2: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-8.1.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.1.2 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.2 (first satisfied in OTP 19.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14300 Application(s): ssl + + Correct active once emulation, for TLS. Now all data + received by the connection process will be delivered + through active once, even when the active once arrives + after that the gen_tcp socket is closed by the peer. + + + Full runtime dependencies of ssl-8.1.2: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.2 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Bram Verburg, Kelly McLaughlin + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.2.README.txt b/release-notes/OTP-19.3.2.README.txt new file mode 100644 index 0000000..baa5fa2 --- /dev/null +++ b/release-notes/OTP-19.3.2.README.txt @@ -0,0 +1,47 @@ +Patch Package: OTP 19.3.2 +Git Tag: OTP-19.3.2 +Date: 2017-04-24 +Trouble Report Id: OTP-14358 +Seq num: +System: OTP +Release: 19 +Application: erts-8.3.2 +Predecessor: OTP 19.3.1 + + Check out the git tag OTP-19.3.2, 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. + + --------------------------------------------------------------------- + --- erts-8.3.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The erts-8.3.2 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14358 Application(s): erts + Related Id(s): OTP-14085 + + The +Bi command line argument of erl erroneously caused + SIGTERM to be ignored by the VM as well as of all its + child processes. This bug was introduced in erts + version 8.3. + + + Full runtime dependencies of erts-8.3.2: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.3.README.txt b/release-notes/OTP-19.3.3.README.txt new file mode 100644 index 0000000..46df2a5 --- /dev/null +++ b/release-notes/OTP-19.3.3.README.txt @@ -0,0 +1,106 @@ +Patch Package: OTP 19.3.3 +Git Tag: OTP-19.3.3 +Date: 2017-05-02 +Trouble Report Id: OTP-14360, OTP-14363, OTP-14368, OTP-14383 +Seq num: +System: OTP +Release: 19 +Application: dialyzer-3.1.1, erts-8.3.3, inets-6.3.8 +Predecessor: OTP 19.3.2 + + Check out the git tag OTP-19.3.3, 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. + + --------------------------------------------------------------------- + --- dialyzer-3.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The dialyzer-3.1.1 application can *not* be applied + independently of other applications on an arbitrary OTP 19 + installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- hipe-3.15.4 (first satisfied in OTP 19.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14368 Application(s): dialyzer + + Report unknown types properly. A bug was introduced in + Erlang/OTP 19.3, where warnings about unknown types + were simply discarded. + + + Full runtime dependencies of dialyzer-3.1.1: compiler-7.0, erts-8.0, + hipe-3.15.4, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- erts-8.3.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The erts-8.3.3 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14360 Application(s): erts + Related Id(s): ERL-401, PR-1417 + + Fixed memory segment cache used for multiblock + carriers. Huge (> 2GB) memory segments could cause a VM + crash. Creation of such huge memory segments used for + multiblock carriers is however very uncommon. + + + OTP-14363 Application(s): erts + Related Id(s): OTP-14290 + + Fix release note for OTP-14290 in ERTS version 8.3.1. + It was erroneously placed under "Known Bugs and + Problems". + + + Full runtime dependencies of erts-8.3.3: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- inets-6.3.8 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.8 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-14383 Application(s): inets + + Added missing release note for inets-6.3.7 + + + Full runtime dependencies of inets-6.3.8: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Mikael Pettersson + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.4.README.txt b/release-notes/OTP-19.3.4.README.txt new file mode 100644 index 0000000..8cec6ba --- /dev/null +++ b/release-notes/OTP-19.3.4.README.txt @@ -0,0 +1,71 @@ +Patch Package: OTP 19.3.4 +Git Tag: OTP-19.3.4 +Date: 2017-05-12 +Trouble Report Id: OTP-14391, OTP-14396 +Seq num: seq13306 +System: OTP +Release: 19 +Application: inets-6.3.9, ssl-8.1.3 +Predecessor: OTP 19.3.3 + + Check out the git tag OTP-19.3.4, 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. + + --------------------------------------------------------------------- + --- inets-6.3.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.9 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14391 Application(s): inets + Related Id(s): seq13306 + + The close of a chunked file reception crashed in a + certain timing sequence. + + + Full runtime dependencies of inets-6.3.9: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssl-8.1.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.1.3 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.2 (first satisfied in OTP 19.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14396 Application(s): ssl + + Remove debug printout + + + Full runtime dependencies of ssl-8.1.3: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.2 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Joe DeVivo + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + +
\ No newline at end of file diff --git a/release-notes/OTP-19.3.5.README.txt b/release-notes/OTP-19.3.5.README.txt new file mode 100644 index 0000000..6f2dd25 --- /dev/null +++ b/release-notes/OTP-19.3.5.README.txt @@ -0,0 +1,78 @@ +Patch Package: OTP 19.3.5 +Git Tag: OTP-19.3.5 +Date: 2017-06-05 +Trouble Report Id: OTP-14418, OTP-14430 +Seq num: +System: OTP +Release: 19 +Application: erts-8.3.4, xmerl-1.3.14 +Predecessor: OTP 19.3.4 + + Check out the git tag OTP-19.3.5, 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. + + --------------------------------------------------------------------- + --- erts-8.3.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The erts-8.3.4 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14418 Application(s): erts + Related Id(s): ERIERL-15 + + Add option to make SIGTERM trigger the OS default + behaviour instead of doing a gracefull shutdown. To + activate this bahviour the environment variable + ERL_ZZ_SIGTERM_KILL should be set to "true". This + option only works in OTP 19 as OTP 20 will have a + different way to deal with SIGTERM. + + + Full runtime dependencies of erts-8.3.4: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.14 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.14 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14430 Application(s): xmerl + + A couple of bugs are fixed in the sax parser + (xmerl_sax_parser). + + -- The continuation function was not called correctly + when the XML directive was fragmented. + + -- When the event callback modules (xmerl_sax_old_dom + and xmerl_sax_simple) got an endDocument event at + certain conditions the parser crashed. + + -- Replaced internal ets table with map to avoid table + leakage. + + + Full runtime dependencies of xmerl-1.3.14: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.6.1.README.txt b/release-notes/OTP-19.3.6.1.README.txt new file mode 100644 index 0000000..9637f21 --- /dev/null +++ b/release-notes/OTP-19.3.6.1.README.txt @@ -0,0 +1,64 @@ +Patch Package: OTP 19.3.6.1 +Git Tag: OTP-19.3.6.1 +Date: 2017-06-27 +Trouble Report Id: OTP-13939, OTP-14481, OTP-14484 +Seq num: ERL-193 +System: OTP +Release: 19 +Application: erts-8.3.5.1 +Predecessor: OTP 19.3.6 + + Check out the git tag OTP-19.3.6.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. + + --------------------------------------------------------------------- + --- erts-8.3.5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-8.3.5.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-13939 Application(s): erts, kernel + Related Id(s): ERL-193 + + Fixed a bug in gen_tcp:send where it never returned + when repeatedly called on a remotely closed TCP socket. + + + OTP-14481 Application(s): erts + + Fixed segfault that could happen during cleanup of + aborted erlang:port_command/3 calls. A port_command is + aborted if the port is closed at the same time as the + port_command was issued. This bug was introduced in + erts-8.0. + + + OTP-14484 Application(s): erts + + Fixed implementation of statistics(wall_clock) and + statistics(runtime) so that values do not unnecessarily + wrap due to the emulator. Note that the values returned + by statistics(runtime) may still wrap due to + limitations in the underlying functionality provided by + the operating system. + + + Full runtime dependencies of erts-8.3.5.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.6.2.README.txt b/release-notes/OTP-19.3.6.2.README.txt new file mode 100644 index 0000000..01c09e2 --- /dev/null +++ b/release-notes/OTP-19.3.6.2.README.txt @@ -0,0 +1,63 @@ +Patch Package: OTP 19.3.6.2 +Git Tag: OTP-19.3.6.2 +Date: 2017-07-28 +Trouble Report Id: OTP-14491, OTP-14509, OTP-14514 +Seq num: +System: OTP +Release: 19 +Application: erts-8.3.5.2 +Predecessor: OTP 19.3.6.1 + + Check out the git tag OTP-19.3.6.2, 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. + + --------------------------------------------------------------------- + --- erts-8.3.5.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-8.3.5.2 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14491 Application(s): erts + + Fix performance bug in pre-allocators that could cause + them to permanently fall back on normal more expensive + memory allocation. Pre-allocators are used for quick + allocation of short lived meta data used by messages + and other scheduled tasks. Bug exists since OTP_R15B02. + + + OTP-14509 Application(s): erts + + Fixed a bug that prevented TCP sockets from being + closed properly on send timeouts. + + + OTP-14514 Application(s): erts + + Fixed bug in operator bxor causing erroneuos result + when one operand is a big *negative* integer with the + lowest N*W bits as zero and the other operand not + larger than N*W bits. N is an integer of 1 or larger + and W is 32 or 64 depending on word size. + + + Full runtime dependencies of erts-8.3.5.2: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + +
\ No newline at end of file diff --git a/release-notes/OTP-19.3.6.3.README.txt b/release-notes/OTP-19.3.6.3.README.txt new file mode 100644 index 0000000..fc636b3 --- /dev/null +++ b/release-notes/OTP-19.3.6.3.README.txt @@ -0,0 +1,99 @@ +Patch Package: OTP 19.3.6.3 +Git Tag: OTP-19.3.6.3 +Date: 2017-10-05 +Trouble Report Id: OTP-14522, OTP-14548, OTP-14590, OTP-14612, + OTP-14661 +Seq num: ERIERL-48, ERIERL-80, ERL-468, ERL-474 +System: OTP +Release: 19 +Application: compiler-7.0.4.1, erts-8.3.5.3 +Predecessor: OTP 19.3.6.2 + + Check out the git tag OTP-19.3.6.3, 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. + + --------------------------------------------------------------------- + --- compiler-7.0.4.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-7.0.4.1 application can be applied independently of + other applications on a full OTP 19 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. + + + Full runtime dependencies of compiler-7.0.4.1: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- erts-8.3.5.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-8.3.5.3 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14548 Application(s): erts + Related Id(s): ERL-468, OTP-11997 + + A timer internal bit-field used for storing scheduler + id was too small. As a result, VM internal timer data + structures could become inconsistent when using 1024 + schedulers on the system. Note that systems with less + than 1024 schedulers are not effected by this bug. + + This bug was introduced in ERTS version 7.0 (OTP 18.0). + + + OTP-14590 Application(s): erts + Related Id(s): ERL-474 + + Fixed bug in binary_to_term and binary_to_atom that + could cause VM crash. Typically happens when the last + character of an UTF8 string is in the range 128 to 255, + but truncated to only one byte. Bug exists in + binary_to_term since ERTS version 5.10.2 (OTP_R16B01) + and binary_to_atom since ERTS version 9.0 (OTP-20.0). + + + 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-14661 Application(s): erts + Related Id(s): ERIERL-80 + + Fixed bug that could cause a VM crash when a corrupt + message is received on distribution channel from other + node. + + + Full runtime dependencies of erts-8.3.5.3: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.6.4.README.txt b/release-notes/OTP-19.3.6.4.README.txt new file mode 100644 index 0000000..9a94328 --- /dev/null +++ b/release-notes/OTP-19.3.6.4.README.txt @@ -0,0 +1,94 @@ +Patch Package: OTP 19.3.6.4 +Git Tag: OTP-19.3.6.4 +Date: 2017-11-23 +Trouble Report Id: OTP-14748 +Seq num: +System: OTP +Release: 19 +Application: ssl-8.1.3.1 +Predecessor: OTP 19.3.6.3 + + Check out the git tag OTP-19.3.6.4, 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. + + --------------------------------------------------------------------- + --- ssl-8.1.3.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.1.3.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.2 (first satisfied in OTP 19.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14748 Application(s): ssl + + An erlang TLS server configured with cipher suites + using rsa key exchange, may be vulnerable to an + Adaptive Chosen Ciphertext attack (AKA Bleichenbacher + attack) against RSA, which when exploited, may result + in plaintext recovery of encrypted messages and/or a + Man-in-the-middle (MiTM) attack, despite the attacker + not having gained access to the server’s private key + itself. CVE-2017-1000385 + + Exploiting this vulnerability to perform plaintext + recovery of encrypted messages will, in most practical + cases, allow an attacker to read the plaintext only + after the session has completed. Only TLS sessions + established using RSA key exchange are vulnerable to + this attack. + + Exploiting this vulnerability to conduct a MiTM attack + requires the attacker to complete the initial attack, + which may require thousands of server requests, during + the handshake phase of the targeted session within the + window of the configured handshake timeout. This attack + may be conducted against any TLS session using RSA + signatures, but only if cipher suites using RSA key + exchange are also enabled on the server. The limited + window of opportunity, limitations in bandwidth, and + latency make this attack significantly more difficult + to execute. + + RSA key exchange is enabled by default although least + prioritized if server order is honored. For such a + cipher suite to be chosen it must also be supported by + the client and probably the only shared cipher suite. + + Captured TLS sessions encrypted with ephemeral cipher + suites (DHE or ECDHE) are not at risk for subsequent + decryption due to this vulnerability. + + As a workaround if default cipher suite configuration + was used you can configure the server to not use + vulnerable suites with the ciphers option like this: + + {ciphers, [Suite || Suite <- ssl:cipher_suites(), + element(1,Suite) =/= rsa]} + + that is your code will look somethingh like this: + + ssl:listen(Port, [{ciphers, [Suite || Suite <- + ssl:cipher_suites(), element(1,S) =/= rsa]} | + Options]). + + Thanks to Hanno Böck, Juraj Somorovsky and Craig Young + for reporting this vulnerability. + + + Full runtime dependencies of ssl-8.1.3.1: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.2 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.6.5.README.txt b/release-notes/OTP-19.3.6.5.README.txt new file mode 100644 index 0000000..c98bfcd --- /dev/null +++ b/release-notes/OTP-19.3.6.5.README.txt @@ -0,0 +1,114 @@ +Patch Package: OTP 19.3.6.5 +Git Tag: OTP-19.3.6.5 +Date: 2017-12-18 +Trouble Report Id: OTP-14763, OTP-14775, OTP-14776, OTP-14781, + OTP-14829 +Seq num: ERIERL-103, ERIERL-74, ERIERL-84 +System: OTP +Release: 19 +Application: erts-8.3.5.4, mnesia-4.14.3.1, ssh-4.4.2.1 +Predecessor: OTP 19.3.6.4 + + Check out the git tag OTP-19.3.6.5, 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. + + --------------------------------------------------------------------- + --- erts-8.3.5.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-8.3.5.4 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14775 Application(s): erts + + Fixed a bug in file closure on Unix; close(2) was + retried on EINTR which could cause a different + (recently opened) file to be closed as well. + + + OTP-14781 Application(s): erts + Related Id(s): OTP-13047 + + A race-condition when tearing down a connection with + active node monitors could cause the runtime system to + crash. + + This bug was introduced in ERTS version 8.0 (OTP 19.0). + + + Full runtime dependencies of erts-8.3.5.4: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- mnesia-4.14.3.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.14.3.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14776 Application(s): mnesia + Related Id(s): ERIERL-103 + + Fix backup error handling, the real failure reason was + not returned. + + + OTP-14829 Application(s): mnesia + Related Id(s): ERIERL-84 + + Removed a quadratic behavior in startup. This change + implies that backend plugins (if used) must be set when + the schema is created or via configuration parameters + before mnesia is started. + + + Full runtime dependencies of mnesia-4.14.3.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssh-4.4.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.4.2.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependencies have to be satisfied: + -- crypto-3.7.3 (first satisfied in OTP 19.3) + -- public_key-1.4 (first satisfied in OTP 19.3) + -- stdlib-3.3 (first satisfied in OTP 19.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14763 Application(s): ssh + Related Id(s): ERIERL-74 + + Trailing white space was removed at end of the + hello-string. This caused interoperability problems + with some other ssh-implementations (e.g OpenSSH 7.3p1 + on Solaris 11) + + + Full runtime dependencies of ssh-4.4.2.1: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.6.6.README.txt b/release-notes/OTP-19.3.6.6.README.txt new file mode 100644 index 0000000..48cb434 --- /dev/null +++ b/release-notes/OTP-19.3.6.6.README.txt @@ -0,0 +1,71 @@ +Patch Package: OTP 19.3.6.6 +Git Tag: OTP-19.3.6.6 +Date: 2018-03-02 +Trouble Report Id: OTP-14881, OTP-14929 +Seq num: +System: OTP +Release: 19 +Application: ssh-4.4.2.2, ssl-8.1.3.1.1 +Predecessor: OTP 19.3.6.5 + + Check out the git tag OTP-19.3.6.6, 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. + + --------------------------------------------------------------------- + --- ssh-4.4.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.4.2.2 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependencies have to be satisfied: + -- crypto-3.7.3 (first satisfied in OTP 19.3) + -- public_key-1.4 (first satisfied in OTP 19.3) + -- stdlib-3.3 (first satisfied in OTP 19.3) + + + --- Improvements and New Features --- + + OTP-14881 Application(s): ssh + + Default exec is disabled when a user-defined shell is + enabled. + + + Full runtime dependencies of ssh-4.4.2.2: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-8.1.3.1.1 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.1.3.1.1 application can *not* be applied + independently of other applications on an arbitrary OTP 19 + installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.2 (first satisfied in OTP 19.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14929 Application(s): ssl + + Fix alert handling so that unexpected messages are + logged and alerted correctly + + + Full runtime dependencies of ssl-8.1.3.1.1: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.2 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.6.7.README.txt b/release-notes/OTP-19.3.6.7.README.txt new file mode 100644 index 0000000..108a0bd --- /dev/null +++ b/release-notes/OTP-19.3.6.7.README.txt @@ -0,0 +1,49 @@ +Patch Package: OTP 19.3.6.7 +Git Tag: OTP-19.3.6.7 +Date: 2018-03-22 +Trouble Report Id: OTP-14823 +Seq num: +System: OTP +Release: 19 +Application: kernel-5.2.0.1 +Predecessor: OTP 19.3.6.6 + + Check out the git tag OTP-19.3.6.7, 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. + + --------------------------------------------------------------------- + --- kernel-5.2.0.1 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-5.2.0.1 application can *not* be applied + independently of other applications on an arbitrary OTP 19 + installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- erts-8.1 (first satisfied in OTP 19.1) + + + --- New feature --- + + OTP-14823 Application(s): kernel + + Add os:cmd/2 that takes an options map as the second + argument. + + Add max_size as an option to os:cmd/2 that control the + maximum size of the result that os:cmd/2 will return. + + + Full runtime dependencies of kernel-5.2.0.1: erts-8.1, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + +
\ No newline at end of file diff --git a/release-notes/OTP-19.3.6.8.README.txt b/release-notes/OTP-19.3.6.8.README.txt new file mode 100644 index 0000000..051725f --- /dev/null +++ b/release-notes/OTP-19.3.6.8.README.txt @@ -0,0 +1,46 @@ +Patch Package: OTP 19.3.6.8 +Git Tag: OTP-19.3.6.8 +Date: 2018-04-06 +Trouble Report Id: OTP-15004 +Seq num: +System: OTP +Release: 19 +Application: ssh-4.4.2.3 +Predecessor: OTP 19.3.6.7 + + Check out the git tag OTP-19.3.6.8, 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. + + --------------------------------------------------------------------- + --- ssh-4.4.2.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.4.2.3 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependencies have to be satisfied: + -- crypto-3.7.3 (first satisfied in OTP 19.3) + -- public_key-1.4 (first satisfied in OTP 19.3) + -- stdlib-3.3 (first satisfied in OTP 19.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-15004 Application(s): ssh + + An ssh_sftp server (running version 6) could fail if it + is told to remove a file which in fact is a directory. + + + Full runtime dependencies of ssh-4.4.2.3: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.6.9.README.txt b/release-notes/OTP-19.3.6.9.README.txt new file mode 100644 index 0000000..be9c56f --- /dev/null +++ b/release-notes/OTP-19.3.6.9.README.txt @@ -0,0 +1,57 @@ +Patch Package: OTP 19.3.6.9 +Git Tag: OTP-19.3.6.9 +Date: 2018-05-09 +Trouble Report Id: OTP-15018, OTP-15064, OTP-15066 +Seq num: +System: OTP +Release: 19 +Application: ssh-4.4.2.4 +Predecessor: OTP 19.3.6.8 + + Check out the git tag OTP-19.3.6.9, 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. + + --------------------------------------------------------------------- + --- ssh-4.4.2.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.4.2.4 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependencies have to be satisfied: + -- crypto-3.7.3 (first satisfied in OTP 19.3) + -- public_key-1.4 (first satisfied in OTP 19.3) + -- stdlib-3.3 (first satisfied in OTP 19.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-15018 Application(s): ssh + + Fix rare spurios shutdowns of ssh servers when + receiveing {'EXIT',_,normal} messages. + + + OTP-15064 Application(s): ssh + + Host key hash erroneously calculated for clients + following draft-00 of RFC 4419, for example PuTTY + + + OTP-15066 Application(s): ssh + + Renegotiation could fail in some states + + + Full runtime dependencies of ssh-4.4.2.4: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.6.README.txt b/release-notes/OTP-19.3.6.README.txt new file mode 100644 index 0000000..38d5b34 --- /dev/null +++ b/release-notes/OTP-19.3.6.README.txt @@ -0,0 +1,58 @@ +Patch Package: OTP 19.3.6 +Git Tag: OTP-19.3.6 +Date: 2017-06-08 +Trouble Report Id: OTP-14441, OTP-14444, OTP-14451 +Seq num: ERIERL-24, ERL-430 +System: OTP +Release: 19 +Application: erts-8.3.5 +Predecessor: OTP 19.3.5 + + Check out the git tag OTP-19.3.6, 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. + + --------------------------------------------------------------------- + --- erts-8.3.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The erts-8.3.5 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14441 Application(s): erts + Related Id(s): ERL-430 + + Active-mode TCP sockets are now cleaned up properly on + send/shutdown errors. + + + OTP-14444 Application(s): erts + Related Id(s): ERIERL-24 + + A code purge operation could under certain + circumstances expand the size of hibernated processes. + + + OTP-14451 Application(s): erts + + Fix so that the ERL_ZZ_SIGTERM_KILL introduced in + erts-8.3.4 works. + + + Full runtime dependencies of erts-8.3.5: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-19.3.README.txt b/release-notes/OTP-19.3.README.txt new file mode 100644 index 0000000..b1d9453 --- /dev/null +++ b/release-notes/OTP-19.3.README.txt @@ -0,0 +1,1223 @@ +Patch Package: OTP 19.3 +Git Tag: OTP-19.3 +Date: 2017-03-14 +Trouble Report Id: OTP-10599, OTP-13009, OTP-13571, OTP-13874, + OTP-14055, OTP-14085, OTP-14090, OTP-14091, + OTP-14093, OTP-14097, OTP-14098, OTP-14100, + OTP-14103, OTP-14108, OTP-14109, OTP-14114, + OTP-14118, OTP-14119, OTP-14121, OTP-14122, + OTP-14126, OTP-14129, OTP-14130, OTP-14131, + OTP-14132, OTP-14133, OTP-14134, OTP-14135, + OTP-14136, OTP-14138, OTP-14139, OTP-14141, + OTP-14145, OTP-14151, OTP-14153, OTP-14154, + OTP-14159, OTP-14161, OTP-14164, OTP-14165, + OTP-14166, OTP-14169, OTP-14170, OTP-14173, + OTP-14175, OTP-14177, OTP-14189, OTP-14191, + OTP-14192, OTP-14200, OTP-14202, OTP-14206, + OTP-14210, OTP-14211, OTP-14212, OTP-14213, + OTP-14215, OTP-14217, OTP-14222, OTP-14223, + OTP-14225, OTP-14227, OTP-14228, OTP-14229, + OTP-14230, OTP-14231, OTP-14232, OTP-14233, + OTP-14234, OTP-14235, OTP-14240, OTP-14241, + OTP-14248, OTP-14249, OTP-14254, OTP-14269 +Seq num: seq13232, seq13244, seq13261, seq13262, + seq13275, seq13277 +System: OTP +Release: 19 +Application: common_test-1.14, compiler-7.0.4, + crypto-3.7.3, dialyzer-3.1, diameter-1.12.2, + erl_interface-3.9.3, erts-8.3, hipe-3.15.4, + inets-6.3.6, kernel-5.2, observer-2.3.1, + os_mon-2.4.2, public_key-1.4, reltool-0.7.3, + runtime_tools-1.11.1, sasl-3.0.3, snmp-5.2.5, + ssh-4.4.1, ssl-8.1.1, stdlib-3.3, + tools-2.9.1, typer-0.9.12, xmerl-1.3.13 +Predecessor: OTP 19.2.3 + + Check out the git tag OTP-19.3, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14169 Application(s): crypto, ssh + Related Id(s): seq13261 + + The implementation of the key exchange algorithms + diffie-hellman-group-exchange-sha* are optimized, up to + a factor of 11 for the slowest ( = biggest and safest) + group size. + + + --------------------------------------------------------------------- + --- common_test-1.14 ------------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.14 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-10599 Application(s): common_test + Related Id(s): [255], kunagi-344 + + The following corrections and improvements are done in + the common_test hook handling: + + -- An extra argument, Suite, is added as the first + argument to each of the following hook callback + functions: + + -- pre_init_per_group + + -- post_init_per_group + + -- pre_end_per_group + + -- post_end_per_group + + -- pre_init_per_testcase + + -- post_init_per_testcase + + -- pre_end_per_testcase + + -- post_end_per_testcase + + -- on_tc_fail + + -- on_tc_skip + + For backwards compatibility, if the new function is not + exported from a hook callback module, common_test will + fall back to the old interface and call the function + without the Suite argument. + + -- If either init_per_suite or end_per_suite exists, + but not the other, then the non-existing function will + be reported as failed with reason undef in the test + log. The same goes for init/end_per_group. This has + always been a requirement according to the user's + guide, but now common_test is more explicit in the + report. + + -- If init_per_suite was exported from a test suite, + but not end_per_suite, then pre/post_end_per_suite was + called with Suite=ct_framework instead of the correct + suite name. This is now corrected. + + -- If end_per_group was exported from a suite, but not + init_per_group, then end_per_group was never called. + This is now corrected. + + -- Tests that were skipped before calling + pre_init_per_* got faulty calls to the corresponding + post_init_per_*. E.g. if a test was skipped because + suite/0 failed, then post_init_per_suite would be + called even though pre_init_per_suite and + init_per_suite were not called. This is now corrected + so a post_* callback will never be called unless the + corresponding pre_* callback has been called first. + + -- Tests that were skipped before or in + init_per_testcase got faulty calls to + pre_end_per_testcase and post_end_per_testcase. This is + now corrected so pre/post_end_per_testcase are not + called when end_per_testcase is not called. + + -- If an exit signal causes the test case process to + die while running init_per_testcase, the case was + earlier reported as failed with reason {skip,...}. This + is now corrected so the case will be marked as skipped. + + -- If an exist signal causes the test case process to + die while running end_per_testcase, the case was + earlier marked as failed. This is now corrected so the + status of the test case is not changed - there is only + a warning added to the comment field. + + -- If a test case was skipped because of option + {force_stop,skip_rest} or because of a failed sequence, + then no tc_start event would be sent, only tc_done. + This is now corrected so both events are sent. + + -- When skipping or failing in a configuration + function, the configuration function itself would get + {auto_skipped,Reason}, {skipped,Reason} or + {failed,Reason} in the hook callbacks on_tc_skip or + on_tc_fail. The other test cases that were skipped as a + result of this would only get Reason in on_tc_skip. + This is now corrected so even the configuration + function that caused the skip/fail will only get Reason + in the hook callback. + + + OTP-14129 Application(s): common_test + Related Id(s): seq13244 + + When a test case was skipped by a skip_cases statement + in a test spec, then cth_surefire would erroneously + mark the previous test case as skipped in the xml + report. The actually skipped test case would not be + present in the xml report at all. This is now + corrected. + + + OTP-14210 Application(s): common_test + + The multiply_timetraps and scale_timetraps options did + not work with test specifications, which has been + corrected. + + + --- Improvements and New Features --- + + OTP-14132 Application(s): common_test + + ct_testspec:get_tests/1 is added. This is used by + rebar3 to get all directories that must be compiled + when running tests from testspec - instead of + implementing testspec parsing in rebar3. + + + Full runtime dependencies of common_test-1.14: 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-2.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.0.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.0.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14240 Application(s): compiler + + Minor internal changes. A typo in the documentation was + also fixed. + + + Full runtime dependencies of compiler-7.0.4: crypto-3.6, erts-7.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-3.7.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-3.7.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-14169 Application(s): crypto, ssh + Related Id(s): seq13261 + + *** HIGHLIGHT *** + + The implementation of the key exchange algorithms + diffie-hellman-group-exchange-sha* are optimized, up to + a factor of 11 for the slowest ( = biggest and safest) + group size. + + + Full runtime dependencies of crypto-3.7.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- dialyzer-3.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The dialyzer-3.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- hipe-3.15.4 (first satisfied in OTP 19.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14130 Application(s): dialyzer, hipe, typer + + Fix a bug concerning parameterized opaque types. + + + OTP-14177 Application(s): dialyzer + + Improve a few warnings. One of them could cause a + crash. + + + OTP-14249 Application(s): dialyzer, observer + Related Id(s): ERL-161 + + The dialyzer and observer applications will now use a + portable way to find the home directory. That means + that there is no longer any need to manually set the + HOME environment variable on Windows. + + + --- Improvements and New Features --- + + OTP-14126 Application(s): dialyzer + Related Id(s): ERL-308 + + The peak memory consumption is reduced. + + The evaluation of huge SCCs in dialyzer_typesig is + optimized. + + Analyzing modules with binary construction with huge + strings is now much faster. + + + Full runtime dependencies of dialyzer-3.1: compiler-7.0, erts-8.0, + hipe-3.15.4, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-1.12.2 ------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-1.12.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14206 Application(s): diameter + + An improvement in the handling of peer failover in + diameter 1.12.1 adversely affected performance when + sending requests. Further, the inefficient use of a + public table to route incoming answers has been + removed. + + + OTP-14269 Application(s): diameter, hipe, reltool + + Fixed xml issues in old release notes + + + Full runtime dependencies of diameter-1.12.2: erts-6.0, kernel-3.0, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_interface-3.9.3 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.9.3 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-14233 Application(s): erl_interface + Related Id(s): PR-1343 + + Minor documentation update + + + --------------------------------------------------------------------- + --- erts-8.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-8.3 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- sasl-3.0.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14055 Application(s): erts + + Fixed a number of bugs that caused faulty stack-traces + to be generated. The faulty stack traces were generated + either when applying the following functions or tracing + the following functions: + + -- erlang:error/1 + + -- erlang:error/2 + + -- erlang:exit/1 + + -- erlang:throw/1 + + + OTP-14118 Application(s): erts + + Corrected documentation about memory footprint for + maps. + + + OTP-14119 Application(s): erts + Related Id(s): PR-1263 + + Fix process_info(Pid, current_stacktrace) to use stack + depth limit set by system_flag(backtrace_depth). The + old behavior was a hard coded depth limit of 8. + + + OTP-14121 Application(s): erts + + A process calling erlang:system_flag(multi_scheduling, + block) could end up hanging forever in the call. + + + OTP-14122 Application(s): erts + + Dirty scheduler bug fixes: + + -- Fixed call time tracing of process being scheduled + on dirty scheduler. + + -- GC info from dirty schedulers. + + -- Multi scheduling block with dirty schedulers could + crash the runtime system. + + -- Process structures could be removed prematurely. + + -- GC on dirty scheduler could crash the runtime + system. + + -- Termination of a process executing on a dirty + scheduler could cause a runtime system crash. + + + OTP-14133 Application(s): erts + + Fixed crash that occurred when writing timer data to a + crash dump. + + + OTP-14134 Application(s): erts + + A literal area could be removed while still referred + from processes. + + + OTP-14135 Application(s): erts + + Fixed a bug in the garbage collector that could crash + the runtime system. + + + OTP-14136 Application(s): erts + + Fixed a bug in call-time trace for NIFs which caused + tracing to erroneously be started multiple times for + one call. + + + OTP-14153 Application(s): erts + + Remove a debug printout and an unnecessary garbage + collection when handling exceptions in hipe compiled + code. + + + OTP-14154 Application(s): erts + + Fix bug in tracing of garbage collection that could + cause VM crash. Bug exists since OTP 19.0. + + + OTP-14159 Application(s): erts + Related Id(s): ERL-340 + + Fix bug in binary_to_term for binaries created by + term_to_binary with option compressed. The bug can + cause badarg exception for a valid binary when Erlang + VM is linked against a zlib library of version 1.2.9 or + newer. Bug exists since OTP 17.0. + + + OTP-14164 Application(s): erts + + Fix suspension of schedulers when generating a + crashdump. + + + OTP-14202 Application(s): erts + + NIF resources was not handled in a thread-safe manner + in the runtime system without SMP support. + + As a consequence of this fix, the following driver + functions are now thread-safe also in the runtime + system without SMP support: + + -- driver_free_binary() + + -- driver_realloc_binary() + + -- driver_binary_get_refc() + + -- driver_binary_inc_refc() + + -- driver_binary_dec_refc() + + + OTP-14227 Application(s): erts + + Fix erlang:round/1 for large floating point numbers + with an odd absolute value between (1 bsl 52) and (1 + bsl 53). The result was falsely calculated as the next + higher even number even though all integer values up to + (1 bsl 53) can be represented as floats with full + precision. + + + OTP-14228 Application(s): erts + + Add size of literals to module code size in crash dump + and (l)oaded command in break menu like it used to be + before OTP-19.0. + + + OTP-14229 Application(s): erts + + Fix potential bug in enif_send when called without a + process context and with argument msg_env as NULL. + + + OTP-14231 Application(s): erts + + Fix bug where passing an appendable binary to + erlang:port_control() could crash the emulator. + + + OTP-14241 Application(s): erts + Related Id(s): ERL-365 + + Receive expressions with timeout in the Erlang shell + could cause a VM crash. + + + --- Improvements and New Features --- + + OTP-14085 Application(s): erts + + A received SIGTERM signal to beam will generate a + 'stop' message to the init process and terminate the + Erlang VM nicely. This is equivalent to calling + init:stop/0. + + + OTP-14165 Application(s): erts + Related Id(s): ERL-319 + + Workaround for buggy Android implementation of + PTHREAD_STACK_MIN causing build of runtime system to + crash on undeclared PAGE_SIZE. + + + OTP-14234 Application(s): erts + + Add configure option --without-thread-names that + removes the naming of individual emulator threads. + + + OTP-14254 Application(s): erts + Related Id(s): ERL-362 + + Add warning in documentation of zlib:deflateInit/6 + about option WindowsBits values 8 and -8. + + + Full runtime dependencies of erts-8.3: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- hipe-3.15.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The hipe-3.15.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14130 Application(s): dialyzer, hipe, typer + + Fix a bug concerning parameterized opaque types. + + + OTP-14269 Application(s): diameter, hipe, reltool + + Fixed xml issues in old release notes + + + Full runtime dependencies of hipe-3.15.4: compiler-5.0, erts-7.1, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-6.3.6 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.3.6 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13571 Application(s): inets + Related Id(s): ERL-116 + + Chunk size decoding could fail. The symptom was that + chunk decoding sometimes failed depending on timing of + the received stream. If chunk size was split into two + different packets decoding would fail. + + + OTP-14091 Application(s): inets + + Prevent httpc user process to hang if httpc_handler + process terminates unexpectedly + + + OTP-14097 Application(s): inets + + Correct Host header, to include port number, when + redirecting requests. + + + OTP-14173 Application(s): inets + Related Id(s): seq13262 + + Shutdown gracefully on connection or TLS handshake + errors + + + Full runtime dependencies of inets-6.3.6: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- kernel-5.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The kernel-5.2 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- erts-8.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14232 Application(s): kernel + Related Id(s): seq13275 + + Fix a race during cleanup of os:cmd that would cause + os:cmd to hang indefinitely. + + + --- Improvements and New Features --- + + OTP-14191 Application(s): kernel + + The functions in the 'file' module that take a list of + paths (e.g. file:path_consult/2) will now continue to + search in the path if the path contains something that + is not a directory. + + + OTP-14192 Application(s): kernel + + Two OTP processes that are known to receive many + messages are 'rex' (used by 'rpc') and 'error_logger'. + Those processes will now store unprocessed messages + outside the process heap, which will potentially + decrease the cost of garbage collections. + + + Full runtime dependencies of kernel-5.2: erts-8.1, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- observer-2.3.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.3.1 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14090 Application(s): observer, runtime_tools + Related Id(s): seq13232 + + etop erroneously reported the average scheduler + utilization since the tool was first started instead of + the scheduler utilization since last update. This is + now corrected. + + + OTP-14093 Application(s): observer + Related Id(s): ERL-318 + + crashdump_viewer crashed when the 'Slogan' had more + than one line. This is now corrected. + + + OTP-14151 Application(s): observer + Related Id(s): PR-1296 + + When clicking an HTML-link to a port before the port + tab has been opened for the first time, observer would + crash since port info is not initiated. This is now + corrected. + + + OTP-14249 Application(s): dialyzer, observer + Related Id(s): ERL-161 + + The dialyzer and observer applications will now use a + portable way to find the home directory. That means + that there is no longer any need to manually set the + HOME environment variable on Windows. + + + Full runtime dependencies of observer-2.3.1: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- os_mon-2.4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.4.2 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-14161 Application(s): os_mon + Related Id(s): PR-1309 + + Support s390x in os_mon. + + + Full runtime dependencies of os_mon-2.4.2: 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.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.4 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Improvements and New Features --- + + OTP-13009 Application(s): public_key + + New function pkix_verify_hostname/2,3 Implements + certificate hostname checking. See the manual and RFC + 6125. + + + OTP-14223 Application(s): public_key, ssh + + The ssh host key fingerprint generation now also takes + a list of algorithms and returns a list of + corresponding fingerprints. See + public_key:ssh_hostkey_fingerprint/2 and the option + silently_accept_hosts in ssh:connect. + + + Full runtime dependencies of public_key-1.4: asn1-3.0, crypto-3.3, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- reltool-0.7.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The reltool-0.7.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14269 Application(s): diameter, hipe, reltool + + Fixed xml issues in old release notes + + + Full runtime dependencies of reltool-0.7.3: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-2.0, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.11.1 -------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.11.1 application can be applied independently of + other applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14090 Application(s): observer, runtime_tools + Related Id(s): seq13232 + + etop erroneously reported the average scheduler + utilization since the tool was first started instead of + the scheduler utilization since last update. This is + now corrected. + + + Full runtime dependencies of runtime_tools-1.11.1: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The sasl-3.0.3 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- erts-8.1 (first satisfied in OTP 19.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14170 Application(s): sasl + + When both options 'warnings_as_errors' and 'silent' + were given to systools:make_script or + systools:make_relup, no error reason would be returned + if warnings occurred. Instead only the atom 'error' was + returned. This is now corrected. + + Options 'warnings_as_errors' and 'no_warn_sasl' are now + also allowed for systools:make_tar. + + + Full runtime dependencies of sasl-3.0.3: erts-8.1, kernel-5.0, + stdlib-3.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.2.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.2.5 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14145 Application(s): snmp + Related Id(s): ERL-325 + + The SNMP MIB compiler has been fixed to compile MIBS + with refinements on user types such as in RFC 4669 + RADIUS-AUTH-SERVER-MIB.mib. Problem reported and + researched by Kenneth Lakin and Daniel Goertzen. + + See also: https://bugs.erlang.org/browse/ERL-325 + + + Full runtime dependencies of snmp-5.2.5: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.4.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.4.1 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependencies have to be satisfied: + -- crypto-3.7.3 (first satisfied in OTP 19.3) + -- public_key-1.4 (first satisfied in OTP 19.3) + -- stdlib-3.3 (first satisfied in OTP 19.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14108 Application(s): ssh + + Fix bug when opening connections. If the tcp setup + failed, that would in some cases not result in an error + return value. + + + OTP-14109 Application(s): ssh + + Reduce information leakage in case of decryption + errors. + + + OTP-14166 Application(s): ssh + + The key exchange algorithm + diffie-hellman-group-exchange-sha* has a server-option + {dh_gex_limits,{Min,Max}}. There was a hostkey + signature validation error on the client side if the + option was used and the Min or the Max differed from + the corresponding values obtained from the client. + + This bug is now corrected. + + + OTP-14225 Application(s): ssh + Related Id(s): PR-1331, PR-1335 + + The sftpd server now correctly uses root_dir and cwd + when resolving file paths if both are provided. The cwd + handling is also corrected. + + Thanks to kape1395! + + + OTP-14230 Application(s): ssh + Related Id(s): ERL-364 + + Ssh_cli used a function that does not handle non-utf8 + unicode correctly. + + + --- Improvements and New Features --- + + OTP-14169 Application(s): crypto, ssh + Related Id(s): seq13261 + + *** HIGHLIGHT *** + + The implementation of the key exchange algorithms + diffie-hellman-group-exchange-sha* are optimized, up to + a factor of 11 for the slowest ( = biggest and safest) + group size. + + + OTP-14223 Application(s): public_key, ssh + + The ssh host key fingerprint generation now also takes + a list of algorithms and returns a list of + corresponding fingerprints. See + public_key:ssh_hostkey_fingerprint/2 and the option + silently_accept_hosts in ssh:connect. + + + Full runtime dependencies of ssh-4.4.1: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-8.1.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.1.1 application can *not* be applied independently of + other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.2 (first satisfied in OTP 19.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14100 Application(s): ssl + + Corrected termination behavior, that caused a PEM cache + bug and sometimes resulted in connection failures. + + + OTP-14138 Application(s): ssl + + Fix bug that could hang ssl connection processes when + failing to require more data for very large handshake + packages. Add option max_handshake_size to mitigate DoS + attacks. + + + OTP-14141 Application(s): ssl + + Improved support for CRL handling that could fail to + work as intended when an id-ce-extKeyUsage was present + in the certificate. Also improvements where needed to + distributionpoint handling so that all revocations + actually are found and not deemed to be not + determinable. + + + OTP-14222 Application(s): ssl + + A TLS handshake might accidentally match old sslv2 + format and ssl application would incorrectly aborted + TLS handshake with ssl_v2_client_hello_no_supported. + Parsing was altered to avoid this problem. + + + OTP-14235 Application(s): ssl + + Correct default cipher list to prefer AES 128 before + 3DES + + + --- Improvements and New Features --- + + OTP-13874 Application(s): ssl + + Move PEM cache to a dedicated process, to avoid making + the SSL manager process a bottleneck. This improves + scalability of TLS connections. + + + Full runtime dependencies of ssl-8.1.1: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.2 + + + --------------------------------------------------------------------- + --- stdlib-3.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The stdlib-3.3 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14098 Application(s): stdlib + + An escript with only two lines would not work. + + + OTP-14103 Application(s): stdlib + Related Id(s): ERL-313 + + Characters ($char) can be used in constant pattern + expressions. They can also be used in types and + contracts. + + + OTP-14131 Application(s): stdlib + + The signatures of erl_parse:anno_to_term/1 and + erl_parse:anno_from_term/1 are corrected. Using these + functions no longer results in false Dialyzer warnings. + + + OTP-14175 Application(s): stdlib + Related Id(s): seq13277 + + Pretty-printing of maps is improved. + + + OTP-14189 Application(s): stdlib + Related Id(s): ERL-348, ERL-349 + + If any of the following functions in the zip module + crashed, a file would be left open: extract(), unzip(), + create(), or zip(). This has been corrected. + + A zip file having a "Unix header" could not be + unpacked. + + + OTP-14200 Application(s): stdlib + Related Id(s): ERL-352 + + Improve the Erlang shell's tab-completion of long + names. + + + OTP-14248 Application(s): stdlib + Related Id(s): ERL-367 + + The reference manual for sys had some faulty + information about the 'get_modules' message used by + processes where modules change dynamically during + runtime. The documentation is now corrected. + + + --- Improvements and New Features --- + + OTP-14114 Application(s): stdlib + + Bug fixes, new features and improvements to gen_statem: + + A new type init_result/1 has replaced the old + init_result/0, so if you used that old type (that was + never documented) you have to change your code, which + may be regarded as a potential incompatibility. + + Changing callback modes after code change did not work + since the new callback mode was not recorded. This bug + has been fixed. + + The event types state_timeout and {call,From} could not + be generated with a {next_event,EventType,EventContent} + action since they did not pass the runtime type check. + This bug has now been corrected. + + State entry calls can now be repeated using (new) state + callback returns {repeat_state,...}, + {repeat_state_and_data,_} and repeat_state_and_data. + + There have been lots of code cleanup in particular + regarding timer handling. For example is async + cancel_timer now used. Error handling has also been + cleaned up. + + To align with probable future changes to the rest of + gen_*, terminate/3 has now got a fallback and + code_change/4 is not mandatory. + + + OTP-14215 Application(s): stdlib + + filename:safe_relative_path/1 to sanitize a relative + path has been added. + + + Full runtime dependencies of stdlib-3.3: compiler-5.0, crypto-3.3, + erts-8.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- tools-2.9.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The tools-2.9.1 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependency has to be satisfied: + -- stdlib-3.1 (first satisfied in OTP 19.1) + + + --- Improvements and New Features --- + + OTP-14217 Application(s): tools + Related Id(s): PR-1282 + + Improved edoc support in emacs mode. + + + Full runtime dependencies of tools-2.9.1: compiler-5.0, erts-7.0, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-3.1 + + + --------------------------------------------------------------------- + --- typer-0.9.12 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The typer-0.9.12 application can *not* be applied independently + of other applications on an arbitrary OTP 19 installation. + + On a full OTP 19 installation, also the following runtime + dependencies have to be satisfied: + -- dialyzer-3.1 (first satisfied in OTP 19.3) + -- hipe-3.15.4 (first satisfied in OTP 19.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14130 Application(s): dialyzer, hipe, typer + + Fix a bug concerning parameterized opaque types. + + + Full runtime dependencies of typer-0.9.12: compiler-7.0, + dialyzer-3.1, erts-8.0, hipe-3.15.4, kernel-5.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.13 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.13 application can be applied independently of other + applications on a full OTP 19 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14139 Application(s): xmerl + + The namespace_conformant option in xmerl_scan did not + work when parsing documents without explicit XML + namespace declaration. + + + OTP-14211 Application(s): xmerl + + Fix a "well-formedness" bug in the XML Sax parser so it + returns an error if there are something more in the + file after the matching document. If one using the + xmerl_sax_parser:stream() a rest is allowed which then + can be sent to a new call of xmerl_sax_parser:stream() + to parse next document. + + This is done to be compliant with XML conformance + tests. + + + OTP-14212 Application(s): xmerl + + Fixed compiler and dialyzer warnings in the XML SAX + parser. + + + OTP-14213 Application(s): xmerl + + Change how to interpret end of document in the XML SAX + parser to comply with Tim Brays comment on the + standard. This makes it possible to handle more than + one doc on a stream, the standard makes it impossible + to know when the document is ended without waiting for + the next document (and not always even that). + + Tim Brays comment: + + Trailing "Misc" + The fact that you're allowed some trailing junk after + the root element, I decided (but unfortunately too + late) is a real design error in XML. If I'm writing a + network client, I'm probably going to close the link as + soon as a I see the root element end-tag, and not + depend on the other end closing it down properly. + Furthermore, if I want to send a succession of XML + documents over a network link, if I find a processing + instruction after a root element, is it a trailer on + the previous document, or part of the prolog of the + next? + + + Full runtime dependencies of xmerl-1.3.13: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Amir Ghassemi Nasr, Björn Gustavsson, Dave Jeffrey, Håkan Mattsson, + Jing Peng, Karolis Petrauskas, Kim Shrier, Kostis Sagonas, Leo Liu, + Magnus Henoch, Malcolm, Nico, Philip Cristiano, Péter Gömöri, Satyen + Chimulkar, Shaun Mangelsdorf, Steven Danna, pulitta, visciang + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.0-rc1.README.txt b/release-notes/OTP-20.0-rc1.README.txt new file mode 100644 index 0000000..0151334 --- /dev/null +++ b/release-notes/OTP-20.0-rc1.README.txt @@ -0,0 +1,2392 @@ + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** POTENTIAL INCOMPATIBILITY *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-13820 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13900 Application(s): crypto + + The crypto application now supports OpenSSL 1.1. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14059 Application(s): kernel, stdlib + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14094 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + + OTP-14152 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics(scheduler_wall_time) now also + includes information about dirty CPU schedulers. Code + using erlang:statistics(scheduler_wall_time) may have + to be rewritten to take this incompatibility into + consideration. + + + OTP-14178 Application(s): compiler, erts + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14183 Application(s): stdlib + + Replace gen_fsm with gen_statem + + + OTP-14205 Application(s): erts + + All uses of the magic binary kludge has been replaced + by uses of erlang references. + + A magic binary was presented as an empty binary, but + actually referred other data internally in the Erlang + VM. Since they were presented as empty binaries, + different magic binaries compared as equal, and also + lost their internal data when passed out of an erlang + node. + + The new usage of references has not got any of these + strange semantic issues, and the usage of these + references has been optimized to give the same + performance benefits as well as memory usage benefits + as magic binaries had. + + A couple of examples of previous uses of magic binaries + are match specifications and NIF resources. + + + OTP-14219 Application(s): asn1 + + The new 'maps' option changes the representation of the + types SEQUENCE and SET to be maps (instead of records). + + + OTP-14226 Application(s): stdlib + + erl_tar in previous versions of OTP only supports the + USTAR format. That limited path names to at most 255 + bytes, and did not support Unicode characters in names + in a portable way. + + erl_tar now has support for reading tar archives in the + formats currently in common use, such as v7, STAR, + USTAR, PAX, and GNU tar's extensions to the STAR/USTAR + format. When writing tar archives, erl_tar can now + write them in the PAX format if necessary (for example, + to support very long filenames or filenames with + Unicode characters). If possible, erl_tar will still + write tar archives in the USTAR for maximum + portability. + + + OTP-14291 Application(s): ssl + + Extend connection_information/[1,2] . The values + session_id, master_secret, client_random and + server_random can no be accessed by + connection_information/2. Note only session_id will be + added to connection_information/1. The rational is that + values concerning the connection security should have + to be explicitly requested. + + + OTP-14319 Application(s): stdlib + Related Id(s): PR-1076 + + Add new function ets:select_replace/2 which performs + atomic "compare-and-swap" operations for ETS objects + using match specifications. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14388 Application(s): ssl + + Basic support for DTLS that been tested together with + OpenSSL. + + Test by providing the option {protocol, dtls} to the + ssl API functions connect and listen. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** HIGHLIGHT *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-12872 Application(s): ssh + + The internal handling of SSH options is re-written. + + Previously there were no checks if a client option was + given to a daemon or vice versa. This is corrected now. + If your code has e.g. a client-only option in a call to + start a daemon, the call will fail. + + + OTP-13703 Application(s): otp + + The 'gs' application has been removed. + + + OTP-13820 Application(s): ssl + + *** HIGHLIGHT *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13827 Application(s): erts + + Remove deprecated erlang:hash/2. + + + OTP-13844 Application(s): erts + Related Id(s): OTP-13833 + + The previously used purge strategy has been removed. + The optional purge strategy introduced in ERTS version + 8.1 is now the only strategy available. + + The new purge strategy is slightly incompatible with + the old strategy. Previously processes holding funs + that referred to the module being purged either failed + a soft purge, or was killed during a hard purge. The + new strategy completely ignores funs. If funs referring + to the code being purged exist, and are used after a + purge, an exception will be raised upon usage. That is, + the behavior will be exactly the same as the case when + a fun is received by a process after the purge. + + For more information see the documentation of + erlang:check_process_code/3. + + + OTP-13873 Application(s): crypto + + Removed functions deprecated in crypto-3.0 first + released in OTP-R16B01 + + + OTP-13908 Application(s): erts + + The NIF library reload feature is not supported + anymore. It has been marked as deprecated since OTP + R15B. This means that you are only allowed to do one + successful call to erlang:load_nif/2 for each module + instance. A second call to erlang:load_nif/2 will + return {error, {reload, _}} even if the NIF library + imlements the reload callback. + + Runtime upgrade of a NIF library is still supported by + using the Erlang module upgrade mechanics with a + current and an old module instance existing at the same + time with their corresponding NIF libraries. + + + OTP-14039 Application(s): mnesia + + Removed the wrapping of select continuations in + extension plugin handling. This might require the user + to rewrite user backend plugin if used. + + + OTP-14094 Application(s): stdlib + + *** HIGHLIGHT *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + + OTP-14110 Application(s): ssh + + Modernization of diffie-hellman algorithms. Removed an + outdated weak algorithm and added stronger replacements + to keep interoperability with other ssh clients and + servers. The default ordering is also adjusted. + + Retired: key-exchange diffie-hellman-group1-sha1. It is + not enabled by default, but can be enabled with the + option preferred-algorithms. + + Added: key-exchange diffie-hellman-group16-sha512, + diffie-hellman-group18-sha512 and + diffie-hellman-group14-sha256. + + + OTP-14146 Application(s): asn1 + + The deprecated module asn1rt has been removed. The + deprecated functions asn1ct:encode/3 and + asn1ct:decode/3 have been removed. The undocumented + function asn1ct:encode/2 has been removed. + + + OTP-14152 Application(s): erts + + *** HIGHLIGHT *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics(scheduler_wall_time) now also + includes information about dirty CPU schedulers. Code + using erlang:statistics(scheduler_wall_time) may have + to be rewritten to take this incompatibility into + consideration. + + + OTP-14171 Application(s): crypto + + Raised minimum requeriment for OpenSSL version to + OpenSSL-9.0.8.c although we recommend a much higher + version, that is a version that is still maintained + officially by the OpenSSL project. Note that using such + an old version may restrict the crypto algorithms + supported. + + + OTP-14263 Application(s): ssh + + Removed the option public_key_alg which was deprecated + in 18.2. Use pref_public_key_algs instead. + + + OTP-14264 Application(s): ssh + + The ssh application is refactored regarding daemon + starting. The resolution of contradicting Host argument + and ip option were not described. There were also + strange corner cases when the 'any' value was used in + Host argument or ip option. This is (hopefully) + resolved now, but it may cause incompatibilities for + code using both Host and the ip option. The value + 'loopback' has been added for a correct way of naming + those addresses. + + + OTP-14272 Application(s): erts, otp + + The non-smp emulators have been deprecated and are + scheduled for removal in OTP-21. + + In preperations for this, the threaded non-smp emulator + is no longer built by default and has to be enabled + using the --enable-plain-emulator to configure. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14531 Application(s): stdlib + + The state machine engine gen_statem can now handle + generic time-outs (multiple named) as well as absolute + time-out time. See the documentation. + + The gen_statem callback Module:init/1 has become + mandatory to harmonize with other gen_* modules. This + may be an incompatibility for gen_statem callback + modules that use gen_statem:enter_loop/4-6. + + + --------------------------------------------------------------------- + --- asn1-5.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + --- Improvements and New Features --- + + OTP-13961 Application(s): asn1 + + The error tuple returned from the encode and decode + functions will now include the stack backtrace to make + it easier to understand what went wrong. + + + OTP-14146 Application(s): asn1 + + *** POTENTIAL INCOMPATIBILITY *** + + The deprecated module asn1rt has been removed. The + deprecated functions asn1ct:encode/3 and + asn1ct:decode/3 have been removed. The undocumented + function asn1ct:encode/2 has been removed. + + + OTP-14219 Application(s): asn1 + + *** HIGHLIGHT *** + + The new 'maps' option changes the representation of the + types SEQUENCE and SET to be maps (instead of records). + + + --------------------------------------------------------------------- + --- common_test-1.15 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14332 Application(s): common_test + Related Id(s): seq13299 + + Errors in the documentation for user HTML stylesheets + have been corrected. + + + --- Improvements and New Features --- + + OTP-13806 Application(s): common_test + + The ct_slave modules now handle nodenames in the same + way as nodenames passed to -sname. That means + ct_slave:start('[email protected]'). will now work. + + + OTP-14179 Application(s): common_test + + Added the new option, keep_logs. If setting the value + for this option to an integer, N, common_test will + remove all ct_run.* directories in the current log + directory, except the N newest. + + + --------------------------------------------------------------------- + --- compiler-7.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13690 Application(s): compiler, stdlib + + For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard + BIF as filter in a list comprehension was not allowed. + + + --- Improvements and New Features --- + + OTP-12148 Application(s): compiler, erts + + Optimized test for tuples with an atom as first + element. + + + OTP-13794 Application(s): compiler + + Compilation of modules with huge literal binary strings + is now much faster. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13856 Application(s): compiler + + The undocumented and unsupported module sys_pre_expand + has been removed. As a partical replacement for the + functionality, there is a new function + erl_internal:add_predefined_functions/1 and + erl_expand_records will now add a module prefix to + calls to BIFs and imported functions. + + + OTP-13924 Application(s): compiler + + The internal compiler passes now start all generated + variables with "@" to avoid any conflicts with + variables in languages such as Elixir or LFE. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14042 Application(s): compiler + + Code generation for complicated guards have been + improved. + + + OTP-14058 Application(s): compiler + + The compiler has new warnings for repeated identical + map keys. + + A map expression such as, + + #{'a' => 1, 'b' => 2, 'a' => 3}. + + will produce a warning for the repeated key 'a'. + + + OTP-14071 Application(s): compiler, stdlib + + By default, there will now be a warning when export_all + is used. The warning can be disabled using + nowarn_export_all. + + + OTP-14072 Application(s): compiler + + Optimize maps pattern matching by only examining the + common keys in each clause first instead of all keys. + This will reduce the number of lookups of each key in + maps pattern matching. + + + OTP-14087 Application(s): compiler + + There is a new 'deterministc' option to omit 'source' + and 'options' tuples in the BEAM file. + + + OTP-14125 Application(s): compiler, dialyzer + Related Id(s): ERL-308 + + Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster. + + + OTP-14178 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14221 Application(s): compiler + + compile:file/2 now accepts the option extra_chunks to + include extra chunks in the BEAM file. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + --------------------------------------------------------------------- + --- cosProperty-1.2.2 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14006 Application(s): cosProperty, orber + + Fix dialyzer warnings in Orber and CosProperty. + + + --------------------------------------------------------------------- + --- crypto-4.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14247 Application(s): crypto + + LibreSSL can now be used by the modernized crypto app. + + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + --- Improvements and New Features --- + + OTP-13779 Application(s): crypto + Related Id(s): ERL-82, PR-1138 + + Add basic support for CMAC + + + OTP-13873 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + Removed functions deprecated in crypto-3.0 first + released in OTP-R16B01 + + + OTP-13900 Application(s): crypto + + *** HIGHLIGHT *** + + The crypto application now supports OpenSSL 1.1. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + *** HIGHLIGHT *** + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14092 Application(s): crypto + Related Id(s): PR-1291 + + Crypto chacha20-poly1305 as in RFC 7539 enabled for + OpenSSL >= 1.1. + + Thanks to mururu. + + + OTP-14140 Application(s): crypto + Related Id(s): ERL-165, PR-1299 + + RSA key generation added to crypto:generate_key/2. + Thanks to wiml. + + An interface is also added to + public_key:generate_key/1. + + + OTP-14171 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + Raised minimum requeriment for OpenSSL version to + OpenSSL-9.0.8.c although we recommend a much higher + version, that is a version that is still maintained + officially by the OpenSSL project. Note that using such + an old version may restrict the crypto algorithms + supported. + + + OTP-14274 Application(s): crypto + + Deprecate crypto:rand_uniform/2 as it is not + cryptographically strong + + + OTP-14317 Application(s): crypto, stdlib + Related Id(s): PR-1372 + + The Crypto application now supports generation of + cryptographically strong random numbers (floats < 1.0 + and integer arbitrary ranges) as a plugin to the 'rand' + module. + + + --------------------------------------------------------------------- + --- debugger-4.2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14296 Application(s): debugger, stdlib + + The Erlang shell, qlc:string_to_handle(), and the + Debugger (the Evaluator area and Edit variable window + of the Bindings area) can parse pids, ports, + references, and external funs, as long as they can be + created in the running system. + + + OTP-14318 Application(s): debugger + + Fix editing of simple binary values in the Bindings + area of the Debugger's Attach Process Window. + + + --- Improvements and New Features --- + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + --------------------------------------------------------------------- + --- dialyzer-3.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14125 Application(s): compiler, dialyzer + Related Id(s): ERL-308 + + Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster. + + + OTP-14127 Application(s): dialyzer + + The peak memory consumption is reduced. + + + OTP-14336 Application(s): dialyzer, otp + + TypEr has been removed as separate application and is + now a part of the Dialyzer application. Documentation + for TypEr has been added in the Dialyzer application. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + --------------------------------------------------------------------- + --- diameter-1.12.3 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14387 Application(s): diameter, inets, megaco + + Typos have been fixed. + + + --- Improvements and New Features --- + + OTP-14389 Application(s): diameter + + The usage of module erl_anno is corrected. + + + --------------------------------------------------------------------- + --- edoc-0.9 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14277 Application(s): edoc + + To support stable builds, edoc no longer includes time + stamps in the footer for generated files. + + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + --------------------------------------------------------------------- + --- erl_docgen-0.7 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14333 Application(s): erl_docgen + Related Id(s): ERL-393 + + Sort index of C functions alphabetically in the + sidebar. + + + --- Improvements and New Features --- + + OTP-14371 Application(s): erl_docgen + Related Id(s): PR-1215 + + Improvements in the OTP documentation style. + + (Thanks to Mariano Guerra) + + + --------------------------------------------------------------------- + --- erl_interface-3.10 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14310 Application(s): erl_interface, kernel + + Fix bug where gethostname would incorrectly fail with + enametoolong on Linux. + + + --- Improvements and New Features --- + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format. The old latin1 format can still be decoded but + is never generated by term_to_binary or sent on a + distribution channel. The new utf8 format for atoms was + introduced in OTP R16. An OTP 20 node can therefore not + connect to nodes older than R16. + + + --------------------------------------------------------------------- + --- erts-9.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13968 Application(s): erts + + Fix various bugs regarding loading, upgrade and purge + of HiPE compiled code: + + -- The native code memory for a purged module was never + deallocated. + + -- Wrong functions could in some cases be called after + a module upgrade. + + -- erlang:check_process_code did not check for + recursive calls made from native code. + + + OTP-14238 Application(s): erts, hipe + + Hipe optional LLVM backend does require LLVM version + 3.9 or later as older versions forced strong + dependencies on erts internals structures. + + + OTP-14303 Application(s): erts + + Slogans in crash dumps have been extended to print more + complex terms. + + + OTP-14304 Application(s): erts + + Fixed bug when using enif_inspect_binary in combination + with enif_copy. In some circumstances the inspected + binary could be realloced by the enif_copy call when it + shouldn't have been. + + + OTP-14307 Application(s): erts + Related Id(s): PR-1379 + + Use -fno-PIE for Gentoo Hardened and others that don't + accept linker flag -no-pie. + + + OTP-14314 Application(s): erts + Related Id(s): ERL-369, PR-1394 + + Disable hipe for ppc64le architecture (little endian) + as it is not, and has never been, supported. It was + earlier equated with ppc64 (big endian) which lead to + broken build without --disable-hipe. + + + OTP-14324 Application(s): erts + + Fix 'epmd -kill' to return a failure exit status code + if epmd was not killed because of some error. + + + OTP-14335 Application(s): erts + + Fixed the following dirty scheduler related bugs: + + -- the +SDPcpu command line argument could cause the + amount of dirty CPU schedulers to be set to zero + + -- erlang:system_flag(multi_scheduling, _) failed when + only one normal scheduler was used together with dirty + scheduler support + + + OTP-14352 Application(s): erts + + Fix erlexec to handle mismatch in sysconf and proc fs + when figuring out the cpu topology. This behaviour has + been seen when using docker together with + --cpuset-cpus. + + + OTP-14360 Application(s): erts + Related Id(s): ERL-401, PR-1417 + + Fixed memory segment cache used for multiblock + carriers. Huge (> 2GB) memory segments could cause a VM + crash. Creation of such huge memory segments used for + multiblock carriers is however very uncommon. + + + --- Improvements and New Features --- + + OTP-11695 Application(s): erts + + Added erlang:garbage_collect/2 that takes an option + list as the last argument that can be used to control + whether a minor or a major garbage collection is to be + done. Doing a minor collection only collects terms that + have recently died, but is cheaper than a mjor + collection. + + + OTP-12148 Application(s): compiler, erts + + Optimized test for tuples with an atom as first + element. + + + OTP-13529 Application(s): erts + + Erlang literals are no longer copied during process to + process messaging. + + + OTP-13684 Application(s): erts + + Add support in the erl_nif API for asynchronous message + notifications when sockets or other file descriptors + are ready to accept read or write operations. The + following functions have been added: + + -- enif_select + + -- enif_monitor_process + + -- enif_demonitor_process + + -- enif_compare_monitors + + -- enif_open_resource_type_x + + + OTP-13692 Application(s): erts, stdlib + + There are two new guard BIFs 'floor/1' and 'ceil/1'. + They both return integers. In the 'math' module, there + are two new BIFs with the same names that return + floating point values. + + + OTP-13827 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Remove deprecated erlang:hash/2. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13842 Application(s): erts + + Added support in zlib for extraction of the inflation + dictionary. + + + OTP-13844 Application(s): erts + Related Id(s): OTP-13833 + + *** POTENTIAL INCOMPATIBILITY *** + + The previously used purge strategy has been removed. + The optional purge strategy introduced in ERTS version + 8.1 is now the only strategy available. + + The new purge strategy is slightly incompatible with + the old strategy. Previously processes holding funs + that referred to the module being purged either failed + a soft purge, or was killed during a hard purge. The + new strategy completely ignores funs. If funs referring + to the code being purged exist, and are used after a + purge, an exception will be raised upon usage. That is, + the behavior will be exactly the same as the case when + a fun is received by a process after the purge. + + For more information see the documentation of + erlang:check_process_code/3. + + + OTP-13860 Application(s): erts + + Dirty schedulers are now enabled by default when the + runtime system is built with SMP support. + + + OTP-13903 Application(s): erts + + Improved ETS lookup/insert/delete speed for large set, + bag and duplicate_bag by a significant reduction of the + hash load factor. This speed improvement comes at the + expense of less than one word per table entry. Tables + with less than 256 entries are not affected at all. + + + OTP-13908 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The NIF library reload feature is not supported + anymore. It has been marked as deprecated since OTP + R15B. This means that you are only allowed to do one + successful call to erlang:load_nif/2 for each module + instance. A second call to erlang:load_nif/2 will + return {error, {reload, _}} even if the NIF library + imlements the reload callback. + + Runtime upgrade of a NIF library is still supported by + using the Erlang module upgrade mechanics with a + current and an old module instance existing at the same + time with their corresponding NIF libraries. + + + OTP-13976 Application(s): erts + + Add erlang:system_info(atom_count) and + erlang:system_info(atom_limit) to provide a way to + retrieve the current and maximum number of atoms. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14002 Application(s): erts + + erlang:load_nif/2 returns new error type notsup when + called for a HiPE compiled module, which is not + supported. + + + OTP-14069 Application(s): erts + + Add driver and nif lock instrumentation to lcnt + + + OTP-14149 Application(s): erts + + Reduce memory pressure by converting sub-binaries to + heap-binaries when possible. This is done during + garbage collection. + + + OTP-14152 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics(scheduler_wall_time) now also + includes information about dirty CPU schedulers. Code + using erlang:statistics(scheduler_wall_time) may have + to be rewritten to take this incompatibility into + consideration. + + + OTP-14178 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14186 Application(s): erts, kernel + + Introduce an event manager in Erlang to handle OS + signals. A subset of OS signals may be subscribed to + and those are described in the Kernel application. + + + OTP-14201 Application(s): erts + Related Id(s): PR-1293 + + The escript program now handles symbolic links to + escripts. + + This is useful for standalone systems with escripts + residing on a bin directory not included in the + execution path (as it may cause their erl program(s) to + override the desired one). Instead the escripts can be + referred to via symbolic links from a bin directory in + the path. + + + OTP-14205 Application(s): erts + + *** HIGHLIGHT *** + + All uses of the magic binary kludge has been replaced + by uses of erlang references. + + A magic binary was presented as an empty binary, but + actually referred other data internally in the Erlang + VM. Since they were presented as empty binaries, + different magic binaries compared as equal, and also + lost their internal data when passed out of an erlang + node. + + The new usage of references has not got any of these + strange semantic issues, and the usage of these + references has been optimized to give the same + performance benefits as well as memory usage benefits + as magic binaries had. + + A couple of examples of previous uses of magic binaries + are match specifications and NIF resources. + + + OTP-14272 Application(s): erts, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been deprecated and are + scheduled for removal in OTP-21. + + In preperations for this, the threaded non-smp emulator + is no longer built by default and has to be enabled + using the --enable-plain-emulator to configure. + + + OTP-14330 Application(s): erts, hipe + Related Id(s): PR-1397 + + Allow HiPE to run on VM built with --enable-m32-build. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format. The old latin1 format can still be decoded but + is never generated by term_to_binary or sent on a + distribution channel. The new utf8 format for atoms was + introduced in OTP R16. An OTP 20 node can therefore not + connect to nodes older than R16. + + + OTP-14347 Application(s): erts, stdlib + Related Id(s): PR-1412 + + Added function re:version/0 which returns information + about the OTP internal PCRE version used for + implementation of the re module. + + + OTP-14348 Application(s): erts + + Added new debug bif erlang:list_to_port/1. + + + OTP-14356 Application(s): erts + + Various improvements of timer management internally in + the VM. These improvements both reduced memory + consumption of timer wheels as well as reduce the + amount of work that has to be performed in order to + handle timers. + + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + OTP-14380 Application(s): erts + + Added the following erl command line arguments with + which you can set suggested stack for dirty schedulers: + + -- +sssdcpu -- for dirty CPU schedulers + + -- +sssdio -- for dirty IO schedulers + + The default suggested stack size for dirty schedulers + is 40 kilo words. + + + OTP-14381 Application(s): erts + + Changed erts startup program name, argv 0, to use the + environment variable ESCRIPT_NAME so that erlc, + dialyzer, typer, ct_run, or the escript name can be + seen with external programs, such as ps and htop + (depending on options), on unix. + + If environment variable ESCRIPT_NAME is not set, argv 0 + of the invoking program will be used, e.g. the name + will be erl, cerl, or the soft link name. + + + OTP-14384 Application(s): erts + Related Id(s): OTP-14201 + + Improvements of escript documentation. + + + OTP-14385 Application(s): erts + Related Id(s): PR-1413 + + Add function enif_hash for NIFs to calculate hash + values of arbitrary terms. + + + --------------------------------------------------------------------- + --- eunit-2.3.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14287 Application(s): eunit + + The surefire reports from eunit will no longer have + names with embedded double quotes. + + + --------------------------------------------------------------------- + --- hipe-3.16 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13862 Application(s): hipe + Related Id(s): PR-1154 + + Fix hipe compiler flags o0 and o1 that have previously + been ignored by mistake. + + + OTP-13983 Application(s): hipe + + Fix LLVM backend to not convert all remote calls to own + module, like ?MODULE:foo(), into local calls. + + + OTP-14238 Application(s): erts, hipe + + Hipe optional LLVM backend does require LLVM version + 3.9 or later as older versions forced strong + dependencies on erts internals structures. + + + OTP-14302 Application(s): hipe + Related Id(s): ERL-376, PR-1386 + + Fix a bug that has been seen causing failed loading of + hipe compiled modules on NetBSD due to unaligned data + pointers. + + + OTP-14306 Application(s): hipe + Related Id(s): ERL-278, PR-1392 + + Fix miscompilation bug in hipe that could cause wrong + function clause to be called from non-tail calls, where + the return value is unused, if the right function + clause is only reachable from those non-tail calls. + + + --- Improvements and New Features --- + + OTP-13810 Application(s): hipe + Related Id(s): PR-1124 + + Improve hipe compilation time for large functions. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13879 Application(s): hipe + + Speed up hipe compile time register allocation for + larger function. + + + OTP-14261 Application(s): hipe + Related Id(s): PR-1360 + + Various code generation improvements. + + + OTP-14293 Application(s): hipe + Related Id(s): PR-1380 + + Improve hipe compiler to generate code with better CPU + register utilization at runtime by the use of 'Live + Range Splitting' techniques. + + + OTP-14330 Application(s): erts, hipe + Related Id(s): PR-1397 + + Allow HiPE to run on VM built with --enable-m32-build. + + + --------------------------------------------------------------------- + --- inets-6.3.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14387 Application(s): diameter, inets, megaco + + Typos have been fixed. + + + --------------------------------------------------------------------- + --- jinterface-1.8 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format. The old latin1 format can still be decoded but + is never generated by term_to_binary or sent on a + distribution channel. The new utf8 format for atoms was + introduced in OTP R16. An OTP 20 node can therefore not + connect to nodes older than R16. + + + --------------------------------------------------------------------- + --- kernel-5.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14310 Application(s): erl_interface, kernel + + Fix bug where gethostname would incorrectly fail with + enametoolong on Linux. + + + --- Improvements and New Features --- + + OTP-13805 Application(s): kernel + + Since Unicode is now allowed in atoms an extra check is + needed for node names, which are restricted to Latin-1. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13909 Application(s): kernel + + file:write_file(Name, Data, [raw]) would turn Data into + a single binary before writing. This meant it could not + take advantage of the writev() system call if it was + given a list of binaries and told to write with raw + mode. + + + OTP-14057 Application(s): kernel + Related Id(s): PR-1245 + + The performance of the disk_log has been somewhat + improved in some corner cases (big items), and the + documentation has been clarified. + + + OTP-14059 Application(s): kernel, stdlib + + *** HIGHLIGHT *** + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14186 Application(s): erts, kernel + + Introduce an event manager in Erlang to handle OS + signals. A subset of OS signals may be subscribed to + and those are described in the Kernel application. + + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + --------------------------------------------------------------------- + --- megaco-3.18.2 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14387 Application(s): diameter, inets, megaco + + Typos have been fixed. + + + --------------------------------------------------------------------- + --- mnesia-4.15 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14039 Application(s): mnesia + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the wrapping of select continuations in + extension plugin handling. This might require the user + to rewrite user backend plugin if used. + + + --------------------------------------------------------------------- + --- observer-2.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14137 Application(s): observer + + Show dirty-scheduler threads in performance monitor + graph and add a column with maximum allocated memory in + the Memory Allocators table. + + + OTP-14270 Application(s): observer + + Keep table and port selection after refresh of tables. + Store settings before shutdown and restore when + starting application. + + + OTP-14345 Application(s): observer + Related Id(s): ERL-399 + + When observing a node older than OTP-19.0, a pop-up + will be displayed when trying to access port + information. Earlier, observer would crash in this + situation. + + + --------------------------------------------------------------------- + --- orber-3.8.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14006 Application(s): cosProperty, orber + + Fix dialyzer warnings in Orber and CosProperty. + + + --------------------------------------------------------------------- + --- otp-20.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-13652 Application(s): otp + + The myths in the Efficiency Guide have been updated. + + + OTP-13703 Application(s): otp + + *** POTENTIAL INCOMPATIBILITY *** + + The 'gs' application has been removed. + + + OTP-14163 Application(s): otp + + Application percept is moved to a separate repository, + https://github.com/erlang/percept, and therefore + removed from the OTP repository. + + + OTP-14272 Application(s): erts, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been deprecated and are + scheduled for removal in OTP-21. + + In preperations for this, the threaded non-smp emulator + is no longer built by default and has to be enabled + using the --enable-plain-emulator to configure. + + + OTP-14336 Application(s): dialyzer, otp + + TypEr has been removed as separate application and is + now a part of the Dialyzer application. Documentation + for TypEr has been added in the Dialyzer application. + + + --------------------------------------------------------------------- + --- parsetools-2.1.5 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14276 Application(s): parsetools + Related Id(s): PR-1357 + + Minor documentation fixes + + + --- Improvements and New Features --- + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + --------------------------------------------------------------------- + --- public_key-1.4.1 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14258 Application(s): public_key + + Bug for public_key:generate_key({namedCurve,OID}) + fixed. + + + --- Improvements and New Features --- + + OTP-14111 Application(s): public_key + + Modernized internal representation used for crl + validation by use of maps. + + + OTP-14294 Application(s): public_key + + Support EC key in pkix_sign/2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.12 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + --- Improvements and New Features --- + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + --------------------------------------------------------------------- + --- sasl-3.0.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14029 Application(s): sasl + + Documented default values for the 'mod' and + 'start_phases' fields in .app files were not allowed as + actual values in a .app file. This is now corrected. + + + --------------------------------------------------------------------- + --- ssh-4.5 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-12872 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The internal handling of SSH options is re-written. + + Previously there were no checks if a client option was + given to a daemon or vice versa. This is corrected now. + If your code has e.g. a client-only option in a call to + start a daemon, the call will fail. + + + OTP-14110 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + Modernization of diffie-hellman algorithms. Removed an + outdated weak algorithm and added stronger replacements + to keep interoperability with other ssh clients and + servers. The default ordering is also adjusted. + + Retired: key-exchange diffie-hellman-group1-sha1. It is + not enabled by default, but can be enabled with the + option preferred-algorithms. + + Added: key-exchange diffie-hellman-group16-sha512, + diffie-hellman-group18-sha512 and + diffie-hellman-group14-sha256. + + + OTP-14117 Application(s): ssh + + Modernized internal representation of sftp by use of + maps. + + + OTP-14193 Application(s): ssh + + The draft-ietf-curdle-ssh-ext-info-05 and + draft-ietf-curdle-rsa-sha2-05 are (partially) + implemented. + + The extension server-sig-algs and the signature + algorithms rsa-sha2-256 and rsa-sha2-512 are + implemented. The rsa-sha2-* are not enabled by default + yet since they has a bug. Use option + preferred_algorithms with key public key to try them. + + + OTP-14243 Application(s): ssh + + Ssh:connect, ssh:shell and ssh:start_channel now accept + an IP-tuple as Host destination argument. + + + OTP-14259 Application(s): ssh + + The function ssh:daemon_info/1 now returns Host and + Profile as well as the Port info. + + + OTP-14263 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the option public_key_alg which was deprecated + in 18.2. Use pref_public_key_algs instead. + + + OTP-14264 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The ssh application is refactored regarding daemon + starting. The resolution of contradicting Host argument + and ip option were not described. There were also + strange corner cases when the 'any' value was used in + Host argument or ip option. This is (hopefully) + resolved now, but it may cause incompatibilities for + code using both Host and the ip option. The value + 'loopback' has been added for a correct way of naming + those addresses. + + + OTP-14267 Application(s): ssh + Related Id(s): OTP-14266 + + The supervisor code is refactored. The naming of + listening IP-Port-Profile tripples are slightly changed + to improve consistency in strange corner cases as + resolved by OTP-14264 + + + OTP-14312 Application(s): ssh + + The idle_time option can now be used in daemons. + + + --------------------------------------------------------------------- + --- ssl-8.2 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-13820 Application(s): ssl + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + *** HIGHLIGHT *** + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14076 Application(s): ssl + + Implemented DTLS cookie generation, requiered by spec, + instead of using hardcode value. + + + OTP-14291 Application(s): ssl + + *** HIGHLIGHT *** + + Extend connection_information/[1,2] . The values + session_id, master_secret, client_random and + server_random can no be accessed by + connection_information/2. Note only session_id will be + added to connection_information/1. The rational is that + values concerning the connection security should have + to be explicitly requested. + + + OTP-14382 Application(s): ssl + + Chacha cipher suites are currently not tested enough to + be most prefered ones + + + OTP-14388 Application(s): ssl + + *** HIGHLIGHT *** + + Basic support for DTLS that been tested together with + OpenSSL. + + Test by providing the option {protocol, dtls} to the + ssl API functions connect and listen. + + + --------------------------------------------------------------------- + --- stdlib-3.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13690 Application(s): compiler, stdlib + + For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard + BIF as filter in a list comprehension was not allowed. + + + OTP-14295 Application(s): stdlib + Related Id(s): PR-1372 + + A new (default) pseudo-random number generator + algorithm Xoroshiro116+ has been implemented in the + rand module. + + The old algorithm implementations had a number of flaws + so they are all deprecated, but corrected versions of + two of them have been added. See the documentation. + + + OTP-14296 Application(s): debugger, stdlib + + The Erlang shell, qlc:string_to_handle(), and the + Debugger (the Evaluator area and Edit variable window + of the Bindings area) can parse pids, ports, + references, and external funs, as long as they can be + created in the running system. + + + OTP-14531 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The state machine engine gen_statem can now handle + generic time-outs (multiple named) as well as absolute + time-out time. See the documentation. + + The gen_statem callback Module:init/1 has become + mandatory to harmonize with other gen_* modules. This + may be an incompatibility for gen_statem callback + modules that use gen_statem:enter_loop/4-6. + + + --- Improvements and New Features --- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-13692 Application(s): erts, stdlib + + There are two new guard BIFs 'floor/1' and 'ceil/1'. + They both return integers. In the 'math' module, there + are two new BIFs with the same names that return + floating point values. + + + OTP-13801 Application(s): stdlib + + Making code_change, terminate and handle_info callbacks + optional in the OTP behaviours. + + + OTP-13830 Application(s): stdlib + + The support for Dets files created with Erlang/OTP R7 + and earlier is removed. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14001 Application(s): stdlib + + The EXIT signals received from processes using proc_lib + now looks like EXIT signals from processes that were + spawned using spawn_link. In particular, that means + that the stack trace is now included in the EXIT signal + so that it can see where the process crashed. + + + OTP-14035 Application(s): stdlib + + sets:add_element/2 is faster when adding an element + that is already present, and sets:del_element/2 is + faster when the element to be deleted is not present. + This optimization can make certain operations, such as + sets:union/2 with many overlapping elements, up to two + orders of magnitude faster. + + + OTP-14037 Application(s): stdlib + Related Id(s): PR-1233 + + Add information in doc about supervisor shutdown reason + when maximum restart frequency is reached. + + + OTP-14038 Application(s): stdlib + Related Id(s): PR-1235 + + Added rand:jump/[0|1] functions. + + + OTP-14059 Application(s): kernel, stdlib + + *** HIGHLIGHT *** + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14066 Application(s): stdlib + + Each assert macro in assert.hrl now has a corresponding + version with an extra argument, for adding comments to + assertions. These can for example be printed as part of + error reports, to clarify the meaning of the check that + failed. + + + OTP-14068 Application(s): stdlib + + error_logger_tty_h and error_logger_file_h now inserts + the node information for nonlocal messages before the + message itself instead of after, both for readability + and so as not to change the line termination property + at the end of the message. + + + OTP-14070 Application(s): stdlib + Related Id(s): PR-1214 + + The Erlang code linter checks for badly formed type + constraints. + + + OTP-14071 Application(s): compiler, stdlib + + By default, there will now be a warning when export_all + is used. The warning can be disabled using + nowarn_export_all. + + + OTP-14089 Application(s): stdlib + + When a gen_server process crashes, the stacktrace for + the client will be printed to facilitate debugging. + + + OTP-14094 Application(s): stdlib + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + + OTP-14102 Application(s): stdlib + + take/2 has been added to dict, orddict, and gb_trees. + take_any/2 has been added to gb_trees. + + + OTP-14123 Application(s): stdlib + + Extend gen_event API to handle options as well. + + + OTP-14168 Application(s): stdlib + Related Id(s): PR-1289 + + Advice on how to tune the supervisor restart frequency + (intensity and period) is added to System Documentation + - Design Principles - Supervisor Behaviour. + + + OTP-14183 Application(s): stdlib + + *** HIGHLIGHT *** + + Replace gen_fsm with gen_statem + + + OTP-14190 Application(s): stdlib + + The shell functions c/1 and c/2 have been extended so + that if the argument is a module name instead of a file + name, it automatically locates the .beam file and the + corresponding source file, and then recompiles the + module using the same compiler options (plus any + options passed to c/2). If compilation fails, the old + beam file is preserved. Also adds c(Mod, Opts, Filter), + where the Filter argument allows you to remove old + compiler options before the new options are added. + + New utility functions file_find/2/3 and + find_source/1/2/3 have been added to filelib. + + + OTP-14226 Application(s): stdlib + + *** HIGHLIGHT *** + + erl_tar in previous versions of OTP only supports the + USTAR format. That limited path names to at most 255 + bytes, and did not support Unicode characters in names + in a portable way. + + erl_tar now has support for reading tar archives in the + formats currently in common use, such as v7, STAR, + USTAR, PAX, and GNU tar's extensions to the STAR/USTAR + format. When writing tar archives, erl_tar can now + write them in the PAX format if necessary (for example, + to support very long filenames or filenames with + Unicode characters). If possible, erl_tar will still + write tar archives in the USTAR for maximum + portability. + + + OTP-14245 Application(s): stdlib + + base64:mime_decode/1 has been optimized so that it is + now almost as fast asbase64:decode/1; it used be + noticably slower. + + + OTP-14278 Application(s): stdlib + + erl_tar will now strip any leading '/' from pathnames + when extracting files from a tar archive and write a + message to the error logger. There is also new check + for directory traversal attacks; if a relative path + points above the current working directory the + extraction will be aborted. + + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + OTP-14317 Application(s): crypto, stdlib + Related Id(s): PR-1372 + + The Crypto application now supports generation of + cryptographically strong random numbers (floats < 1.0 + and integer arbitrary ranges) as a plugin to the 'rand' + module. + + + OTP-14319 Application(s): stdlib + Related Id(s): PR-1076 + + *** HIGHLIGHT *** + + Add new function ets:select_replace/2 which performs + atomic "compare-and-swap" operations for ETS objects + using match specifications. + + + OTP-14323 Application(s): stdlib + + The Erlang code linter checks for bad dialyzer + attributes. + + + OTP-14328 Application(s): stdlib + Related Id(s): PR-1382 + + Two new functions has been implemented in the rand + module; normal/2 and normal_s/3, that both produce + normal distribution (pseudo) random numbers with mean + value and variance according to arguments. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14347 Application(s): erts, stdlib + Related Id(s): PR-1412 + + Added function re:version/0 which returns information + about the OTP internal PCRE version used for + implementation of the re module. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.2 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + --------------------------------------------------------------------- + --- tools-2.10 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14339 Application(s): tools + Related Id(s): ERL-395 + + In some situations, make:all() and friends did not + detect changes in include files located in the current + directory. This is now corrected. + + + --- Improvements and New Features --- + + OTP-14253 Application(s): tools + + The make module now accepts the {emake,Emake} option. + + + --------------------------------------------------------------------- + --- wx-1.8.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14289 Application(s): wx + + Fix a livelock that could be caused by wx:batch/1. + + + --------------------------------------------------------------------- + --- xmerl-1.3.14 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14377 Application(s): xmerl + Related Id(s): PR-1369 + + Improves accumulator fun in xmerl_scan so that only one + #xmlText record is returned for strings which have + character references. + + (Thanks to Jimmy Zöger) + + diff --git a/release-notes/OTP-20.0-rc2.README.txt b/release-notes/OTP-20.0-rc2.README.txt new file mode 100644 index 0000000..a69556e --- /dev/null +++ b/release-notes/OTP-20.0-rc2.README.txt @@ -0,0 +1,2799 @@ +--------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** POTENTIAL INCOMPATIBILITY *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-13820 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13900 Application(s): crypto + + The crypto application now supports OpenSSL 1.1. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14059 Application(s): kernel, stdlib + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14094 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + + OTP-14152 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics/1 with arguments inspecting scheduler + and run queue states have been changed due to the dirty + scheduler support. Code using this functionality may + have to be rewritten taking these incompatibilities + into consideration. Examples of such uses are calls to + erlang:statistics(scheduler_wall_time), + statistics(total_run_queue_lengths), + statistics(total_active_tasks), etc. + + + OTP-14178 Application(s): compiler, erts + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14183 Application(s): stdlib + + gen_fsm is deprecated and is replaced by gen_statem, + however for backwards compatibility reasons gen_fsm may + continue to exist as an undocumented feature for quite + some time. + + + OTP-14197 Application(s): ssl + + TLS client processes will by default call + public_key:pkix_verify_hostname/2 to verify the + hostname of the connection with the server certifcates + specified hostname during certificate path validation. + The user may explicitly disables it. Also if the + hostname can not be derived from the first argument to + connnect or is not supplied by the server name + indication option, the check will not be performed. + + + OTP-14205 Application(s): erts + + All uses of the magic binary kludge has been replaced + by uses of erlang references. + + A magic binary was presented as an empty binary, but + actually referred other data internally in the Erlang + VM. Since they were presented as empty binaries, + different magic binaries compared as equal, and also + lost their internal data when passed out of an erlang + node. + + The new usage of references has not got any of these + strange semantic issues, and the usage of these + references has been optimized to give the same + performance benefits as well as memory usage benefits + as magic binaries had. + + A couple of examples of previous uses of magic binaries + are match specifications and NIF resources. + + + OTP-14219 Application(s): asn1 + + The new 'maps' option changes the representation of the + types SEQUENCE and SET to be maps (instead of records). + + + OTP-14226 Application(s): stdlib + + erl_tar in previous versions of OTP only supports the + USTAR format. That limited path names to at most 255 + bytes, and did not support Unicode characters in names + in a portable way. + + erl_tar now has support for reading tar archives in the + formats currently in common use, such as v7, STAR, + USTAR, PAX, and GNU tar's extensions to the STAR/USTAR + format. When writing tar archives, erl_tar can now + write them in the PAX format if necessary (for example, + to support very long filenames or filenames with + Unicode characters). If possible, erl_tar will still + write tar archives in the USTAR for maximum + portability. + + + OTP-14291 Application(s): ssl + + Extend connection_information/[1,2] . The values + session_id, master_secret, client_random and + server_random can no be accessed by + connection_information/2. Note only session_id will be + added to connection_information/1. The rational is that + values concerning the connection security should have + to be explicitly requested. + + + OTP-14319 Application(s): stdlib + Related Id(s): PR-1076 + + Add new function ets:select_replace/2 which performs + atomic "compare-and-swap" operations for ETS objects + using match specifications. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14356 Application(s): erts + + Various improvements of timer management internally in + the VM. These improvements both reduced memory + consumption of timer wheels as well as reduce the + amount of work that has to be performed in order to + handle timers. + + + OTP-14388 Application(s): ssl + + Basic support for DTLS that been tested together with + OpenSSL. + + Test by providing the option {protocol, dtls} to the + ssl API functions connect and listen. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** HIGHLIGHT *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-12872 Application(s): ssh + + The internal handling of SSH options is re-written. + + Previously there were no checks if a client option was + given to a daemon or vice versa. This is corrected now. + If your code has e.g. a client-only option in a call to + start a daemon, the call will fail. + + + OTP-13703 Application(s): otp + + The 'gs' application has been removed. + + + OTP-13820 Application(s): ssl + + *** HIGHLIGHT *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13827 Application(s): erts + + Remove deprecated erlang:hash/2. + + + OTP-13844 Application(s): erts + Related Id(s): OTP-13833 + + The previously used purge strategy has been removed. + The optional purge strategy introduced in ERTS version + 8.1 is now the only strategy available. + + The new purge strategy is slightly incompatible with + the old strategy. Previously processes holding funs + that referred to the module being purged either failed + a soft purge, or was killed during a hard purge. The + new strategy completely ignores funs. If funs referring + to the code being purged exist, and are used after a + purge, an exception will be raised upon usage. That is, + the behavior will be exactly the same as the case when + a fun is received by a process after the purge. + + For more information see the documentation of + erlang:check_process_code/3. + + + OTP-13873 Application(s): crypto + + Removed functions deprecated in crypto-3.0 first + released in OTP-R16B01 + + + OTP-13908 Application(s): erts + + The NIF library reload feature is not supported + anymore. It has been marked as deprecated since OTP + R15B. This means that you are only allowed to do one + successful call to erlang:load_nif/2 for each module + instance. A second call to erlang:load_nif/2 will + return {error, {reload, _}} even if the NIF library + imlements the reload callback. + + Runtime upgrade of a NIF library is still supported by + using the Erlang module upgrade mechanics with a + current and an old module instance existing at the same + time with their corresponding NIF libraries. + + + OTP-14039 Application(s): mnesia + + Removed the wrapping of select continuations in + extension plugin handling. This might require the user + to rewrite user backend plugin if used. + + + OTP-14094 Application(s): stdlib + + *** HIGHLIGHT *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + + OTP-14110 Application(s): ssh + + Modernization of key exchange algorithms. See + draft-ietf-curdle-ssh-kex-sha2 for a discussion. + + Removed an outdated weak algorithm and added stronger + replacements to keep interoperability with other modern + ssh clients and servers. The default ordering of the + algorithms is also adjusted. + + Retired: The nowadays unsecure key-exchange + diffie-hellman-group1-sha1 is not enabled by default, + but can be enabled with the option + preferred-algorithms. + + Added: The new stronger key-exchange + diffie-hellman-group16-sha512, + diffie-hellman-group18-sha512 and + diffie-hellman-group14-sha256 are added and enabled by + default. + + The questionable [RFC 6194] sha1-based algorithms + diffie-hellman-group-exchange-sha1 and + diffie-hellman-group14-sha1 are however still kept + enabled by default for compatibility with ancient + clients and servers that lack modern key-exchange + alternatives. When the draft-ietf-curdle-ssh-kex-sha2 + becomes an rfc, those sha1-based algorithms and + diffie-hellman-group1-sha1 will be deprecated by IETF. + They might then be removed from the default list in + Erlang/OTP. + + + OTP-14146 Application(s): asn1 + + The deprecated module asn1rt has been removed. The + deprecated functions asn1ct:encode/3 and + asn1ct:decode/3 have been removed. The undocumented + function asn1ct:encode/2 has been removed. + + + OTP-14152 Application(s): erts + + *** HIGHLIGHT *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics/1 with arguments inspecting scheduler + and run queue states have been changed due to the dirty + scheduler support. Code using this functionality may + have to be rewritten taking these incompatibilities + into consideration. Examples of such uses are calls to + erlang:statistics(scheduler_wall_time), + statistics(total_run_queue_lengths), + statistics(total_active_tasks), etc. + + + OTP-14171 Application(s): crypto + + Raised minimum requeriment for OpenSSL version to + OpenSSL-0.9.8.c although we recommend a much higher + version, that is a version that is still maintained + officially by the OpenSSL project. Note that using such + an old version may restrict the crypto algorithms + supported. + + + OTP-14263 Application(s): ssh + + Removed the option public_key_alg which was deprecated + in 18.2. Use pref_public_key_algs instead. + + + OTP-14264 Application(s): ssh + + The SSH application is refactored regarding daemon + starting. The resolution of contradicting Host argument + and ip option were not described. There were also + strange corner cases when the 'any' value was used in + Host argument or ip option. This is (hopefully) + resolved now, but it may cause incompatibilities for + code using both Host and the ip option. The value + 'loopback' has been added for a correct way of naming + those addresses. + + + OTP-14272 Application(s): erts, otp + + The non-smp emulators have been deprecated and are + scheduled for removal in OTP-21. + + In preperations for this, the threaded non-smp emulator + is no longer built by default and has to be enabled + using the --enable-plain-emulator to configure. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14531 Application(s): stdlib + + The state machine engine gen_statem can now handle + generic time-outs (multiple named) as well as absolute + time-out time. See the documentation. + + The gen_statem callback Module:init/1 has become + mandatory to harmonize with other gen_* modules. This + may be an incompatibility for gen_statem callback + modules that use gen_statem:enter_loop/4-6. + + + --------------------------------------------------------------------- + --- asn1-5.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + --- Improvements and New Features --- + + OTP-13961 Application(s): asn1 + + The error tuple returned from the encode and decode + functions will now include the stack backtrace to make + it easier to understand what went wrong. + + + OTP-14146 Application(s): asn1 + + *** POTENTIAL INCOMPATIBILITY *** + + The deprecated module asn1rt has been removed. The + deprecated functions asn1ct:encode/3 and + asn1ct:decode/3 have been removed. The undocumented + function asn1ct:encode/2 has been removed. + + + OTP-14219 Application(s): asn1 + + *** HIGHLIGHT *** + + The new 'maps' option changes the representation of the + types SEQUENCE and SET to be maps (instead of records). + + + --------------------------------------------------------------------- + --- common_test-1.15 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14332 Application(s): common_test + Related Id(s): seq13299 + + Errors in the documentation for user HTML stylesheets + have been corrected. + + + OTP-14400 Application(s): common_test, snmp, stdlib + + Internal code change: Calls to catch followed by a call + to erlang:get_stacktrace/0 has been rewritten to use + try instead of catch to make the code future-proof. + + + --- Improvements and New Features --- + + OTP-13806 Application(s): common_test + + The ct_slave modules now handle nodenames in the same + way as nodenames passed to -sname. That means + ct_slave:start('[email protected]'). will now work. + + + OTP-14179 Application(s): common_test + + Added the new option, keep_logs. If setting the value + for this option to an integer, N, common_test will + remove all ct_run.* directories in the current log + directory, except the N newest. + + + OTP-14284 Application(s): common_test + + The existing ct_netconfc:open/1,2 opens an SSH + connection with one SSH channel realizing one Netconf + session. To allow testing of multiple sessions over the + same SSH connection, the following functions are added + to ct_netconfc: + + * connect/1,2 - establish an SSH connection * + disconnect/1 - close the given SSH connection * + session/1,2,3 - open an ssh channel on the given + connection and send 'hello' to start a Netconf session + + + OTP-14415 Application(s): common_test + Related Id(s): seq13315 + + The function ct_ssh:shell/2,3 is added. + + + --------------------------------------------------------------------- + --- compiler-7.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13690 Application(s): compiler, stdlib + + For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard + BIF as filter in a list comprehension was not allowed. + + + OTP-14408 Application(s): compiler + Related Id(s): ERL-417 + + compile:forms/2 would not return the module name as + documented when one of the options 'from_core', + 'from_asm', or 'from_beam' was given. Also, the + compiler would crash if one of those options was + combined with 'native'. + + + --- Improvements and New Features --- + + OTP-12148 Application(s): compiler, erts + + Optimized test for tuples with an atom as first + element. + + + OTP-13794 Application(s): compiler + + Compilation of modules with huge literal binary strings + is now much faster. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13856 Application(s): compiler + + The undocumented and unsupported module sys_pre_expand + has been removed. As a partical replacement for the + functionality, there is a new function + erl_internal:add_predefined_functions/1 and + erl_expand_records will now add a module prefix to + calls to BIFs and imported functions. + + + OTP-13924 Application(s): compiler + + The internal compiler passes now start all generated + variables with "@" to avoid any conflicts with + variables in languages such as Elixir or LFE. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14042 Application(s): compiler + + Code generation for complicated guards have been + improved. + + + OTP-14058 Application(s): compiler + + The compiler has new warnings for repeated identical + map keys. + + A map expression such as, + + #{'a' => 1, 'b' => 2, 'a' => 3}. + + will produce a warning for the repeated key 'a'. + + + OTP-14071 Application(s): compiler, stdlib + + By default, there will now be a warning when export_all + is used. The warning can be disabled using + nowarn_export_all. + + + OTP-14072 Application(s): compiler + + Optimize maps pattern matching by only examining the + common keys in each clause first instead of all keys. + This will reduce the number of lookups of each key in + maps pattern matching. + + + OTP-14087 Application(s): compiler + + There is a new 'deterministc' option to omit 'source' + and 'options' tuples in the BEAM file. + + + OTP-14125 Application(s): compiler, dialyzer + Related Id(s): ERL-308 + + Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster. + + + OTP-14178 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14221 Application(s): compiler + + compile:file/2 now accepts the option extra_chunks to + include extra chunks in the BEAM file. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + OTP-14401 Application(s): compiler + + In a future release, erlang:get_stacktrace/0 will + probably only work when called from within a 'try' + expression (otherwise it will return []. + + To help prepare for that change, the compiler will now + by default warn if 'get_stacktrace/0' is used in a way + that will not work in the future. Note that the warning + will not be issued if 'get_stacktrace/0' is used in a + function that uses neither 'catch' nor 'try' (because + that could be a legal use if the function is called + from within a 'try'. + + + --------------------------------------------------------------------- + --- cosProperty-1.2.2 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14006 Application(s): cosProperty, orber + + Fix dialyzer warnings in Orber and CosProperty. + + + --------------------------------------------------------------------- + --- crypto-4.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14247 Application(s): crypto + + LibreSSL can now be used by the modernized crypto app. + + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + OTP-14435 Application(s): crypto + Related Id(s): OTP-14313, PR-1393, PR-1462 + + Fix a bug in aes cfb128 function introduced by the bug + fix in GitHub pull request #1393. + + + --- Improvements and New Features --- + + OTP-13779 Application(s): crypto + Related Id(s): ERL-82, PR-1138 + + Add basic support for CMAC + + + OTP-13873 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + Removed functions deprecated in crypto-3.0 first + released in OTP-R16B01 + + + OTP-13900 Application(s): crypto + + *** HIGHLIGHT *** + + The crypto application now supports OpenSSL 1.1. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + *** HIGHLIGHT *** + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14092 Application(s): crypto + Related Id(s): PR-1291 + + Crypto chacha20-poly1305 as in RFC 7539 enabled for + OpenSSL >= 1.1. + + Thanks to mururu. + + + OTP-14140 Application(s): crypto + Related Id(s): ERL-165, PR-1299 + + RSA key generation added to crypto:generate_key/2. + Thanks to wiml. + + An interface is also added to + public_key:generate_key/1. + + + OTP-14171 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + Raised minimum requeriment for OpenSSL version to + OpenSSL-0.9.8.c although we recommend a much higher + version, that is a version that is still maintained + officially by the OpenSSL project. Note that using such + an old version may restrict the crypto algorithms + supported. + + + OTP-14274 Application(s): crypto + + Deprecate crypto:rand_uniform/2 as it is not + cryptographically strong + + + OTP-14317 Application(s): crypto, stdlib + Related Id(s): PR-1372 + + The Crypto application now supports generation of + cryptographically strong random numbers (floats < 1.0 + and integer arbitrary ranges) as a plugin to the 'rand' + module. + + + OTP-14436 Application(s): crypto + Related Id(s): PR-1396 + + This replaces the hard coded test values for AES, CMAC + and GCM ciphers with the full validation set from + NIST's CAVP program. + + + --------------------------------------------------------------------- + --- debugger-4.2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14296 Application(s): debugger, stdlib + + The Erlang shell, qlc:string_to_handle(), and the + Debugger (the Evaluator area and Edit variable window + of the Bindings area) can parse pids, ports, + references, and external funs, as long as they can be + created in the running system. + + + OTP-14318 Application(s): debugger + + Fix editing of simple binary values in the Bindings + area of the Debugger's Attach Process Window. + + + --- Improvements and New Features --- + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + --------------------------------------------------------------------- + --- dialyzer-3.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14423 Application(s): dialyzer + Related Id(s): OTP-14323 + + The check of bad type variables in type declarations + was mistakingly removed in Erlang/OTP 18, and is now + re-introduced. + + + --- Improvements and New Features --- + + OTP-14125 Application(s): compiler, dialyzer + Related Id(s): ERL-308 + + Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster. + + + OTP-14127 Application(s): dialyzer + + The peak memory consumption is reduced. + + + OTP-14336 Application(s): dialyzer, otp + + TypEr has been removed as separate application and is + now a part of the Dialyzer application. Documentation + for TypEr has been added in the Dialyzer application. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + --------------------------------------------------------------------- + --- edoc-0.9 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14277 Application(s): edoc + + To support stable builds, edoc no longer includes time + stamps in the footer for generated files. + + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + --------------------------------------------------------------------- + --- erl_docgen-0.7 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14333 Application(s): erl_docgen + Related Id(s): ERL-393 + + Sort index of C functions alphabetically in the + sidebar. + + + OTP-14431 Application(s): erl_docgen + + The right side index of functions now handle functions + with same name but different arity. + + + --- Improvements and New Features --- + + OTP-14371 Application(s): erl_docgen + Related Id(s): PR-1215 + + Improvements in the OTP documentation style. + + (Thanks to Mariano Guerra) + + + --------------------------------------------------------------------- + --- erl_interface-3.10 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14310 Application(s): erl_interface, kernel + + Fix bug where gethostname would incorrectly fail with + enametoolong on Linux. + + + --- Improvements and New Features --- + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format. The old latin1 format can still be decoded but + is never generated by term_to_binary or sent on a + distribution channel. The new utf8 format for atoms was + introduced in OTP R16. An OTP 20 node can therefore not + connect to nodes older than R16. + + + --------------------------------------------------------------------- + --- erts-9.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13968 Application(s): erts + + Fix various bugs regarding loading, upgrade and purge + of HiPE compiled code: + + -- The native code memory for a purged module was never + deallocated. + + -- Wrong functions could in some cases be called after + a module upgrade. + + -- erlang:check_process_code did not check for + recursive calls made from native code. + + + OTP-14238 Application(s): erts, hipe + + Hipe optional LLVM backend does require LLVM version + 3.9 or later as older versions forced strong + dependencies on erts internals structures. + + + OTP-14255 Application(s): erts + Related Id(s): OTP-14400, OTP-14401 + + When an exception such as 'throw(HugeTerm)' was caught, + HugeTerm term would be kept in the process until the + next exception occurred, potentially increasing the + heap size for the process. That has been corrected. + + + OTP-14303 Application(s): erts + + Slogans in crash dumps have been extended to print more + complex terms. + + + OTP-14304 Application(s): erts + + Fixed bug when using enif_inspect_binary in combination + with enif_copy. In some circumstances the inspected + binary could be realloced by the enif_copy call when it + shouldn't have been. + + + OTP-14305 Application(s): erts + + The address family local (AF_UNIX / AF_LOCAL) now does + not ensure zero termination of Linux Abstract Addresses + so they can use all bytes. + + + OTP-14307 Application(s): erts + Related Id(s): PR-1379 + + Use -fno-PIE for Gentoo Hardened and others that don't + accept linker flag -no-pie. + + + OTP-14314 Application(s): erts + Related Id(s): ERL-369, PR-1394 + + Disable hipe for ppc64le architecture (little endian) + as it is not, and has never been, supported. It was + earlier equated with ppc64 (big endian) which lead to + broken build without --disable-hipe. + + + OTP-14324 Application(s): erts + + Fix 'epmd -kill' to return a failure exit status code + if epmd was not killed because of some error. + + + OTP-14335 Application(s): erts + + Fixed the following dirty scheduler related bugs: + + -- the +SDPcpu command line argument could cause the + amount of dirty CPU schedulers to be set to zero + + -- erlang:system_flag(multi_scheduling, _) failed when + only one normal scheduler was used together with dirty + scheduler support + + + OTP-14352 Application(s): erts + + Fix erlexec to handle mismatch in sysconf and proc fs + when figuring out the cpu topology. This behaviour has + been seen when using docker together with + --cpuset-cpus. + + + OTP-14360 Application(s): erts + Related Id(s): ERL-401, PR-1417 + + Fixed memory segment cache used for multiblock + carriers. Huge (> 2GB) memory segments could cause a VM + crash. Creation of such huge memory segments used for + multiblock carriers is however very uncommon. + + + OTP-14390 Application(s): erts, kernel + + Fix bug causing code:is_module_native to falsely return + true when local call trace is enabled for the module. + + + OTP-14411 Application(s): erts + + Fix emulator crash when receive tracing on a + trace_delivered message. + + + OTP-14433 Application(s): erts + + escript did not handle paths with spaces correct. + + + OTP-14437 Application(s): erts + Related Id(s): ERL-360 + + Fix erroneous lock check assertion when wx is run on + MacOS X. + + + --- Improvements and New Features --- + + OTP-11695 Application(s): erts + + Added erlang:garbage_collect/2 that takes an option + list as the last argument that can be used to control + whether a minor or a major garbage collection is to be + done. Doing a minor collection only collects terms that + have recently died, but is cheaper than a mjor + collection. + + + OTP-12148 Application(s): compiler, erts + + Optimized test for tuples with an atom as first + element. + + + OTP-13529 Application(s): erts + + Erlang literals are no longer copied during process to + process messaging. + + + OTP-13684 Application(s): erts + + Add support in the erl_nif API for asynchronous message + notifications when sockets or other file descriptors + are ready to accept read or write operations. The + following functions have been added: + + -- enif_select + + -- enif_monitor_process + + -- enif_demonitor_process + + -- enif_compare_monitors + + -- enif_open_resource_type_x + + + OTP-13692 Application(s): erts, stdlib + + There are two new guard BIFs 'floor/1' and 'ceil/1'. + They both return integers. In the 'math' module, there + are two new BIFs with the same names that return + floating point values. + + + OTP-13827 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Remove deprecated erlang:hash/2. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13842 Application(s): erts + + Added support in zlib for extraction of the inflation + dictionary. + + + OTP-13844 Application(s): erts + Related Id(s): OTP-13833 + + *** POTENTIAL INCOMPATIBILITY *** + + The previously used purge strategy has been removed. + The optional purge strategy introduced in ERTS version + 8.1 is now the only strategy available. + + The new purge strategy is slightly incompatible with + the old strategy. Previously processes holding funs + that referred to the module being purged either failed + a soft purge, or was killed during a hard purge. The + new strategy completely ignores funs. If funs referring + to the code being purged exist, and are used after a + purge, an exception will be raised upon usage. That is, + the behavior will be exactly the same as the case when + a fun is received by a process after the purge. + + For more information see the documentation of + erlang:check_process_code/3. + + + OTP-13860 Application(s): erts + + Dirty schedulers are now enabled by default when the + runtime system is built with SMP support. + + + OTP-13903 Application(s): erts + + Improved ETS lookup/insert/delete speed for large set, + bag and duplicate_bag by a significant reduction of the + hash load factor. This speed improvement comes at the + expense of less than one word per table entry. Tables + with less than 256 entries are not affected at all. + + + OTP-13908 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The NIF library reload feature is not supported + anymore. It has been marked as deprecated since OTP + R15B. This means that you are only allowed to do one + successful call to erlang:load_nif/2 for each module + instance. A second call to erlang:load_nif/2 will + return {error, {reload, _}} even if the NIF library + imlements the reload callback. + + Runtime upgrade of a NIF library is still supported by + using the Erlang module upgrade mechanics with a + current and an old module instance existing at the same + time with their corresponding NIF libraries. + + + OTP-13976 Application(s): erts + + Add erlang:system_info(atom_count) and + erlang:system_info(atom_limit) to provide a way to + retrieve the current and maximum number of atoms. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14002 Application(s): erts + + erlang:load_nif/2 returns new error type notsup when + called for a HiPE compiled module, which is not + supported. + + + OTP-14069 Application(s): erts + + Add driver and nif lock instrumentation to lcnt + + + OTP-14149 Application(s): erts + + Reduce memory pressure by converting sub-binaries to + heap-binaries when possible. This is done during + garbage collection. + + + OTP-14152 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics/1 with arguments inspecting scheduler + and run queue states have been changed due to the dirty + scheduler support. Code using this functionality may + have to be rewritten taking these incompatibilities + into consideration. Examples of such uses are calls to + erlang:statistics(scheduler_wall_time), + statistics(total_run_queue_lengths), + statistics(total_active_tasks), etc. + + + OTP-14178 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14186 Application(s): erts, kernel + + Introduce an event manager in Erlang to handle OS + signals. A subset of OS signals may be subscribed to + and those are described in the Kernel application. + + + OTP-14201 Application(s): erts + Related Id(s): PR-1293 + + The escript program now handles symbolic links to + escripts. + + This is useful for standalone systems with escripts + residing on a bin directory not included in the + execution path (as it may cause their erl program(s) to + override the desired one). Instead the escripts can be + referred to via symbolic links from a bin directory in + the path. + + + OTP-14205 Application(s): erts + + *** HIGHLIGHT *** + + All uses of the magic binary kludge has been replaced + by uses of erlang references. + + A magic binary was presented as an empty binary, but + actually referred other data internally in the Erlang + VM. Since they were presented as empty binaries, + different magic binaries compared as equal, and also + lost their internal data when passed out of an erlang + node. + + The new usage of references has not got any of these + strange semantic issues, and the usage of these + references has been optimized to give the same + performance benefits as well as memory usage benefits + as magic binaries had. + + A couple of examples of previous uses of magic binaries + are match specifications and NIF resources. + + + OTP-14272 Application(s): erts, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been deprecated and are + scheduled for removal in OTP-21. + + In preperations for this, the threaded non-smp emulator + is no longer built by default and has to be enabled + using the --enable-plain-emulator to configure. + + + OTP-14330 Application(s): erts, hipe + Related Id(s): PR-1397 + + Allow HiPE to run on VM built with --enable-m32-build. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format. The old latin1 format can still be decoded but + is never generated by term_to_binary or sent on a + distribution channel. The new utf8 format for atoms was + introduced in OTP R16. An OTP 20 node can therefore not + connect to nodes older than R16. + + + OTP-14347 Application(s): erts, stdlib + Related Id(s): PR-1412 + + Added function re:version/0 which returns information + about the OTP internal PCRE version used for + implementation of the re module. + + + OTP-14348 Application(s): erts + + Added new debug bif erlang:list_to_port/1. + + + OTP-14356 Application(s): erts + + *** HIGHLIGHT *** + + Various improvements of timer management internally in + the VM. These improvements both reduced memory + consumption of timer wheels as well as reduce the + amount of work that has to be performed in order to + handle timers. + + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + OTP-14380 Application(s): erts + + Added the following erl command line arguments with + which you can set suggested stack for dirty schedulers: + + -- +sssdcpu -- for dirty CPU schedulers + + -- +sssdio -- for dirty IO schedulers + + The default suggested stack size for dirty schedulers + is 40 kilo words. + + + OTP-14381 Application(s): erts + + Changed erts startup program name, argv 0, to use the + environment variable ESCRIPT_NAME so that erlc, + dialyzer, typer, ct_run, or the escript name can be + seen with external programs, such as ps and htop + (depending on options), on unix. + + + OTP-14384 Application(s): erts + Related Id(s): OTP-14201 + + Improvements of escript documentation. + + + OTP-14385 Application(s): erts + Related Id(s): PR-1413 + + Add function enif_hash for NIFs to calculate hash + values of arbitrary terms. + + + OTP-14407 Application(s): erts, otp + + './configure --enable-lock-counter' will enabling + building of an additional emulator that has support for + lock counting. (The option previously existed, but + would turn on lock counting in the default emulator + being built.) To start the lock-counting emulator, use + 'erl -emu_type lcnt'. + + On Windows, erl recognized the undocumented option + -debug for starting a debug-compiled emulator. That + option has been removed. Use 'erl -emu_type debug' + instead. + + + OTP-14425 Application(s): erts, kernel + + Warnings have been added to the relevant documentation + about not using un-secure distributed nodes in exposed + environments. + + + OTP-14434 Application(s): erts + + Improvement of the documentation of the environment + variable ERL_CRASH_DUMP_SECONDS as well as the default + behavior when it is not set. + + + OTP-14438 Application(s): erts + + Enabled off-heap message queue for some system + processes that might receive large amounts of messages. + + + --------------------------------------------------------------------- + --- eunit-2.3.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14287 Application(s): eunit + + The surefire reports from eunit will no longer have + names with embedded double quotes. + + + --------------------------------------------------------------------- + --- hipe-3.16 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13862 Application(s): hipe + Related Id(s): PR-1154 + + Fix hipe compiler flags o0 and o1 that have previously + been ignored by mistake. + + + OTP-13983 Application(s): hipe + + Fix LLVM backend to not convert all remote calls to own + module, like ?MODULE:foo(), into local calls. + + + OTP-14238 Application(s): erts, hipe + + Hipe optional LLVM backend does require LLVM version + 3.9 or later as older versions forced strong + dependencies on erts internals structures. + + + OTP-14302 Application(s): hipe + Related Id(s): ERL-376, PR-1386 + + Fix a bug that has been seen causing failed loading of + hipe compiled modules on NetBSD due to unaligned data + pointers. + + + OTP-14306 Application(s): hipe + Related Id(s): ERL-278, PR-1392 + + Fix miscompilation bug in hipe that could cause wrong + function clause to be called from non-tail calls, where + the return value is unused, if the right function + clause is only reachable from those non-tail calls. + + + --- Improvements and New Features --- + + OTP-13810 Application(s): hipe + Related Id(s): PR-1124 + + Improve hipe compilation time for large functions. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13879 Application(s): hipe + + Speed up hipe compile time register allocation for + larger function. + + + OTP-14261 Application(s): hipe + Related Id(s): PR-1360 + + Various code generation improvements. + + + OTP-14293 Application(s): hipe + Related Id(s): PR-1380 + + Improve hipe compiler to generate code with better CPU + register utilization at runtime by the use of 'Live + Range Splitting' techniques. + + + OTP-14330 Application(s): erts, hipe + Related Id(s): PR-1397 + + Allow HiPE to run on VM built with --enable-m32-build. + + + --------------------------------------------------------------------- + --- inets-6.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14387 Application(s): diameter, inets, megaco + + Typos have been fixed. + + + OTP-14394 Application(s): inets + + httpd_util:rfc1123_date/1 gracefully handle invalid DST + dates by returning the original time in the expected + rfc1123 format. + + + --- Improvements and New Features --- + + OTP-14404 Application(s): inets + + Add unicode binary support to http_uri functions + + + OTP-14429 Application(s): inets + + httpc - Change timeout handling so the redirects casuse + a new timer to be set. This means that a simple + redirected request could return after 2*timeout + milliseconds. + + + --------------------------------------------------------------------- + --- jinterface-1.8 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format. The old latin1 format can still be decoded but + is never generated by term_to_binary or sent on a + distribution channel. The new utf8 format for atoms was + introduced in OTP R16. An OTP 20 node can therefore not + connect to nodes older than R16. + + + --------------------------------------------------------------------- + --- kernel-5.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14310 Application(s): erl_interface, kernel + + Fix bug where gethostname would incorrectly fail with + enametoolong on Linux. + + + OTP-14390 Application(s): erts, kernel + + Fix bug causing code:is_module_native to falsely return + true when local call trace is enabled for the module. + + + OTP-14426 Application(s): kernel + + Add early reject of invalid node names from distributed + nodes. + + + --- Improvements and New Features --- + + OTP-13805 Application(s): kernel + + Since Unicode is now allowed in atoms an extra check is + needed for node names, which are restricted to Latin-1. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13909 Application(s): kernel + + file:write_file(Name, Data, [raw]) would turn Data into + a single binary before writing. This meant it could not + take advantage of the writev() system call if it was + given a list of binaries and told to write with raw + mode. + + + OTP-14057 Application(s): kernel + Related Id(s): PR-1245 + + The performance of the disk_log has been somewhat + improved in some corner cases (big items), and the + documentation has been clarified. + + + OTP-14059 Application(s): kernel, stdlib + + *** HIGHLIGHT *** + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14186 Application(s): erts, kernel + + Introduce an event manager in Erlang to handle OS + signals. A subset of OS signals may be subscribed to + and those are described in the Kernel application. + + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + OTP-14409 Application(s): kernel + Related Id(s): PR-1420 + + Added option to store shell_history on disk so that the + history can be reused between sessions. + + + OTP-14417 Application(s): kernel, stdlib + + The size of crash reports created by gen_server, + gen_statem and proc_lib is limited with aid of the + Kernel application variable error_logger_format_depth. + The purpose is to limit the size of the error_logger + process when processes with huge message queues or + states crash. + + The new function error_logger:get_format_depth/0 can be + used to retrieve the value of the Kernel application + variable error_logger_format_depth. + + + OTP-14419 Application(s): kernel + + One of the ETS tables used by the global module is + created with {read_concurrency, true} in order to + reduce contention. + + + OTP-14425 Application(s): erts, kernel + + Warnings have been added to the relevant documentation + about not using un-secure distributed nodes in exposed + environments. + + + --------------------------------------------------------------------- + --- megaco-3.18.2 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14387 Application(s): diameter, inets, megaco + + Typos have been fixed. + + + --------------------------------------------------------------------- + --- mnesia-4.15 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14039 Application(s): mnesia + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the wrapping of select continuations in + extension plugin handling. This might require the user + to rewrite user backend plugin if used. + + + --------------------------------------------------------------------- + --- observer-2.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14393 Application(s): observer + + etop had a hardcoded timeout value of 1 second when + waiting for data from a remote node. When this expired, + which could happen for instance if there were very many + processes on the remote node, etop would exit with + reason connection_lost. To overcome this problem, the + timeout is now changed to be the same as the update + interval, which is configurable. + + + --- Improvements and New Features --- + + OTP-14137 Application(s): observer + + Show dirty-scheduler threads in performance monitor + graph and add a column with maximum allocated memory in + the Memory Allocators table. + + + OTP-14270 Application(s): observer + + Keep table and port selection after refresh of tables. + Store settings before shutdown and restore when + starting application. + + + OTP-14345 Application(s): observer + Related Id(s): ERL-399 + + When observing a node older than OTP-19.0, a pop-up + will be displayed when trying to access port + information. Earlier, observer would crash in this + situation. + + + --------------------------------------------------------------------- + --- orber-3.8.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14006 Application(s): cosProperty, orber + + Fix dialyzer warnings in Orber and CosProperty. + + + OTP-14432 Application(s): orber + + Disable the SSL verify hostname for some of the orber + tests. + + + --------------------------------------------------------------------- + --- otp-20.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-13652 Application(s): otp + + The myths in the Efficiency Guide have been updated. + + + OTP-13703 Application(s): otp + + *** POTENTIAL INCOMPATIBILITY *** + + The 'gs' application has been removed. + + + OTP-14163 Application(s): otp + + Application percept is moved to a separate repository, + https://github.com/erlang/percept, and therefore + removed from the OTP repository. + + + OTP-14272 Application(s): erts, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been deprecated and are + scheduled for removal in OTP-21. + + In preperations for this, the threaded non-smp emulator + is no longer built by default and has to be enabled + using the --enable-plain-emulator to configure. + + + OTP-14336 Application(s): dialyzer, otp + + TypEr has been removed as separate application and is + now a part of the Dialyzer application. Documentation + for TypEr has been added in the Dialyzer application. + + + OTP-14407 Application(s): erts, otp + + './configure --enable-lock-counter' will enabling + building of an additional emulator that has support for + lock counting. (The option previously existed, but + would turn on lock counting in the default emulator + being built.) To start the lock-counting emulator, use + 'erl -emu_type lcnt'. + + On Windows, erl recognized the undocumented option + -debug for starting a debug-compiled emulator. That + option has been removed. Use 'erl -emu_type debug' + instead. + + + --------------------------------------------------------------------- + --- parsetools-2.1.5 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14276 Application(s): parsetools + Related Id(s): PR-1357 + + Minor documentation fixes + + + --- Improvements and New Features --- + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + --------------------------------------------------------------------- + --- public_key-1.4.1 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14258 Application(s): public_key + + Bug for public_key:generate_key({namedCurve,OID}) + fixed. + + + --- Improvements and New Features --- + + OTP-14111 Application(s): public_key + + Modernized internal representation used for crl + validation by use of maps. + + + OTP-14294 Application(s): public_key + + Support EC key in pkix_sign/2 + + + --------------------------------------------------------------------- + --- reltool-0.7.4 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14422 Application(s): reltool + Related Id(s): OTP-13830 + + The User's Guide examples are updated after removal of + support for Dets files created with Erlang/OTP R7 and + earlier. + + The examples are not correct, and will be updated + before the release of Erlang/OTP 20.0. + + + --------------------------------------------------------------------- + --- runtime_tools-1.12 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + --- Improvements and New Features --- + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + --------------------------------------------------------------------- + --- sasl-3.0.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14029 Application(s): sasl + + Documented default values for the 'mod' and + 'start_phases' fields in .app files were not allowed as + actual values in a .app file. This is now corrected. + + + --------------------------------------------------------------------- + --- snmp-5.2.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14400 Application(s): common_test, snmp, stdlib + + Internal code change: Calls to catch followed by a call + to erlang:get_stacktrace/0 has been rewritten to use + try instead of catch to make the code future-proof. + + + --------------------------------------------------------------------- + --- ssh-4.5 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-12872 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The internal handling of SSH options is re-written. + + Previously there were no checks if a client option was + given to a daemon or vice versa. This is corrected now. + If your code has e.g. a client-only option in a call to + start a daemon, the call will fail. + + + OTP-14110 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + Modernization of key exchange algorithms. See + draft-ietf-curdle-ssh-kex-sha2 for a discussion. + + Removed an outdated weak algorithm and added stronger + replacements to keep interoperability with other modern + ssh clients and servers. The default ordering of the + algorithms is also adjusted. + + Retired: The nowadays unsecure key-exchange + diffie-hellman-group1-sha1 is not enabled by default, + but can be enabled with the option + preferred-algorithms. + + Added: The new stronger key-exchange + diffie-hellman-group16-sha512, + diffie-hellman-group18-sha512 and + diffie-hellman-group14-sha256 are added and enabled by + default. + + The questionable [RFC 6194] sha1-based algorithms + diffie-hellman-group-exchange-sha1 and + diffie-hellman-group14-sha1 are however still kept + enabled by default for compatibility with ancient + clients and servers that lack modern key-exchange + alternatives. When the draft-ietf-curdle-ssh-kex-sha2 + becomes an rfc, those sha1-based algorithms and + diffie-hellman-group1-sha1 will be deprecated by IETF. + They might then be removed from the default list in + Erlang/OTP. + + + OTP-14117 Application(s): ssh + + Modernized internal representation of sftp by use of + maps. + + + OTP-14193 Application(s): ssh + + The Extension Negotiation Mechanism and the extension + server-sig-algs in draft-ietf-curdle-ssh-ext-info-05 + are implemented. + + The related draft-ietf-curdle-rsa-sha2-05 is + implemented and introduces the signature algorithms + rsa-sha2-256 and rsa-sha2-512. + + + OTP-14243 Application(s): ssh + + The functions ssh:connect, ssh:shell and + ssh:start_channel now accept an IP-tuple as Host + destination argument. + + + OTP-14259 Application(s): ssh + + The function ssh:daemon_info/1 now returns Host and + Profile as well as the Port info in the property list. + + + OTP-14263 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the option public_key_alg which was deprecated + in 18.2. Use pref_public_key_algs instead. + + + OTP-14264 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The SSH application is refactored regarding daemon + starting. The resolution of contradicting Host argument + and ip option were not described. There were also + strange corner cases when the 'any' value was used in + Host argument or ip option. This is (hopefully) + resolved now, but it may cause incompatibilities for + code using both Host and the ip option. The value + 'loopback' has been added for a correct way of naming + those addresses. + + + OTP-14267 Application(s): ssh + Related Id(s): OTP-14266 + + The supervisor code is refactored. The naming of + listening IP-Port-Profile triples are slightly changed + to improve consistency in strange corner cases as + resolved by OTP-14264 + + + OTP-14312 Application(s): ssh + + The idle_time option can now be used in daemons. + + + OTP-14361 Application(s): ssh + + Added test cases for IETF-CURDLE Extension Negotiation + (ext-info) + + + OTP-14362 Application(s): ssh + Related Id(s): OTP-14361 + + Testcases for IETF-CURDLE extension server-sig-algs + including rsa-sha2-* + + + OTP-14399 Application(s): ssh + + The option auth_methods can now also be used in clients + to select which authentication options that are used + and in which order. + + + OTP-14410 Application(s): ssh + + Checks that a ECDSA public key (ecdsa-sha2-nistp*) + stored in a file has the correct size. + + + --------------------------------------------------------------------- + --- ssl-8.2 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14421 Application(s): ssl + + ECDH-ECDSA key exchange supported, was accidently + dismissed in earlier versions. + + + --- Improvements and New Features --- + + OTP-13820 Application(s): ssl + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + *** HIGHLIGHT *** + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14076 Application(s): ssl + + Implemented DTLS cookie generation, requiered by spec, + instead of using hardcode value. + + + OTP-14077 Application(s): ssl + + Implement sliding window replay protection of DTLS + records. + + + OTP-14197 Application(s): ssl + + *** HIGHLIGHT *** + + TLS client processes will by default call + public_key:pkix_verify_hostname/2 to verify the + hostname of the connection with the server certifcates + specified hostname during certificate path validation. + The user may explicitly disables it. Also if the + hostname can not be derived from the first argument to + connnect or is not supplied by the server name + indication option, the check will not be performed. + + + OTP-14291 Application(s): ssl + + *** HIGHLIGHT *** + + Extend connection_information/[1,2] . The values + session_id, master_secret, client_random and + server_random can no be accessed by + connection_information/2. Note only session_id will be + added to connection_information/1. The rational is that + values concerning the connection security should have + to be explicitly requested. + + + OTP-14382 Application(s): ssl + + Chacha cipher suites are currently not tested enough to + be most prefered ones + + + OTP-14388 Application(s): ssl + + *** HIGHLIGHT *** + + Basic support for DTLS that been tested together with + OpenSSL. + + Test by providing the option {protocol, dtls} to the + ssl API functions connect and listen. + + + --------------------------------------------------------------------- + --- stdlib-3.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13690 Application(s): compiler, stdlib + + For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard + BIF as filter in a list comprehension was not allowed. + + + OTP-14295 Application(s): stdlib + Related Id(s): PR-1372 + + A new (default) pseudo-random number generator + algorithm Xoroshiro116+ has been implemented in the + rand module. + + The old algorithm implementations had a number of flaws + so they are all deprecated, but corrected versions of + two of them have been added. See the documentation. + + + OTP-14296 Application(s): debugger, stdlib + + The Erlang shell, qlc:string_to_handle(), and the + Debugger (the Evaluator area and Edit variable window + of the Bindings area) can parse pids, ports, + references, and external funs, as long as they can be + created in the running system. + + + OTP-14400 Application(s): common_test, snmp, stdlib + + Internal code change: Calls to catch followed by a call + to erlang:get_stacktrace/0 has been rewritten to use + try instead of catch to make the code future-proof. + + + OTP-14531 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The state machine engine gen_statem can now handle + generic time-outs (multiple named) as well as absolute + time-out time. See the documentation. + + The gen_statem callback Module:init/1 has become + mandatory to harmonize with other gen_* modules. This + may be an incompatibility for gen_statem callback + modules that use gen_statem:enter_loop/4-6. + + + --- Improvements and New Features --- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-13692 Application(s): erts, stdlib + + There are two new guard BIFs 'floor/1' and 'ceil/1'. + They both return integers. In the 'math' module, there + are two new BIFs with the same names that return + floating point values. + + + OTP-13801 Application(s): stdlib + + Making code_change, terminate and handle_info callbacks + optional in the OTP behaviours. + + + OTP-13830 Application(s): stdlib + + The support for Dets files created with Erlang/OTP R7 + and earlier is removed. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14001 Application(s): stdlib + + The EXIT signals received from processes using proc_lib + now looks like EXIT signals from processes that were + spawned using spawn_link. In particular, that means + that the stack trace is now included in the EXIT signal + so that it can see where the process crashed. + + + OTP-14035 Application(s): stdlib + + sets:add_element/2 is faster when adding an element + that is already present, and sets:del_element/2 is + faster when the element to be deleted is not present. + This optimization can make certain operations, such as + sets:union/2 with many overlapping elements, up to two + orders of magnitude faster. + + + OTP-14037 Application(s): stdlib + Related Id(s): PR-1233 + + Add information in doc about supervisor shutdown reason + when maximum restart frequency is reached. + + + OTP-14038 Application(s): stdlib + Related Id(s): PR-1235 + + Added rand:jump/[0|1] functions. + + + OTP-14059 Application(s): kernel, stdlib + + *** HIGHLIGHT *** + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14066 Application(s): stdlib + + Each assert macro in assert.hrl now has a corresponding + version with an extra argument, for adding comments to + assertions. These can for example be printed as part of + error reports, to clarify the meaning of the check that + failed. + + + OTP-14068 Application(s): stdlib + + error_logger_tty_h and error_logger_file_h now inserts + the node information for nonlocal messages before the + message itself instead of after, both for readability + and so as not to change the line termination property + at the end of the message. + + + OTP-14070 Application(s): stdlib + Related Id(s): PR-1214 + + The Erlang code linter checks for badly formed type + constraints. + + + OTP-14071 Application(s): compiler, stdlib + + By default, there will now be a warning when export_all + is used. The warning can be disabled using + nowarn_export_all. + + + OTP-14089 Application(s): stdlib + + When a gen_server process crashes, the stacktrace for + the client will be printed to facilitate debugging. + + + OTP-14094 Application(s): stdlib + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + + OTP-14102 Application(s): stdlib + + take/2 has been added to dict, orddict, and gb_trees. + take_any/2 has been added to gb_trees. + + + OTP-14123 Application(s): stdlib + + Extend gen_event API to handle options as well. + + + OTP-14168 Application(s): stdlib + Related Id(s): PR-1289 + + Advice on how to tune the supervisor restart frequency + (intensity and period) is added to System Documentation + - Design Principles - Supervisor Behaviour. + + + OTP-14183 Application(s): stdlib + + *** HIGHLIGHT *** + + gen_fsm is deprecated and is replaced by gen_statem, + however for backwards compatibility reasons gen_fsm may + continue to exist as an undocumented feature for quite + some time. + + + OTP-14190 Application(s): stdlib + + The shell functions c/1 and c/2 have been extended so + that if the argument is a module name instead of a file + name, it automatically locates the .beam file and the + corresponding source file, and then recompiles the + module using the same compiler options (plus any + options passed to c/2). If compilation fails, the old + beam file is preserved. Also adds c(Mod, Opts, Filter), + where the Filter argument allows you to remove old + compiler options before the new options are added. + + New utility functions file_find/2/3 and + find_source/1/2/3 have been added to filelib. + + + OTP-14226 Application(s): stdlib + + *** HIGHLIGHT *** + + erl_tar in previous versions of OTP only supports the + USTAR format. That limited path names to at most 255 + bytes, and did not support Unicode characters in names + in a portable way. + + erl_tar now has support for reading tar archives in the + formats currently in common use, such as v7, STAR, + USTAR, PAX, and GNU tar's extensions to the STAR/USTAR + format. When writing tar archives, erl_tar can now + write them in the PAX format if necessary (for example, + to support very long filenames or filenames with + Unicode characters). If possible, erl_tar will still + write tar archives in the USTAR for maximum + portability. + + + OTP-14245 Application(s): stdlib + + base64:mime_decode/1 has been optimized so that it is + now almost as fast asbase64:decode/1; it used be + noticably slower. + + + OTP-14278 Application(s): stdlib + + erl_tar will now strip any leading '/' from pathnames + when extracting files from a tar archive and write a + message to the error logger. There is also new check + for directory traversal attacks; if a relative path + points above the current working directory the + extraction will be aborted. + + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + OTP-14317 Application(s): crypto, stdlib + Related Id(s): PR-1372 + + The Crypto application now supports generation of + cryptographically strong random numbers (floats < 1.0 + and integer arbitrary ranges) as a plugin to the 'rand' + module. + + + OTP-14319 Application(s): stdlib + Related Id(s): PR-1076 + + *** HIGHLIGHT *** + + Add new function ets:select_replace/2 which performs + atomic "compare-and-swap" operations for ETS objects + using match specifications. + + + OTP-14323 Application(s): stdlib + + The Erlang code linter checks for bad dialyzer + attributes. It also checks for bad type variables in + type declarations. + + + OTP-14328 Application(s): stdlib + Related Id(s): PR-1382 + + Two new functions has been implemented in the rand + module; normal/2 and normal_s/3, that both produce + normal distribution (pseudo) random numbers with mean + value and variance according to arguments. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14347 Application(s): erts, stdlib + Related Id(s): PR-1412 + + Added function re:version/0 which returns information + about the OTP internal PCRE version used for + implementation of the re module. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + OTP-14405 Application(s): stdlib + + Add option hibernate_after to gen_server, gen_statem + and gen_event. Also added to the deprecated gen_fsm + behaviour. + + + OTP-14417 Application(s): kernel, stdlib + + The size of crash reports created by gen_server, + gen_statem and proc_lib is limited with aid of the + Kernel application variable error_logger_format_depth. + The purpose is to limit the size of the error_logger + process when processes with huge message queues or + states crash. + + The new function error_logger:get_format_depth/0 can be + used to retrieve the value of the Kernel application + variable error_logger_format_depth. + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.2 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14285 Application(s): debugger, edoc, parsetools, stdlib, + syntax_tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + --------------------------------------------------------------------- + --- tools-2.10 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14339 Application(s): tools + Related Id(s): ERL-395 + + In some situations, make:all() and friends did not + detect changes in include files located in the current + directory. This is now corrected. + + + --- Improvements and New Features --- + + OTP-14253 Application(s): tools + + The make module now accepts the {emake,Emake} option. + + + --------------------------------------------------------------------- + --- wx-1.8.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14289 Application(s): wx + + Fix a livelock that could be caused by wx:batch/1. + + diff --git a/release-notes/OTP-20.0.1.README.txt b/release-notes/OTP-20.0.1.README.txt new file mode 100644 index 0000000..670ca0f --- /dev/null +++ b/release-notes/OTP-20.0.1.README.txt @@ -0,0 +1,169 @@ +Patch Package: OTP 20.0.1 +Git Tag: OTP-20.0.1 +Date: 2017-07-03 +Trouble Report Id: OTP-13939, OTP-14479, OTP-14481, OTP-14482, + OTP-14484, OTP-14487, OTP-14489 +Seq num: ERIERL-40, ERL-193, ERL-438 +System: OTP +Release: 20 +Application: common_test-1.15.1, erts-9.0.1, + runtime_tools-1.12.1, stdlib-3.4.1, + tools-2.10.1 +Predecessor: OTP 20.0 + + Check out the git tag OTP-20.0.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. + + --------------------------------------------------------------------- + --- common_test-1.15.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.15.1 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14489 Application(s): common_test, stdlib, tools + Related Id(s): ERL-438 + + In OTP-20.0, the behavior of c, make, and ct_make was + changed so that in some cases the beam files by default + would be written to the directory where the source + files were found. This is now changed back to the old + behavior so beam files are by default written to + current directory. + + + Full runtime dependencies of common_test-1.15.1: 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-2.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- erts-9.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.0.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13939 Application(s): erts, kernel + Related Id(s): ERL-193 + + Fixed a bug in gen_tcp:send where it never returned + when repeatedly called on a remotely closed TCP socket. + + + OTP-14481 Application(s): erts + + Fixed segfault that could happen during cleanup of + aborted erlang:port_command/3 calls. A port_command is + aborted if the port is closed at the same time as the + port_command was issued. This bug was introduced in + erts-8.0. + + + OTP-14484 Application(s): erts + + Fixed implementation of statistics(wall_clock) and + statistics(runtime) so that values do not unnecessarily + wrap due to the emulator. Note that the values returned + by statistics(runtime) may still wrap due to + limitations in the underlying functionality provided by + the operating system. + + + Full runtime dependencies of erts-9.0.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- runtime_tools-1.12.1 -------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.12.1 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14479 Application(s): runtime_tools + + A faulty encoding comment was added when saving trace + patterns to file. This is now corrected. + + + Full runtime dependencies of runtime_tools-1.12.1: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- stdlib-3.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.4.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14482 Application(s): stdlib + Related Id(s): PR-1488 + + A bug in proc_lib:format() introduced in Erlang/OTP + 20.0 is corrected. + + + OTP-14487 Application(s): stdlib + Related Id(s): ERIERL-40 + + Fix string:len/1 to be compatible with previous + versions. + + + OTP-14489 Application(s): common_test, stdlib, tools + Related Id(s): ERL-438 + + In OTP-20.0, the behavior of c, make, and ct_make was + changed so that in some cases the beam files by default + would be written to the directory where the source + files were found. This is now changed back to the old + behavior so beam files are by default written to + current directory. + + + Full runtime dependencies of stdlib-3.4.1: compiler-5.0, crypto-3.3, + erts-9.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- tools-2.10.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The tools-2.10.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14489 Application(s): common_test, stdlib, tools + Related Id(s): ERL-438 + + In OTP-20.0, the behavior of c, make, and ct_make was + changed so that in some cases the beam files by default + would be written to the directory where the source + files were found. This is now changed back to the old + behavior so beam files are by default written to + current directory. + + + Full runtime dependencies of tools-2.10.1: compiler-5.0, erts-7.0, + kernel-3.0, runtime_tools-1.8.14, stdlib-3.1 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.0.2.README.txt b/release-notes/OTP-20.0.2.README.txt new file mode 100644 index 0000000..9be272d --- /dev/null +++ b/release-notes/OTP-20.0.2.README.txt @@ -0,0 +1,96 @@ +Patch Package: OTP 20.0.2 +Git Tag: OTP-20.0.2 +Date: 2017-07-27 +Trouble Report Id: OTP-14494, OTP-14498, OTP-14509, OTP-14514, + OTP-14519 +Seq num: ERIERL-49 +System: OTP +Release: 20 +Application: asn1-5.0.1, erts-9.0.2, kernel-5.3.1 +Predecessor: OTP 20.0.1 + + Check out the git tag OTP-20.0.2, 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. + + --------------------------------------------------------------------- + --- asn1-5.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-5.0.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14519 Application(s): asn1 + Related Id(s): ERIERL-49 + + Fixed compilation error of generated code caused by a + missing quotation of function names as part of an + external call for encoding. + + + Full runtime dependencies of asn1-5.0.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- erts-9.0.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.0.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14494 Application(s): erts + + Added missing release notes for OTP-14491 ("performance + bug in pre-allocators") which was included in + erts-9.0.1 (OTP-20.0.1). + + + OTP-14509 Application(s): erts + + Fixed a bug that prevented TCP sockets from being + closed properly on send timeouts. + + + OTP-14514 Application(s): erts + + Fixed bug in operator bxor causing erroneuos result + when one operand is a big *negative* integer with the + lowest N*W bits as zero and the other operand not + larger than N*W bits. N is an integer of 1 or larger + and W is 32 or 64 depending on word size. + + + Full runtime dependencies of erts-9.0.2: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- kernel-5.3.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-5.3.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14498 Application(s): kernel + + The documentation for the 'quiet' option in + disk_log:open/1 had an incorrect default value. + + + Full runtime dependencies of kernel-5.3.1: erts-9.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.0.3.README.txt b/release-notes/OTP-20.0.3.README.txt new file mode 100644 index 0000000..5650b9d --- /dev/null +++ b/release-notes/OTP-20.0.3.README.txt @@ -0,0 +1,104 @@ +Patch Package: OTP 20.0.3 +Git Tag: OTP-20.0.3 +Date: 2017-08-24 +Trouble Report Id: OTP-13011, OTP-14522, OTP-14524, OTP-14541 +Seq num: ERIERL-48, ERIERL-60 +System: OTP +Release: 20 +Application: asn1-5.0.2, compiler-7.1.1, erts-9.0.3, + ssh-4.5.1 +Predecessor: OTP 20.0.2 + + Check out the git tag OTP-20.0.3, 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. + + --------------------------------------------------------------------- + --- asn1-5.0.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-5.0.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13011 Application(s): asn1 + Related Id(s): ERIERL-60 + + Default values now work in extension for PER, so if you + give the atom asn1_DEFAULT instead of a value it will + become the default value. + + + Full runtime dependencies of asn1-5.0.2: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- compiler-7.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.1.1 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. + + + Full runtime dependencies of compiler-7.1.1: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- erts-9.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.0.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14524 Application(s): erts + + Binary append operations did not check for overflow, + resulting in nonsensical results when huge binaries + were appended. + + + Full runtime dependencies of erts-9.0.3: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- ssh-4.5.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.5.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14541 Application(s): ssh + Related Id(s): EIRERL-63 + + All unknown options are sent to the transport handler + regardless of type. + + + Full runtime dependencies of ssh-4.5.1: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.0.4.README.txt b/release-notes/OTP-20.0.4.README.txt new file mode 100644 index 0000000..1fd8cbf --- /dev/null +++ b/release-notes/OTP-20.0.4.README.txt @@ -0,0 +1,77 @@ +Patch Package: OTP 20.0.4 +Git Tag: OTP-20.0.4 +Date: 2017-08-25 +Trouble Report Id: OTP-14548, OTP-14554, OTP-14558 +Seq num: ERIERL-53, ERL-468 +System: OTP +Release: 20 +Application: dialyzer-3.2.1, erts-9.0.4 +Predecessor: OTP 20.0.3 + + Check out the git tag OTP-20.0.4, 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. + + --------------------------------------------------------------------- + --- dialyzer-3.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-3.2.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14558 Application(s): dialyzer + Related Id(s): ERIERL-53 + + Fix a bug where merging PLT:s could lose info. The bug + was introduced in Erlang/OTP 20.0. + + + Full runtime dependencies of dialyzer-3.2.1: compiler-7.0, erts-8.0, + hipe-3.15.4, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- erts-9.0.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.0.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14548 Application(s): erts + Related Id(s): ERL-468, OTP-11997 + + A timer internal bit-field used for storing scheduler + id was too small. As a result, VM internal timer data + structures could become inconsistent when using 1024 + schedulers on the system. Note that systems with less + than 1024 schedulers are not effected by this bug. + + This bug was introduced in ERTS version 7.0 (OTP 18.0). + + + OTP-14554 Application(s): erts + Related Id(s): ERL-468, OTP-14356 + + Automatic cleanup of a BIF timer, when the owner + process terminated, could race with the timeout of the + timer. This could cause the VM internal data structures + to become inconsistent which very likely caused a VM + crash. + + This bug was introduced in ERTS version 9.0 (OTP 20.0). + + + Full runtime dependencies of erts-9.0.4: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.0.5.README.txt b/release-notes/OTP-20.0.5.README.txt new file mode 100644 index 0000000..b946207 --- /dev/null +++ b/release-notes/OTP-20.0.5.README.txt @@ -0,0 +1,76 @@ +Patch Package: OTP 20.0.5 +Git Tag: OTP-20.0.5 +Date: 2017-09-14 +Trouble Report Id: OTP-14450, OTP-14573, OTP-14590 +Seq num: ERL-474 +System: OTP +Release: 20 +Application: erts-9.0.5, inets-6.4.1 +Predecessor: OTP 20.0.4 + + Check out the git tag OTP-20.0.5, 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. + + --------------------------------------------------------------------- + --- erts-9.0.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.0.5 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14590 Application(s): erts + Related Id(s): ERL-474 + + Fixed bug in binary_to_term and binary_to_atom that + could cause VM crash. Typically happens when the last + character of an UTF8 string is in the range 128 to 255, + but truncated to only one byte. Bug exists in + binary_to_term since ERTS version 5.10.2 (OTP_R16B01) + and binary_to_atom since ERTS version 9.0 (OTP-20.0). + + + Full runtime dependencies of erts-9.0.5: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- inets-6.4.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.4.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14573 Application(s): inets + + http_uri aligned to follow RFC 3986 and not convert "+" + to space when decoding URIs. + + + --- Improvements and New Features --- + + OTP-14450 Application(s): inets + + Added new option max_client_body_chunk to httpd server + to allow chunked delivery of PUT and POST data to + mod_esi callback. Note, new mod_esi callback + implementation is required. + + Also correct value provided by server_name environment + variable + + + Full runtime dependencies of inets-6.4.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.0.README.txt b/release-notes/OTP-20.0.README.txt new file mode 100644 index 0000000..282b230 --- /dev/null +++ b/release-notes/OTP-20.0.README.txt @@ -0,0 +1,3308 @@ +Patch Package: OTP 20.0 +Git Tag: OTP-20.0 +Date: 2017-06-21 +Trouble Report Id: OTP-10289, OTP-11695, OTP-12148, OTP-12872, + OTP-13006, OTP-13529, OTP-13684, OTP-13690, + OTP-13692, OTP-13779, OTP-13794, OTP-13801, + OTP-13805, OTP-13806, OTP-13810, OTP-13820, + OTP-13827, OTP-13830, OTP-13831, OTP-13842, + OTP-13844, OTP-13856, OTP-13860, OTP-13862, + OTP-13873, OTP-13879, OTP-13900, OTP-13903, + OTP-13908, OTP-13909, OTP-13921, OTP-13924, + OTP-13961, OTP-13968, OTP-13976, OTP-13983, + OTP-14000, OTP-14001, OTP-14002, OTP-14006, + OTP-14029, OTP-14035, OTP-14037, OTP-14038, + OTP-14039, OTP-14042, OTP-14057, OTP-14058, + OTP-14059, OTP-14066, OTP-14068, OTP-14069, + OTP-14070, OTP-14071, OTP-14072, OTP-14076, + OTP-14077, OTP-14087, OTP-14089, OTP-14092, + OTP-14094, OTP-14102, OTP-14110, OTP-14111, + OTP-14117, OTP-14123, OTP-14125, OTP-14127, + OTP-14137, OTP-14140, OTP-14146, OTP-14149, + OTP-14152, OTP-14168, OTP-14171, OTP-14178, + OTP-14179, OTP-14183, OTP-14186, OTP-14190, + OTP-14193, OTP-14197, OTP-14201, OTP-14205, + OTP-14216, OTP-14218, OTP-14219, OTP-14221, + OTP-14226, OTP-14238, OTP-14243, OTP-14245, + OTP-14247, OTP-14253, OTP-14255, OTP-14258, + OTP-14259, OTP-14261, OTP-14263, OTP-14264, + OTP-14267, OTP-14270, OTP-14272, OTP-14274, + OTP-14276, OTP-14277, OTP-14278, OTP-14284, + OTP-14285, OTP-14287, OTP-14289, OTP-14291, + OTP-14293, OTP-14294, OTP-14295, OTP-14296, + OTP-14302, OTP-14303, OTP-14304, OTP-14305, + OTP-14306, OTP-14307, OTP-14310, OTP-14312, + OTP-14314, OTP-14316, OTP-14317, OTP-14318, + OTP-14319, OTP-14323, OTP-14324, OTP-14328, + OTP-14330, OTP-14331, OTP-14332, OTP-14333, + OTP-14335, OTP-14336, OTP-14337, OTP-14338, + OTP-14339, OTP-14343, OTP-14345, OTP-14347, + OTP-14348, OTP-14352, OTP-14356, OTP-14357, + OTP-14360, OTP-14361, OTP-14362, OTP-14369, + OTP-14371, OTP-14377, OTP-14380, OTP-14381, + OTP-14382, OTP-14384, OTP-14385, OTP-14387, + OTP-14388, OTP-14390, OTP-14393, OTP-14394, + OTP-14399, OTP-14400, OTP-14401, OTP-14404, + OTP-14405, OTP-14407, OTP-14408, OTP-14409, + OTP-14410, OTP-14411, OTP-14415, OTP-14417, + OTP-14419, OTP-14421, OTP-14422, OTP-14423, + OTP-14424, OTP-14425, OTP-14426, OTP-14429, + OTP-14431, OTP-14433, OTP-14434, OTP-14435, + OTP-14436, OTP-14437, OTP-14438, OTP-14441, + OTP-14442, OTP-14443, OTP-14447, OTP-14453, + OTP-14454, OTP-14455, OTP-14531 +Seq num: ERIERL-20, ERIERL-22, ERIERL-29, ERL-165, + ERL-208, ERL-278, ERL-308, ERL-332, ERL-360, + ERL-369, ERL-376, ERL-393, ERL-395, ERL-399, + ERL-401, ERL-417, ERL-429, ERL-430, ERL-82, + seq13299, seq13315 +System: OTP +Release: 20 +Application: asn1-5.0, common_test-1.15, compiler-7.1, + cosProperty-1.2.2, crypto-4.0, + debugger-4.2.2, dialyzer-3.2, diameter-2.0, + edoc-0.9, erl_docgen-0.7, erl_interface-3.10, + erts-9.0, eunit-2.3.3, hipe-3.16, inets-6.4, + jinterface-1.8, kernel-5.3, megaco-3.18.2, + mnesia-4.15, observer-2.4, orber-3.8.3, + parsetools-2.1.5, public_key-1.4.1, + reltool-0.7.4, runtime_tools-1.12, + sasl-3.0.4, snmp-5.2.6, ssh-4.5, ssl-8.2, + stdlib-3.4, syntax_tools-2.1.2, tools-2.10, + wx-1.8.1, xmerl-1.3.15 +Predecessor: OTP + + Check out the git tag OTP-20.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** POTENTIAL INCOMPATIBILITY *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-13820 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13900 Application(s): crypto + + The crypto application now supports OpenSSL 1.1. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14059 Application(s): kernel, stdlib + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14094 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + The number of tables stored at one Erlang node *used* + to be limited. This is no longer the case (except by + memory usage). The previous default limit was about + 1400 tables and could be increased by setting the + environment variable ERL_MAX_ETS_TABLES before starting + the Erlang runtime system. This hard limit has been + removed, but it is currently useful to set the + ERL_MAX_ETS_TABLES anyway. It should be set to an + approximate of the maximum amount of tables used. This + since an internal table for named tables is sized using + this value. If large amounts of named tables are used + and ERL_MAX_ETS_TABLES hasn't been increased, the + performance of named table lookup will degrade. + + + OTP-14110 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + Modernization of key exchange algorithms. See + draft-ietf-curdle-ssh-kex-sha2 for a discussion. + + Removed an outdated weak algorithm and added stronger + replacements to keep interoperability with other modern + ssh clients and servers. The default ordering of the + algorithms is also adjusted. + + Retired: The nowadays unsecure key-exchange + diffie-hellman-group1-sha1 is not enabled by default, + but can be enabled with the option + preferred-algorithms. + + Added: The new stronger key-exchange + diffie-hellman-group16-sha512, + diffie-hellman-group18-sha512 and + diffie-hellman-group14-sha256 are added and enabled by + default. + + The questionable [RFC 6194] sha1-based algorithms + diffie-hellman-group-exchange-sha1 and + diffie-hellman-group14-sha1 are however still kept + enabled by default for compatibility with ancient + clients and servers that lack modern key-exchange + alternatives. When the draft-ietf-curdle-ssh-kex-sha2 + becomes an rfc, those sha1-based algorithms and + diffie-hellman-group1-sha1 will be deprecated by IETF. + They might then be removed from the default list in + Erlang/OTP. + + + OTP-14152 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics/1 with arguments inspecting scheduler + and run queue states have been changed due to the dirty + scheduler support. Code using this functionality may + have to be rewritten taking these incompatibilities + into consideration. Examples of such uses are calls to + erlang:statistics(scheduler_wall_time), + statistics(total_run_queue_lengths), + statistics(total_active_tasks), etc. + + + OTP-14178 Application(s): compiler, erts + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14183 Application(s): stdlib + + gen_fsm is deprecated and is replaced by gen_statem, + however for backwards compatibility reasons gen_fsm may + continue to exist as an undocumented feature for quite + some time. + + + OTP-14193 Application(s): ssh + + The Extension Negotiation Mechanism and the extension + server-sig-algs in draft-ietf-curdle-ssh-ext-info-05 + are implemented. + + The related draft-ietf-curdle-rsa-sha2-05 is + implemented and introduces the signature algorithms + rsa-sha2-256 and rsa-sha2-512. + + + OTP-14197 Application(s): ssl + + TLS client processes will by default call + public_key:pkix_verify_hostname/2 to verify the + hostname of the connection with the server certificates + specified hostname during certificate path validation. + The user may explicitly disables it. Also if the + hostname can not be derived from the first argument to + connect or is not supplied by the server name + indication option, the check will not be performed. + + + OTP-14205 Application(s): erts + + All uses of the magic binary kludge has been replaced + by uses of erlang references. + + A magic binary was presented as an empty binary, but + actually referred other data internally in the Erlang + VM. Since they were presented as empty binaries, + different magic binaries compared as equal, and also + lost their internal data when passed out of an erlang + node. + + The new usage of references has not got any of these + strange semantic issues, and the usage of these + references has been optimized to give the same + performance benefits as well as memory usage benefits + as magic binaries had. + + A couple of examples of previous uses of magic binaries + are match specifications and NIF resources. + + + OTP-14219 Application(s): asn1 + + The new 'maps' option changes the representation of the + types SEQUENCE and SET to be maps (instead of records). + + + OTP-14226 Application(s): stdlib + + erl_tar in previous versions of OTP only supports the + USTAR format. That limited path names to at most 255 + bytes, and did not support Unicode characters in names + in a portable way. + + erl_tar now has support for reading tar archives in the + formats currently in common use, such as v7, STAR, + USTAR, PAX, and GNU tar's extensions to the STAR/USTAR + format. When writing tar archives, erl_tar can now + write them in the PAX format if necessary (for example, + to support very long filenames or filenames with + Unicode characters). If possible, erl_tar will still + write tar archives in the USTAR for maximum + portability. + + + OTP-14291 Application(s): ssl + + Extend connection_information/[1,2] . The values + session_id, master_secret, client_random and + server_random can no be accessed by + connection_information/2. Note only session_id will be + added to connection_information/1. The rational is that + values concerning the connection security should have + to be explicitly requested. + + + OTP-14319 Application(s): stdlib + Related Id(s): PR-1076 + + Add new function ets:select_replace/2 which performs + atomic "compare-and-swap" operations for ETS objects + using match specifications. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14356 Application(s): erts + + Various improvements of timer management internally in + the VM. These improvements both reduced memory + consumption of timer wheels as well as reduce the + amount of work that has to be performed in order to + handle timers. + + + OTP-14388 Application(s): ssl + + Basic support for DTLS that been tested together with + OpenSSL. + + Test by providing the option {protocol, dtls} to the + ssl API functions connect and listen. + + + OTP-14407 Application(s): erts, otp + + './configure --enable-lock-counter' will enabling + building of an additional emulator that has support for + lock counting. (The option previously existed, but + would turn on lock counting in the default emulator + being built.) To start the lock-counting emulator, use + 'erl -emu_type lcnt'. + + On Windows, erl recognized the undocumented option + -debug for starting a debug-compiled emulator. That + option has been removed. Use 'erl -emu_type debug' + instead. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** HIGHLIGHT *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-12872 Application(s): ssh + + The internal handling of SSH options is re-written. + + Previously there were no checks if a client option was + given to a daemon or vice versa. This is corrected now. + If your code has e.g. a client-only option in a call to + start a daemon, the call will fail. + + + OTP-13006 Application(s): kernel + Related Id(s): ERIERL-20, ERL-429 + + Function inet:ntoa/1 has been fixed to return lowercase + letters according to RFC 5935 that has been approved + after this function was written. Previously uppercase + letters were returned so this may be a backwards + incompatible change depending on how the returned + address string is used. + + Function inet:parse_address/1 has been fixed to accept + %-suffixes on scoped addresses. The addresses does not + work yet, but gives no parse errors. + + + OTP-13820 Application(s): ssl + + *** HIGHLIGHT *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13827 Application(s): erts + + Remove deprecated erlang:hash/2. + + + OTP-13844 Application(s): erts + Related Id(s): OTP-13833 + + The previously used purge strategy has been removed. + The optional purge strategy introduced in ERTS version + 8.1 is now the only strategy available. + + The new purge strategy is slightly incompatible with + the old strategy. Previously processes holding funs + that referred to the module being purged either failed + a soft purge, or was killed during a hard purge. The + new strategy completely ignores funs. If funs referring + to the code being purged exist, and are used after a + purge, an exception will be raised upon usage. That is, + the behavior will be exactly the same as the case when + a fun is received by a process after the purge. + + For more information see the documentation of + erlang:check_process_code/3. + + + OTP-13873 Application(s): crypto + + Removed functions deprecated in crypto-3.0 first + released in OTP-R16B01 + + + OTP-13908 Application(s): erts + + The NIF library reload feature is not supported + anymore. It has been marked as deprecated since OTP + R15B. This means that you are only allowed to do one + successful call to erlang:load_nif/2 for each module + instance. A second call to erlang:load_nif/2 will + return {error, {reload, _}} even if the NIF library + implements the reload callback. + + Runtime upgrade of a NIF library is still supported by + using the Erlang module upgrade mechanics with a + current and an old module instance existing at the same + time with their corresponding NIF libraries. + + + OTP-14039 Application(s): mnesia + + Removed the wrapping of select continuations in + extension plugin handling. This might require the user + to rewrite user backend plugin if used. + + + OTP-14094 Application(s): stdlib + + *** HIGHLIGHT *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + The number of tables stored at one Erlang node *used* + to be limited. This is no longer the case (except by + memory usage). The previous default limit was about + 1400 tables and could be increased by setting the + environment variable ERL_MAX_ETS_TABLES before starting + the Erlang runtime system. This hard limit has been + removed, but it is currently useful to set the + ERL_MAX_ETS_TABLES anyway. It should be set to an + approximate of the maximum amount of tables used. This + since an internal table for named tables is sized using + this value. If large amounts of named tables are used + and ERL_MAX_ETS_TABLES hasn't been increased, the + performance of named table lookup will degrade. + + + OTP-14110 Application(s): ssh + + *** HIGHLIGHT *** + + Modernization of key exchange algorithms. See + draft-ietf-curdle-ssh-kex-sha2 for a discussion. + + Removed an outdated weak algorithm and added stronger + replacements to keep interoperability with other modern + ssh clients and servers. The default ordering of the + algorithms is also adjusted. + + Retired: The nowadays unsecure key-exchange + diffie-hellman-group1-sha1 is not enabled by default, + but can be enabled with the option + preferred-algorithms. + + Added: The new stronger key-exchange + diffie-hellman-group16-sha512, + diffie-hellman-group18-sha512 and + diffie-hellman-group14-sha256 are added and enabled by + default. + + The questionable [RFC 6194] sha1-based algorithms + diffie-hellman-group-exchange-sha1 and + diffie-hellman-group14-sha1 are however still kept + enabled by default for compatibility with ancient + clients and servers that lack modern key-exchange + alternatives. When the draft-ietf-curdle-ssh-kex-sha2 + becomes an rfc, those sha1-based algorithms and + diffie-hellman-group1-sha1 will be deprecated by IETF. + They might then be removed from the default list in + Erlang/OTP. + + + OTP-14146 Application(s): asn1 + + The deprecated module asn1rt has been removed. The + deprecated functions asn1ct:encode/3 and + asn1ct:decode/3 have been removed. The undocumented + function asn1ct:encode/2 has been removed. + + + OTP-14152 Application(s): erts + + *** HIGHLIGHT *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics/1 with arguments inspecting scheduler + and run queue states have been changed due to the dirty + scheduler support. Code using this functionality may + have to be rewritten taking these incompatibilities + into consideration. Examples of such uses are calls to + erlang:statistics(scheduler_wall_time), + statistics(total_run_queue_lengths), + statistics(total_active_tasks), etc. + + + OTP-14171 Application(s): crypto + + Raised minimum requirement for OpenSSL version to + OpenSSL-0.9.8.c although we recommend a much higher + version, that is a version that is still maintained + officially by the OpenSSL project. Note that using such + an old version may restrict the crypto algorithms + supported. + + + OTP-14263 Application(s): ssh + + Removed the option public_key_alg which was deprecated + in 18.2. Use pref_public_key_algs instead. + + + OTP-14264 Application(s): ssh + + The SSH application is refactored regarding daemon + starting. The resolution of contradicting Host argument + and ip option were not described. There were also + strange corner cases when the 'any' value was used in + Host argument or ip option. This is (hopefully) + resolved now, but it may cause incompatibilities for + code using both Host and the ip option. The value + 'loopback' has been added for a correct way of naming + those addresses. + + + OTP-14272 Application(s): erts, otp + + The non-smp emulators have been deprecated and are + scheduled for removal in OTP-21. + + In preparation for this, the threaded non-smp emulator + is no longer built by default and has to be enabled + using the --enable-plain-emulator to configure. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14343 Application(s): diameter + + Improve performance of message encode/decode and + related handling. + + Dictionaries using @custom_types or @codecs will need + to adapt the corresponding functions to accept an + additional argument that is now passed through + encode/decode, which was required to remove various + process dictionary-based workarounds that have been + used to solve problems in the past. + + + OTP-14531 Application(s): stdlib + + The state machine engine gen_statem can now handle + generic time-outs (multiple named) as well as absolute + time-out time. See the documentation. + + The gen_statem callback Module:init/1 has become + mandatory to harmonize with other gen_* modules. This + may be an incompatibility for gen_statem callback + modules that use gen_statem:enter_loop/4-6. + + + --------------------------------------------------------------------- + --- asn1-5.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + --- Improvements and New Features --- + + OTP-13961 Application(s): asn1 + + The error tuple returned from the encode and decode + functions will now include the stack backtrace to make + it easier to understand what went wrong. + + + OTP-14146 Application(s): asn1 + + *** POTENTIAL INCOMPATIBILITY *** + + The deprecated module asn1rt has been removed. The + deprecated functions asn1ct:encode/3 and + asn1ct:decode/3 have been removed. The undocumented + function asn1ct:encode/2 has been removed. + + + OTP-14219 Application(s): asn1 + + *** HIGHLIGHT *** + + The new 'maps' option changes the representation of the + types SEQUENCE and SET to be maps (instead of records). + + + Full runtime dependencies of asn1-5.0: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.15 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14332 Application(s): common_test + Related Id(s): seq13299 + + Errors in the documentation for user HTML stylesheets + have been corrected. + + + OTP-14400 Application(s): common_test, snmp, stdlib + + Internal code change: Calls to catch followed by a call + to erlang:get_stacktrace/0 has been rewritten to use + try instead of catch to make the code future-proof. + + + --- Improvements and New Features --- + + OTP-13806 Application(s): common_test + + The ct_slave modules now handle nodenames in the same + way as nodenames passed to -sname. That means + ct_slave:start('[email protected]'). will now work. + + + OTP-14179 Application(s): common_test + + Added the new option, keep_logs. If setting the value + for this option to an integer, N, common_test will + remove all ct_run.* directories in the current log + directory, except the N newest. + + + OTP-14284 Application(s): common_test + + The existing ct_netconfc:open/1,2 opens an SSH + connection with one SSH channel realizing one Netconf + session. To allow testing of multiple sessions over the + same SSH connection, the following functions are added + to ct_netconfc: + + * connect/1,2 - establish an SSH connection * + disconnect/1 - close the given SSH connection * + session/1,2,3 - open an ssh channel on the given + connection and send 'hello' to start a Netconf session + + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + OTP-14415 Application(s): common_test + Related Id(s): seq13315 + + The function ct_ssh:shell/2,3 is added. + + + Full runtime dependencies of common_test-1.15: 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-2.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13690 Application(s): compiler, stdlib + + For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard + BIF as filter in a list comprehension was not allowed. + + + OTP-14408 Application(s): compiler + Related Id(s): ERL-417 + + compile:forms/2 would not return the module name as + documented when one of the options 'from_core', + 'from_asm', or 'from_beam' was given. Also, the + compiler would crash if one of those options was + combined with 'native'. + + + --- Improvements and New Features --- + + OTP-12148 Application(s): compiler, erts + + Optimized test for tuples with an atom as first + element. + + + OTP-13794 Application(s): compiler + + Compilation of modules with huge literal binary strings + is now much faster. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13856 Application(s): compiler + + The undocumented and unsupported module sys_pre_expand + has been removed. As a partial replacement for the + functionality, there is a new function + erl_internal:add_predefined_functions/1 and + erl_expand_records will now add a module prefix to + calls to BIFs and imported functions. + + + OTP-13924 Application(s): compiler + + The internal compiler passes now start all generated + variables with "@" to avoid any conflicts with + variables in languages such as Elixir or LFE. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14042 Application(s): compiler + + Code generation for complicated guards have been + improved. + + + OTP-14058 Application(s): compiler + + The compiler has new warnings for repeated identical + map keys. + + A map expression such as, + + #{'a' => 1, 'b' => 2, 'a' => 3}. + + will produce a warning for the repeated key 'a'. + + + OTP-14071 Application(s): compiler, stdlib + + By default, there will now be a warning when export_all + is used. The warning can be disabled using + nowarn_export_all. + + + OTP-14072 Application(s): compiler + + Optimize maps pattern matching by only examining the + common keys in each clause first instead of all keys. + This will reduce the number of lookups of each key in + maps pattern matching. + + + OTP-14087 Application(s): compiler + + There is a new 'deterministic' option to omit 'source' + and 'options' tuples in the BEAM file. + + + OTP-14125 Application(s): compiler, dialyzer + Related Id(s): ERL-308 + + Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster. + + + OTP-14178 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14221 Application(s): compiler + + compile:file/2 now accepts the option extra_chunks to + include extra chunks in the BEAM file. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + OTP-14401 Application(s): compiler + + In a future release, erlang:get_stacktrace/0 will + probably only work when called from within a 'try' + expression (otherwise it will return []. + + To help prepare for that change, the compiler will now + by default warn if 'get_stacktrace/0' is used in a way + that will not work in the future. Note that the warning + will not be issued if 'get_stacktrace/0' is used in a + function that uses neither 'catch' nor 'try' (because + that could be a legal use if the function is called + from within a 'try'. + + + Full runtime dependencies of compiler-7.1: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosProperty-1.2.2 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14006 Application(s): cosProperty, orber + + Fix dialyzer warnings in Orber and CosProperty. + + + Full runtime dependencies of cosProperty-1.2.2: erts-7.0, kernel-3.0, + mnesia-4.12, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- crypto-4.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14247 Application(s): crypto + + LibreSSL can now be used by the modernized crypto app. + + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + OTP-14435 Application(s): crypto + Related Id(s): OTP-14313, PR-1393, PR-1462 + + Fix a bug in aes cfb128 function introduced by the bug + fix in GitHub pull request #1393. + + + --- Improvements and New Features --- + + OTP-13779 Application(s): crypto + Related Id(s): ERL-82, PR-1138 + + Add basic support for CMAC + + + OTP-13873 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + Removed functions deprecated in crypto-3.0 first + released in OTP-R16B01 + + + OTP-13900 Application(s): crypto + + *** HIGHLIGHT *** + + The crypto application now supports OpenSSL 1.1. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + *** HIGHLIGHT *** + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14092 Application(s): crypto + Related Id(s): PR-1291 + + Crypto chacha20-poly1305 as in RFC 7539 enabled for + OpenSSL >= 1.1. + + Thanks to mururu. + + + OTP-14140 Application(s): crypto + Related Id(s): ERL-165, PR-1299 + + RSA key generation added to crypto:generate_key/2. + Thanks to wiml. + + An interface is also added to + public_key:generate_key/1. + + + OTP-14171 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + Raised minimum requirement for OpenSSL version to + OpenSSL-0.9.8.c although we recommend a much higher + version, that is a version that is still maintained + officially by the OpenSSL project. Note that using such + an old version may restrict the crypto algorithms + supported. + + + OTP-14274 Application(s): crypto + + Deprecate crypto:rand_uniform/2 as it is not + cryptographically strong + + + OTP-14317 Application(s): crypto, stdlib + Related Id(s): PR-1372 + + The Crypto application now supports generation of + cryptographically strong random numbers (floats < 1.0 + and integer arbitrary ranges) as a plugin to the 'rand' + module. + + + OTP-14436 Application(s): crypto + Related Id(s): PR-1396 + + This replaces the hard coded test values for AES, CMAC + and GCM ciphers with the full validation set from + NIST's CAVP program. + + + Full runtime dependencies of crypto-4.0: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-4.2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14296 Application(s): debugger, stdlib + + The Erlang shell, qlc:string_to_handle(), and the + Debugger (the Evaluator area and Edit variable window + of the Bindings area) can parse pids, ports, + references, and external funs, as long as they can be + created in the running system. + + + OTP-14318 Application(s): debugger + + Fix editing of simple binary values in the Bindings + area of the Debugger's Attach Process Window. + + + --- Improvements and New Features --- + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + Full runtime dependencies of debugger-4.2.2: compiler-5.0, erts-6.0, + kernel-3.0, stdlib-2.5, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14423 Application(s): dialyzer + Related Id(s): OTP-14323 + + The check of bad type variables in type declarations + was mistakingly removed in Erlang/OTP 18, and is now + re-introduced. + + + --- Improvements and New Features --- + + OTP-14125 Application(s): compiler, dialyzer + Related Id(s): ERL-308 + + Analyzing modules with binary construction with huge + strings is now much faster. The compiler also compiles + such modules slightly faster. + + + OTP-14127 Application(s): dialyzer + + The peak memory consumption is reduced. + + + OTP-14218 Application(s): dialyzer + Related Id(s): OTP-14127 + + Warnings about unknown types are now also generated for + types not used by any function specification. + + + OTP-14336 Application(s): dialyzer, otp + + TypEr has been removed as separate application and is + now a part of the Dialyzer application. Documentation + for TypEr has been added in the Dialyzer application. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + Full runtime dependencies of dialyzer-3.2: compiler-7.0, erts-8.0, + hipe-3.15.4, kernel-5.0, stdlib-3.0, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- diameter-2.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14338 Application(s): diameter + + Let candidate peers be passed to diameter:call/4 + + With call option peer, to allow a request to be sent to + a peer that hasn't advertised support for the + application in question. + + RFC 6733 2.4 requires a node to send the application + identifiers of all locally supported applications at + capabilities exchange, but not all nodes respect this + for the common application, and diameter itself will + send D[WP][RA] without the common application having + been explicitly advertised. Regarding the common + application as implicit renders Result-Code 5010 + (DIAMETER_NO_COMMON_APPLICATION) meaningless however, + so allow any request to be sent as long as there is a + configured dictionary to support it. + + + OTP-14343 Application(s): diameter + + *** POTENTIAL INCOMPATIBILITY *** + + Improve performance of message encode/decode and + related handling. + + Dictionaries using @custom_types or @codecs will need + to adapt the corresponding functions to accept an + additional argument that is now passed through + encode/decode, which was required to remove various + process dictionary-based workarounds that have been + used to solve problems in the past. + + + OTP-14455 Application(s): diameter + Related Id(s): ERL-332 + + Add transport options to avoid deadlock and allow for + load regulation. + + Both diameter_tcp and diameter_sctp now accept two new + configuration options: sender and message_cb. The + former causes outgoing sends to take place in a + dedicated process, to avoid the possibility of deadlock + when both the transport process and its peer block in + send. The latter allows a callback to control the + reading of messages on the socket, to allow for + backpressure towards peers when the rate of incoming + traffic is greater than can otherwise be handled. + + Neither of these options are yet documented, but are + unlikely to change unless problems are discovered. The + sender option is not the default since it should + probably always be used in combination with message_cb, + to prevent incoming requests from being read at a + higher rate than a peer allows outgoing answers to be + sent. + + + Full runtime dependencies of diameter-2.0: erts-6.4, kernel-3.2, + ssl-6.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- edoc-0.9 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14277 Application(s): edoc + + To support stable builds, edoc no longer includes time + stamps in the footer for generated files. + + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + Full runtime dependencies of edoc-0.9: 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 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14333 Application(s): erl_docgen + Related Id(s): ERL-393 + + Sort index of C functions alphabetically in the + sidebar. + + + OTP-14431 Application(s): erl_docgen + + The right side index of functions now handle functions + with same name but different arity. + + + --- Improvements and New Features --- + + OTP-14371 Application(s): erl_docgen + Related Id(s): PR-1215 + + Improvements in the OTP documentation style. + + (Thanks to Mariano Guerra) + + + Full runtime dependencies of erl_docgen-0.7: edoc-0.7.13, erts-6.0, + stdlib-2.5, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.10 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14310 Application(s): erl_interface, kernel + + Fix bug where gethostname would incorrectly fail with + enametoolong on Linux. + + + --- Improvements and New Features --- + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format in the distribution between erlang nodes, + erl_interface, and jinterface. The new utf8 format for + atoms was introduced in OTP R16. An OTP 20 node can + therefore not connect to nodes older than R16. + + Atoms that can be encoded using latin1 are still + encoded by term_to_binary() using latin1 encoding. Note + that all atoms will by default be encoded using utf8 in + a future Erlang/OTP release. For more information see + the documentation of erlang:term_to_binary/2. + + + --------------------------------------------------------------------- + --- erts-9.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13968 Application(s): erts + + Fix various bugs regarding loading, upgrade and purge + of HiPE compiled code: + + -- The native code memory for a purged module was never + deallocated. + + -- Wrong functions could in some cases be called after + a module upgrade. + + -- erlang:check_process_code did not check for + recursive calls made from native code. + + + OTP-14238 Application(s): erts, hipe + + Hipe optional LLVM backend does require LLVM version + 3.9 or later as older versions forced strong + dependencies on erts internals structures. + + + OTP-14255 Application(s): erts + Related Id(s): OTP-14400, OTP-14401 + + When an exception such as 'throw(HugeTerm)' was caught, + HugeTerm term would be kept in the process until the + next exception occurred, potentially increasing the + heap size for the process. That has been corrected. + + + OTP-14303 Application(s): erts + + Slogans in crash dumps have been extended to print more + complex terms. + + + OTP-14304 Application(s): erts + + Fixed bug when using enif_inspect_binary in combination + with enif_copy. In some circumstances the inspected + binary could be reallocated by the enif_copy call when + it shouldn't have been. + + + OTP-14305 Application(s): erts + + The address family local (AF_UNIX / AF_LOCAL) now does + not ensure zero termination of Linux Abstract Addresses + so they can use all bytes. + + + OTP-14307 Application(s): erts + Related Id(s): PR-1379 + + Use -fno-PIE for Gentoo Hardened and others that don't + accept linker flag -no-pie. + + + OTP-14314 Application(s): erts + Related Id(s): ERL-369, PR-1394 + + Disable hipe for ppc64le architecture (little endian) + as it is not, and has never been, supported. It was + earlier equated with ppc64 (big endian) which lead to + broken build without --disable-hipe. + + + OTP-14324 Application(s): erts + + Fix 'epmd -kill' to return a failure exit status code + if epmd was not killed because of some error. + + + OTP-14335 Application(s): erts + + Fixed the following dirty scheduler related bugs: + + -- the +SDPcpu command line argument could cause the + amount of dirty CPU schedulers to be set to zero + + -- erlang:system_flag(multi_scheduling, _) failed when + only one normal scheduler was used together with dirty + scheduler support + + + OTP-14352 Application(s): erts + + Fix erlexec to handle mismatch in sysconf and proc fs + when figuring out the cpu topology. This behaviour has + been seen when using docker together with + --cpuset-cpus. + + + OTP-14360 Application(s): erts + Related Id(s): ERL-401, PR-1417 + + Fixed memory segment cache used for multiblock + carriers. Huge (> 2GB) memory segments could cause a VM + crash. Creation of such huge memory segments used for + multiblock carriers is however very uncommon. + + + OTP-14390 Application(s): erts, kernel + + Fix bug causing code:is_module_native to falsely return + true when local call trace is enabled for the module. + + + OTP-14411 Application(s): erts + + Fix emulator crash when receive tracing on a + trace_delivered message. + + + OTP-14424 Application(s): erts + + Fix file:sendfile error handling on SunOS when a + connection is closed during transmission. + + + OTP-14433 Application(s): erts + + escript did not handle paths with spaces correct. + + + OTP-14437 Application(s): erts + Related Id(s): ERL-360 + + Fix erroneous lock check assertion when wx is run on + MacOS X. + + + OTP-14441 Application(s): erts + Related Id(s): ERL-430 + + Active-mode TCP sockets are now cleaned up properly on + send/shutdown errors. + + + OTP-14447 Application(s): erts + + Fix compilation of hipe_mkliterals when the LIBS + configure variable had to be set. + + + --- Improvements and New Features --- + + OTP-11695 Application(s): erts + + Added erlang:garbage_collect/2 that takes an option + list as the last argument that can be used to control + whether a minor or a major garbage collection is to be + done. Doing a minor collection only collects terms that + have recently died, but is cheaper than a major + collection. + + + OTP-12148 Application(s): compiler, erts + + Optimized test for tuples with an atom as first + element. + + + OTP-13529 Application(s): erts + + Erlang literals are no longer copied during process to + process messaging. + + + OTP-13684 Application(s): erts + + Add support in the erl_nif API for asynchronous message + notifications when sockets or other file descriptors + are ready to accept read or write operations. The + following functions have been added: + + -- enif_select + + -- enif_monitor_process + + -- enif_demonitor_process + + -- enif_compare_monitors + + -- enif_open_resource_type_x + + + OTP-13692 Application(s): erts, stdlib + + There are two new guard BIFs 'floor/1' and 'ceil/1'. + They both return integers. In the 'math' module, there + are two new BIFs with the same names that return + floating point values. + + + OTP-13827 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Remove deprecated erlang:hash/2. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13842 Application(s): erts + + Added support in zlib for extraction of the inflation + dictionary. + + + OTP-13844 Application(s): erts + Related Id(s): OTP-13833 + + *** POTENTIAL INCOMPATIBILITY *** + + The previously used purge strategy has been removed. + The optional purge strategy introduced in ERTS version + 8.1 is now the only strategy available. + + The new purge strategy is slightly incompatible with + the old strategy. Previously processes holding funs + that referred to the module being purged either failed + a soft purge, or was killed during a hard purge. The + new strategy completely ignores funs. If funs referring + to the code being purged exist, and are used after a + purge, an exception will be raised upon usage. That is, + the behavior will be exactly the same as the case when + a fun is received by a process after the purge. + + For more information see the documentation of + erlang:check_process_code/3. + + + OTP-13860 Application(s): erts + + Dirty schedulers are now enabled by default when the + runtime system is built with SMP support. + + + OTP-13903 Application(s): erts + + Improved ETS lookup/insert/delete speed for large set, + bag and duplicate_bag by a significant reduction of the + hash load factor. This speed improvement comes at the + expense of less than one word per table entry. Tables + with less than 256 entries are not affected at all. + + + OTP-13908 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The NIF library reload feature is not supported + anymore. It has been marked as deprecated since OTP + R15B. This means that you are only allowed to do one + successful call to erlang:load_nif/2 for each module + instance. A second call to erlang:load_nif/2 will + return {error, {reload, _}} even if the NIF library + implements the reload callback. + + Runtime upgrade of a NIF library is still supported by + using the Erlang module upgrade mechanics with a + current and an old module instance existing at the same + time with their corresponding NIF libraries. + + + OTP-13976 Application(s): erts + + Add erlang:system_info(atom_count) and + erlang:system_info(atom_limit) to provide a way to + retrieve the current and maximum number of atoms. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14002 Application(s): erts + + erlang:load_nif/2 returns new error type notsup when + called for a HiPE compiled module, which is not + supported. + + + OTP-14069 Application(s): erts + + Add driver and nif lock instrumentation to lcnt + + + OTP-14149 Application(s): erts + + Reduce memory pressure by converting sub-binaries to + heap-binaries when possible. This is done during + garbage collection. + + + OTP-14152 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Dirty schedulers are now enabled and supported on + Erlang runtime systems with SMP support. + + Besides support for dirty NIFs also support for dirty + BIFs and dirty garbage collection have been introduced. + All garbage collections that potentially will take a + long time to complete are now performed on dirty + schedulers if enabled. + + erlang:statistics/1 with arguments inspecting scheduler + and run queue states have been changed due to the dirty + scheduler support. Code using this functionality may + have to be rewritten taking these incompatibilities + into consideration. Examples of such uses are calls to + erlang:statistics(scheduler_wall_time), + statistics(total_run_queue_lengths), + statistics(total_active_tasks), etc. + + + OTP-14178 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Atoms may now contain arbitrary Unicode characters. + + + OTP-14186 Application(s): erts, kernel + + Introduce an event manager in Erlang to handle OS + signals. A subset of OS signals may be subscribed to + and those are described in the Kernel application. + + + OTP-14201 Application(s): erts + Related Id(s): PR-1293 + + The escript program now handles symbolic links to + escripts. + + This is useful for standalone systems with escripts + residing on a bin directory not included in the + execution path (as it may cause their erl program(s) to + override the desired one). Instead the escripts can be + referred to via symbolic links from a bin directory in + the path. + + + OTP-14205 Application(s): erts + + *** HIGHLIGHT *** + + All uses of the magic binary kludge has been replaced + by uses of erlang references. + + A magic binary was presented as an empty binary, but + actually referred other data internally in the Erlang + VM. Since they were presented as empty binaries, + different magic binaries compared as equal, and also + lost their internal data when passed out of an erlang + node. + + The new usage of references has not got any of these + strange semantic issues, and the usage of these + references has been optimized to give the same + performance benefits as well as memory usage benefits + as magic binaries had. + + A couple of examples of previous uses of magic binaries + are match specifications and NIF resources. + + + OTP-14272 Application(s): erts, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been deprecated and are + scheduled for removal in OTP-21. + + In preparation for this, the threaded non-smp emulator + is no longer built by default and has to be enabled + using the --enable-plain-emulator to configure. + + + OTP-14330 Application(s): erts, hipe + Related Id(s): PR-1397 + + Allow HiPE to run on VM built with --enable-m32-build. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format in the distribution between erlang nodes, + erl_interface, and jinterface. The new utf8 format for + atoms was introduced in OTP R16. An OTP 20 node can + therefore not connect to nodes older than R16. + + Atoms that can be encoded using latin1 are still + encoded by term_to_binary() using latin1 encoding. Note + that all atoms will by default be encoded using utf8 in + a future Erlang/OTP release. For more information see + the documentation of erlang:term_to_binary/2. + + + OTP-14347 Application(s): erts, stdlib + Related Id(s): PR-1412 + + Added function re:version/0 which returns information + about the OTP internal PCRE version used for + implementation of the re module. + + + OTP-14348 Application(s): erts + + Added new debug bif erlang:list_to_port/1. + + + OTP-14356 Application(s): erts + + *** HIGHLIGHT *** + + Various improvements of timer management internally in + the VM. These improvements both reduced memory + consumption of timer wheels as well as reduce the + amount of work that has to be performed in order to + handle timers. + + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + OTP-14380 Application(s): erts + + Added the following erl command line arguments with + which you can set suggested stack for dirty schedulers: + + -- +sssdcpu -- for dirty CPU schedulers + + -- +sssdio -- for dirty IO schedulers + + The default suggested stack size for dirty schedulers + is 40 kilo words. + + + OTP-14381 Application(s): erts + + Changed erts startup program name, argv 0, to use the + environment variable ESCRIPT_NAME so that erlc, + dialyzer, typer, ct_run, or the escript name can be + seen with external programs, such as ps and htop + (depending on options), on unix. + + + OTP-14384 Application(s): erts + Related Id(s): OTP-14201 + + Improvements of escript documentation. + + + OTP-14385 Application(s): erts + Related Id(s): PR-1413 + + Add function enif_hash for NIFs to calculate hash + values of arbitrary terms. + + + OTP-14407 Application(s): erts, otp + + *** HIGHLIGHT *** + + './configure --enable-lock-counter' will enabling + building of an additional emulator that has support for + lock counting. (The option previously existed, but + would turn on lock counting in the default emulator + being built.) To start the lock-counting emulator, use + 'erl -emu_type lcnt'. + + On Windows, erl recognized the undocumented option + -debug for starting a debug-compiled emulator. That + option has been removed. Use 'erl -emu_type debug' + instead. + + + OTP-14425 Application(s): erts, kernel + + Warnings have been added to the relevant documentation + about not using un-secure distributed nodes in exposed + environments. + + + OTP-14434 Application(s): erts + + Improvement of the documentation of the environment + variable ERL_CRASH_DUMP_SECONDS as well as the default + behavior when it is not set. + + + OTP-14438 Application(s): erts + + Enabled off-heap message queue for some system + processes that might receive large amounts of messages. + + + OTP-14442 Application(s): erts + Related Id(s): ERIERL-22 + + ETS lock indexes have been replaced with the table name + in LCNT results. + + + OTP-14453 Application(s): erts + Related Id(s): PR-1400 + + Introduced the new functions enif_whereis_pid() and + enif_whereis_port(). + + + Full runtime dependencies of erts-9.0: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- eunit-2.3.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14287 Application(s): eunit + + The surefire reports from eunit will no longer have + names with embedded double quotes. + + + Full runtime dependencies of eunit-2.3.3: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- hipe-3.16 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13862 Application(s): hipe + Related Id(s): PR-1154 + + Fix hipe compiler flags o0 and o1 that have previously + been ignored by mistake. + + + OTP-13983 Application(s): hipe + + Fix LLVM backend to not convert all remote calls to own + module, like ?MODULE:foo(), into local calls. + + + OTP-14238 Application(s): erts, hipe + + Hipe optional LLVM backend does require LLVM version + 3.9 or later as older versions forced strong + dependencies on erts internals structures. + + + OTP-14302 Application(s): hipe + Related Id(s): ERL-376, PR-1386 + + Fix a bug that has been seen causing failed loading of + hipe compiled modules on NetBSD due to unaligned data + pointers. + + + OTP-14306 Application(s): hipe + Related Id(s): ERL-278, PR-1392 + + Fix miscompilation bug in hipe that could cause wrong + function clause to be called from non-tail calls, where + the return value is unused, if the right function + clause is only reachable from those non-tail calls. + + + --- Improvements and New Features --- + + OTP-13810 Application(s): hipe + Related Id(s): PR-1124 + + Improve hipe compilation time for large functions. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13879 Application(s): hipe + + Speed up hipe compile time register allocation for + larger function. + + + OTP-14261 Application(s): hipe + Related Id(s): PR-1360 + + Various code generation improvements. + + + OTP-14293 Application(s): hipe + Related Id(s): PR-1380 + + Improve hipe compiler to generate code with better CPU + register utilization at runtime by the use of 'Live + Range Splitting' techniques. + + + OTP-14330 Application(s): erts, hipe + Related Id(s): PR-1397 + + Allow HiPE to run on VM built with --enable-m32-build. + + + Full runtime dependencies of hipe-3.16: compiler-5.0, erts-9.0, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-6.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14394 Application(s): inets + + httpd_util:rfc1123_date/1 gracefully handle invalid DST + dates by returning the original time in the expected + rfc1123 format. + + + --- Improvements and New Features --- + + OTP-14404 Application(s): inets + + Add unicode binary support to http_uri functions + + + OTP-14429 Application(s): inets + + httpc - Change timeout handling so the redirects cause + a new timer to be set. This means that a simple + redirected request could return after 2*timeout + milliseconds. + + + Full runtime dependencies of inets-6.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- jinterface-1.8 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14337 Application(s): erl_interface, erts, jinterface + + Remove generation of atoms in old latin1 external + format in the distribution between erlang nodes, + erl_interface, and jinterface. The new utf8 format for + atoms was introduced in OTP R16. An OTP 20 node can + therefore not connect to nodes older than R16. + + Atoms that can be encoded using latin1 are still + encoded by term_to_binary() using latin1 encoding. Note + that all atoms will by default be encoded using utf8 in + a future Erlang/OTP release. For more information see + the documentation of erlang:term_to_binary/2. + + + --------------------------------------------------------------------- + --- kernel-5.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13006 Application(s): kernel + Related Id(s): ERIERL-20, ERL-429 + + *** POTENTIAL INCOMPATIBILITY *** + + Function inet:ntoa/1 has been fixed to return lowercase + letters according to RFC 5935 that has been approved + after this function was written. Previously uppercase + letters were returned so this may be a backwards + incompatible change depending on how the returned + address string is used. + + Function inet:parse_address/1 has been fixed to accept + %-suffixes on scoped addresses. The addresses does not + work yet, but gives no parse errors. + + + OTP-14310 Application(s): erl_interface, kernel + + Fix bug where gethostname would incorrectly fail with + enametoolong on Linux. + + + OTP-14390 Application(s): erts, kernel + + Fix bug causing code:is_module_native to falsely return + true when local call trace is enabled for the module. + + + OTP-14426 Application(s): kernel + + Add early reject of invalid node names from distributed + nodes. + + + --- Improvements and New Features --- + + OTP-13805 Application(s): kernel + + Since Unicode is now allowed in atoms an extra check is + needed for node names, which are restricted to Latin-1. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-13909 Application(s): kernel + + file:write_file(Name, Data, [raw]) would turn Data into + a single binary before writing. This meant it could not + take advantage of the writev() system call if it was + given a list of binaries and told to write with raw + mode. + + + OTP-14057 Application(s): kernel + Related Id(s): PR-1245 + + The performance of the disk_log has been somewhat + improved in some corner cases (big items), and the + documentation has been clarified. + + + OTP-14059 Application(s): kernel, stdlib + + *** HIGHLIGHT *** + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14186 Application(s): erts, kernel + + Introduce an event manager in Erlang to handle OS + signals. A subset of OS signals may be subscribed to + and those are described in the Kernel application. + + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + OTP-14409 Application(s): kernel + Related Id(s): PR-1420 + + Added option to store shell_history on disk so that the + history can be reused between sessions. + + + OTP-14417 Application(s): kernel, stdlib + + The size of crash reports created by gen_server, + gen_statem and proc_lib is limited with aid of the + Kernel application variable error_logger_format_depth. + The purpose is to limit the size of the messages sent + to the error_logger process when processes with huge + message queues or states crash. + + The crash report generated by proc_lib includes the new + tag message_queue_len. The neighbour report also + includes the new tag current_stacktrace. Finally, the + neighbour report no longer includes the tags messages + and dictionary. + + The new function error_logger:get_format_depth/0 can be + used to retrieve the value of the Kernel application + variable error_logger_format_depth. + + + OTP-14419 Application(s): kernel + + One of the ETS tables used by the global module is + created with {read_concurrency, true} in order to + reduce contention. + + + OTP-14425 Application(s): erts, kernel + + Warnings have been added to the relevant documentation + about not using un-secure distributed nodes in exposed + environments. + + + Full runtime dependencies of kernel-5.3: erts-9.0, sasl-3.0, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- megaco-3.18.2 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14387 Application(s): megaco + + Typos have been fixed. + + + Full runtime dependencies of megaco-3.18.2: 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.15 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14039 Application(s): mnesia + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the wrapping of select continuations in + extension plugin handling. This might require the user + to rewrite user backend plugin if used. + + + Full runtime dependencies of mnesia-4.15: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- observer-2.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14393 Application(s): observer + + etop had a hardcoded timeout value of 1 second when + waiting for data from a remote node. When this expired, + which could happen for instance if there were very many + processes on the remote node, etop would exit with + reason connection_lost. To overcome this problem, the + timeout is now changed to be the same as the update + interval, which is configurable. + + + --- Improvements and New Features --- + + OTP-14137 Application(s): observer + + Show dirty-scheduler threads in performance monitor + graph and add a column with maximum allocated memory in + the Memory Allocators table. + + + OTP-14270 Application(s): observer + + Keep table and port selection after refresh of tables. + Store settings before shutdown and restore when + starting application. + + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + OTP-14345 Application(s): observer + Related Id(s): ERL-399 + + When observing a node older than OTP-19.0, a pop-up + will be displayed when trying to access port + information. Earlier, observer would crash in this + situation. + + + Full runtime dependencies of observer-2.4: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- orber-3.8.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14006 Application(s): cosProperty, orber + + Fix dialyzer warnings in Orber and CosProperty. + + + Full runtime dependencies of orber-3.8.3: erts-7.0, inets-5.10, + kernel-3.0, mnesia-4.12, ssl-5.3.4, stdlib-2.5 + + + --------------------------------------------------------------------- + --- parsetools-2.1.5 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14276 Application(s): parsetools + Related Id(s): PR-1357 + + Minor documentation fixes + + + --- Improvements and New Features --- + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + Full runtime dependencies of parsetools-2.1.5: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.4.1 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14258 Application(s): public_key + + Bug for public_key:generate_key({namedCurve,OID}) + fixed. + + + --- Improvements and New Features --- + + OTP-14111 Application(s): public_key + + Modernized internal representation used for crl + validation by use of maps. + + + OTP-14294 Application(s): public_key + + Support EC key in pkix_sign/2 + + + Full runtime dependencies of public_key-1.4.1: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- reltool-0.7.4 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14422 Application(s): reltool + Related Id(s): OTP-13830 + + The User's Guide examples are updated after removal of + support for Dets files created with Erlang/OTP R7 and + earlier. + + + Full runtime dependencies of reltool-0.7.4: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-2.0, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.12 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14316 Application(s): asn1, crypto, runtime_tools + Related Id(s): PR-1390 + + Add compile option -compile(no_native) in modules with + on_load directive which is not yet supported by HiPE. + + + --- Improvements and New Features --- + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + OTP-14357 Application(s): erts, kernel, runtime_tools + Related Id(s): PR-1326 + + Sockets can now be bound to device (SO_BINDTODEVICE) on + platforms where it is supported. + + This has been implemented e.g to support VRF-Lite under + Linux; see + + VRF , and GitHub pull request #1326. + + + Full runtime dependencies of runtime_tools-1.12: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.0.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14029 Application(s): sasl + + Documented default values for the 'mod' and + 'start_phases' fields in .app files were not allowed as + actual values in a .app file. This is now corrected. + + + --- Improvements and New Features --- + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + Full runtime dependencies of sasl-3.0.4: erts-8.1, kernel-5.0, + stdlib-3.0, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.2.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14400 Application(s): common_test, snmp, stdlib + + Internal code change: Calls to catch followed by a call + to erlang:get_stacktrace/0 has been rewritten to use + try instead of catch to make the code future-proof. + + + Full runtime dependencies of snmp-5.2.6: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.5 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-12872 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The internal handling of SSH options is re-written. + + Previously there were no checks if a client option was + given to a daemon or vice versa. This is corrected now. + If your code has e.g. a client-only option in a call to + start a daemon, the call will fail. + + + OTP-14110 Application(s): ssh + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Modernization of key exchange algorithms. See + draft-ietf-curdle-ssh-kex-sha2 for a discussion. + + Removed an outdated weak algorithm and added stronger + replacements to keep interoperability with other modern + ssh clients and servers. The default ordering of the + algorithms is also adjusted. + + Retired: The nowadays unsecure key-exchange + diffie-hellman-group1-sha1 is not enabled by default, + but can be enabled with the option + preferred-algorithms. + + Added: The new stronger key-exchange + diffie-hellman-group16-sha512, + diffie-hellman-group18-sha512 and + diffie-hellman-group14-sha256 are added and enabled by + default. + + The questionable [RFC 6194] sha1-based algorithms + diffie-hellman-group-exchange-sha1 and + diffie-hellman-group14-sha1 are however still kept + enabled by default for compatibility with ancient + clients and servers that lack modern key-exchange + alternatives. When the draft-ietf-curdle-ssh-kex-sha2 + becomes an rfc, those sha1-based algorithms and + diffie-hellman-group1-sha1 will be deprecated by IETF. + They might then be removed from the default list in + Erlang/OTP. + + + OTP-14117 Application(s): ssh + + Modernized internal representation of sftp by use of + maps. + + + OTP-14193 Application(s): ssh + + *** HIGHLIGHT *** + + The Extension Negotiation Mechanism and the extension + server-sig-algs in draft-ietf-curdle-ssh-ext-info-05 + are implemented. + + The related draft-ietf-curdle-rsa-sha2-05 is + implemented and introduces the signature algorithms + rsa-sha2-256 and rsa-sha2-512. + + + OTP-14216 Application(s): ssh + + The 'timeout' and 'connect_timeout' handling in + ssh_sftp:start_channel documentation is clarified. + + + OTP-14243 Application(s): ssh + + The functions ssh:connect, ssh:shell and + ssh:start_channel now accept an IP-tuple as Host + destination argument. + + + OTP-14259 Application(s): ssh + + The function ssh:daemon_info/1 now returns Host and + Profile as well as the Port info in the property list. + + + OTP-14263 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the option public_key_alg which was deprecated + in 18.2. Use pref_public_key_algs instead. + + + OTP-14264 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The SSH application is refactored regarding daemon + starting. The resolution of contradicting Host argument + and ip option were not described. There were also + strange corner cases when the 'any' value was used in + Host argument or ip option. This is (hopefully) + resolved now, but it may cause incompatibilities for + code using both Host and the ip option. The value + 'loopback' has been added for a correct way of naming + those addresses. + + + OTP-14267 Application(s): ssh + Related Id(s): OTP-14266 + + The supervisor code is refactored. The naming of + listening IP-Port-Profile triples are slightly changed + to improve consistency in strange corner cases as + resolved by OTP-14264 + + + OTP-14312 Application(s): ssh + + The idle_time option can now be used in daemons. + + + OTP-14361 Application(s): ssh + + Added test cases for IETF-CURDLE Extension Negotiation + (ext-info) + + + OTP-14362 Application(s): ssh + Related Id(s): OTP-14361 + + Testcases for IETF-CURDLE extension server-sig-algs + including rsa-sha2-* + + + OTP-14399 Application(s): ssh + + The option auth_methods can now also be used in clients + to select which authentication options that are used + and in which order. + + + OTP-14410 Application(s): ssh + + Checks that a ECDSA public key (ecdsa-sha2-nistp*) + stored in a file has the correct size. + + + Full runtime dependencies of ssh-4.5: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-8.2 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14421 Application(s): ssl + + ECDH-ECDSA key exchange supported, was accidently + dismissed in earlier versions. + + + OTP-14443 Application(s): ssl + + Correct close semantics for active once connections. + This was a timing dependent bug the resulted in the + close message not always reaching the ssl user process. + + + --- Improvements and New Features --- + + OTP-13820 Application(s): ssl + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + TLS-1.2 clients will now always send hello messages on + its own format, as opposed to earlier versions that + will send the hello on the lowest supported version, + this is a change supported by the latest RFC. + + This will make interoperability with some newer servers + smoother. Potentially, but unlikely, this could cause a + problem with older servers if they do not adhere to the + RFC and ignore unknown extensions. + + + OTP-13921 Application(s): crypto, ssl + Related Id(s): PR-1180 + + *** HIGHLIGHT *** + + Allow Erlang/OTP to use OpenSSL in FIPS-140 mode, in + order to satisfy specific security requirements (mostly + by different parts of the US federal government). + + See the new crypto users guide "FIPS mode" chapter + about building and using the FIPS support which is + disabled by default. + + (Thanks to dszoboszlay and legoscia) + + + OTP-14076 Application(s): ssl + + Implemented DTLS cookie generation, required by spec, + instead of using a hardcoded value. + + + OTP-14077 Application(s): ssl + + Implement sliding window replay protection of DTLS + records. + + + OTP-14197 Application(s): ssl + + *** HIGHLIGHT *** + + TLS client processes will by default call + public_key:pkix_verify_hostname/2 to verify the + hostname of the connection with the server certificates + specified hostname during certificate path validation. + The user may explicitly disables it. Also if the + hostname can not be derived from the first argument to + connect or is not supplied by the server name + indication option, the check will not be performed. + + + OTP-14291 Application(s): ssl + + *** HIGHLIGHT *** + + Extend connection_information/[1,2] . The values + session_id, master_secret, client_random and + server_random can no be accessed by + connection_information/2. Note only session_id will be + added to connection_information/1. The rational is that + values concerning the connection security should have + to be explicitly requested. + + + OTP-14382 Application(s): ssl + + Chacha cipher suites are currently not tested enough to + be most preferred ones + + + OTP-14388 Application(s): ssl + + *** HIGHLIGHT *** + + Basic support for DTLS that been tested together with + OpenSSL. + + Test by providing the option {protocol, dtls} to the + ssl API functions connect and listen. + + + Full runtime dependencies of ssl-8.2: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.2, stdlib-3.2 + + + --------------------------------------------------------------------- + --- stdlib-3.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-13690 Application(s): compiler, stdlib + + For many releases, it has been legal to override a BIF + with a local function having the same name. However, + calling a local function with the same name as guard + BIF as filter in a list comprehension was not allowed. + + + OTP-14295 Application(s): stdlib + Related Id(s): PR-1372 + + A new (default) pseudo-random number generator + algorithm Xoroshiro116+ has been implemented in the + rand module. + + The old algorithm implementations had a number of flaws + so they are all deprecated, but corrected versions of + two of them have been added. See the documentation. + + + OTP-14296 Application(s): debugger, stdlib + + The Erlang shell, qlc:string_to_handle(), and the + Debugger (the Evaluator area and Edit variable window + of the Bindings area) can parse pids, ports, + references, and external funs, as long as they can be + created in the running system. + + + OTP-14400 Application(s): common_test, snmp, stdlib + + Internal code change: Calls to catch followed by a call + to erlang:get_stacktrace/0 has been rewritten to use + try instead of catch to make the code future-proof. + + + OTP-14454 Application(s): stdlib + Related Id(s): ERIERL-29 + + The ms_transform module, used by ets:fun2ms/1 and + dbg:fun2ms/1, evaluates constant arithmetic + expressions. This is necessary since the Erlang + compiler, which normally evaluates constant + expressions, does not recognize the format generated by + ms_transform. + + + OTP-14531 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The state machine engine gen_statem can now handle + generic time-outs (multiple named) as well as absolute + time-out time. See the documentation. + + The gen_statem callback Module:init/1 has become + mandatory to harmonize with other gen_* modules. This + may be an incompatibility for gen_statem callback + modules that use gen_statem:enter_loop/4-6. + + + --- Improvements and New Features --- + + OTP-10289 Application(s): stdlib + Related Id(s): OTP-10309 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Improved unicode support for strings. Added + normalization functions in the unicode module. Extended + the string module API with new functions with improved + unicode handling and that works on grapheme clusters. + The new functions operates on the unicode:chardata() + type, thus they also accept UTF-8 binaries as input. + + The old string API have been marked as obsolete. The + return values have been changed for some error cases. + + + OTP-13692 Application(s): erts, stdlib + + There are two new guard BIFs 'floor/1' and 'ceil/1'. + They both return integers. In the 'math' module, there + are two new BIFs with the same names that return + floating point values. + + + OTP-13801 Application(s): stdlib + + Making code_change, terminate and handle_info callbacks + optional in the OTP behaviours. + + + OTP-13830 Application(s): stdlib + + The support for Dets files created with Erlang/OTP R7 + and earlier is removed. + + + OTP-13831 Application(s): compiler, erts, hipe, kernel, percept, + stdlib + Related Id(s): OTP-13735 + + Replaced usage of deprecated symbolic time unit + representations. + + + OTP-14000 Application(s): compiler, erts, stdlib + + The function fmod/2 has been added to the math module. + + + OTP-14001 Application(s): stdlib + + The EXIT signals received from processes using proc_lib + now looks like EXIT signals from processes that were + spawned using spawn_link. In particular, that means + that the stack trace is now included in the EXIT signal + so that it can see where the process crashed. + + + OTP-14035 Application(s): stdlib + + sets:add_element/2 is faster when adding an element + that is already present, and sets:del_element/2 is + faster when the element to be deleted is not present. + This optimization can make certain operations, such as + sets:union/2 with many overlapping elements, up to two + orders of magnitude faster. + + + OTP-14037 Application(s): stdlib + Related Id(s): PR-1233 + + Add information in doc about supervisor shutdown reason + when maximum restart frequency is reached. + + + OTP-14038 Application(s): stdlib + Related Id(s): PR-1235 + + Added rand:jump/[0|1] functions. + + + OTP-14059 Application(s): kernel, stdlib + + *** HIGHLIGHT *** + + Functions for detecting changed code has been added. + code:modified_modules/0 returns all currently loaded + modules that have changed on disk. code:module_status/1 + returns the status for a module. In the shell and in c + module, mm/0 is short for code:modified_modules/0, and + lm/0 reloads all currently loaded modules that have + changed on disk. + + + OTP-14066 Application(s): stdlib + + Each assert macro in assert.hrl now has a corresponding + version with an extra argument, for adding comments to + assertions. These can for example be printed as part of + error reports, to clarify the meaning of the check that + failed. + + + OTP-14068 Application(s): stdlib + + error_logger_tty_h and error_logger_file_h now inserts + the node information for nonlocal messages before the + message itself instead of after, both for readability + and so as not to change the line termination property + at the end of the message. + + + OTP-14070 Application(s): stdlib + Related Id(s): PR-1214 + + The Erlang code linter checks for badly formed type + constraints. + + + OTP-14071 Application(s): compiler, stdlib + + By default, there will now be a warning when export_all + is used. The warning can be disabled using + nowarn_export_all. + + + OTP-14089 Application(s): stdlib + + When a gen_server process crashes, the stacktrace for + the client will be printed to facilitate debugging. + + + OTP-14094 Application(s): stdlib + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Optimized ETS operations by changing table identifier + type from integer to reference. The reference enables a + more direct mapping to the table with less potential + lock contention and makes especially creation and + deletion of tables scale much better. + + The change of the opaque type for the ETS table + identifiers may cause failure in code that make faulty + assumptions about this opaque type. + + The number of tables stored at one Erlang node *used* + to be limited. This is no longer the case (except by + memory usage). The previous default limit was about + 1400 tables and could be increased by setting the + environment variable ERL_MAX_ETS_TABLES before starting + the Erlang runtime system. This hard limit has been + removed, but it is currently useful to set the + ERL_MAX_ETS_TABLES anyway. It should be set to an + approximate of the maximum amount of tables used. This + since an internal table for named tables is sized using + this value. If large amounts of named tables are used + and ERL_MAX_ETS_TABLES hasn't been increased, the + performance of named table lookup will degrade. + + + OTP-14102 Application(s): stdlib + + take/2 has been added to dict, orddict, and gb_trees. + take_any/2 has been added to gb_trees. + + + OTP-14123 Application(s): stdlib + + Extend gen_event API to handle options as well. + + + OTP-14168 Application(s): stdlib + Related Id(s): PR-1289 + + Advice on how to tune the supervisor restart frequency + (intensity and period) is added to System Documentation + - Design Principles - Supervisor Behaviour. + + + OTP-14183 Application(s): stdlib + + *** HIGHLIGHT *** + + gen_fsm is deprecated and is replaced by gen_statem, + however for backwards compatibility reasons gen_fsm may + continue to exist as an undocumented feature for quite + some time. + + + OTP-14190 Application(s): stdlib + + The shell functions c/1 and c/2 have been extended so + that if the argument is a module name instead of a file + name, it automatically locates the .beam file and the + corresponding source file, and then recompiles the + module using the same compiler options (plus any + options passed to c/2). If compilation fails, the old + beam file is preserved. Also adds c(Mod, Opts, Filter), + where the Filter argument allows you to remove old + compiler options before the new options are added. + + New utility functions file_find/2/3 and + find_source/1/2/3 have been added to filelib. + + + OTP-14226 Application(s): stdlib + + *** HIGHLIGHT *** + + erl_tar in previous versions of OTP only supports the + USTAR format. That limited path names to at most 255 + bytes, and did not support Unicode characters in names + in a portable way. + + erl_tar now has support for reading tar archives in the + formats currently in common use, such as v7, STAR, + USTAR, PAX, and GNU tar's extensions to the STAR/USTAR + format. When writing tar archives, erl_tar can now + write them in the PAX format if necessary (for example, + to support very long filenames or filenames with + Unicode characters). If possible, erl_tar will still + write tar archives in the USTAR for maximum + portability. + + + OTP-14245 Application(s): stdlib + + base64:mime_decode/1 has been optimized so that it is + now almost as fast asbase64:decode/1; it used be + noticeably slower. + + + OTP-14278 Application(s): stdlib + + erl_tar will now strip any leading '/' from pathnames + when extracting files from a tar archive and write a + message to the error logger. There is also new check + for directory traversal attacks; if a relative path + points above the current working directory the + extraction will be aborted. + + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + OTP-14317 Application(s): crypto, stdlib + Related Id(s): PR-1372 + + The Crypto application now supports generation of + cryptographically strong random numbers (floats < 1.0 + and integer arbitrary ranges) as a plugin to the 'rand' + module. + + + OTP-14319 Application(s): stdlib + Related Id(s): PR-1076 + + *** HIGHLIGHT *** + + Add new function ets:select_replace/2 which performs + atomic "compare-and-swap" operations for ETS objects + using match specifications. + + + OTP-14323 Application(s): stdlib + + The Erlang code linter checks for bad dialyzer + attributes. It also checks for bad type variables in + type declarations. + + + OTP-14328 Application(s): stdlib + Related Id(s): PR-1382 + + Two new functions has been implemented in the rand + module; normal/2 and normal_s/3, that both produce + normal distribution (pseudo) random numbers with mean + value and variance according to arguments. + + + OTP-14331 Application(s): erts, stdlib + Related Id(s): ERL-208 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Upgraded the OTP internal PCRE library from version + 8.33 to version 8.40. This library is used for + implementation of the re regular expressions module. + + Besides various bug fixes, the new version allows for + better stack protection. In order to utilize this + feature, the stack size of normal scheduler threads is + now by default set to 128 kilo words on all platforms. + The stack size of normal scheduler threads can be set + upon system start by passing the +sss command line + argument to the erl command. + + See http://pcre.org/original/changelog.txt for + information about changes made to PCRE between the + versions 8.33 and 8.40. + + + OTP-14347 Application(s): erts, stdlib + Related Id(s): PR-1412 + + Added function re:version/0 which returns information + about the OTP internal PCRE version used for + implementation of the re module. + + + OTP-14369 Application(s): compiler, dialyzer, stdlib + Related Id(s): PR-1367 + + The format of debug information that is stored in BEAM + files (when debug_info is used) has been changed. The + purpose of the change is to better support other + BEAM-based languages such as Elixir or LFE. + + All tools included in OTP (dialyzer, debugger, cover, + and so on) will handle both the new format and the + previous format. Tools that retrieve the debug + information using beam_lib:chunk(Beam, [abstract_code]) + will continue to work with both the new and old format. + Tools that call beam_lib:chunk(Beam, ["Abst"]) will not + work with the new format. + + For more information, see the description of debug_info + in the documentation for beam_lib and the description + of the {debug_info,{Backend,Data}} option in the + documentation for compile. + + + OTP-14405 Application(s): stdlib + + Add option hibernate_after to gen_server, gen_statem + and gen_event. Also added to the deprecated gen_fsm + behaviour. + + + OTP-14417 Application(s): kernel, stdlib + + The size of crash reports created by gen_server, + gen_statem and proc_lib is limited with aid of the + Kernel application variable error_logger_format_depth. + The purpose is to limit the size of the messages sent + to the error_logger process when processes with huge + message queues or states crash. + + The crash report generated by proc_lib includes the new + tag message_queue_len. The neighbour report also + includes the new tag current_stacktrace. Finally, the + neighbour report no longer includes the tags messages + and dictionary. + + The new function error_logger:get_format_depth/0 can be + used to retrieve the value of the Kernel application + variable error_logger_format_depth. + + + Full runtime dependencies of stdlib-3.4: compiler-5.0, crypto-3.3, + erts-9.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.2 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + Full runtime dependencies of syntax_tools-2.1.2: compiler-7.0, + erts-8.0, kernel-5.0, stdlib-3.0 + + + --------------------------------------------------------------------- + --- tools-2.10 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14339 Application(s): tools + Related Id(s): ERL-395 + + In some situations, make:all() and friends did not + detect changes in include files located in the current + directory. This is now corrected. + + + --- Improvements and New Features --- + + OTP-14253 Application(s): tools + + The make module now accepts the {emake,Emake} option. + + + OTP-14285 Application(s): common_test, debugger, edoc, observer, + parsetools, runtime_tools, sasl, stdlib, syntax_tools, + tools + + Miscellaneous updates due to atoms containing arbitrary + Unicode characters. + + + Full runtime dependencies of tools-2.10: compiler-5.0, erts-7.0, + kernel-3.0, runtime_tools-1.8.14, stdlib-3.1 + + + --------------------------------------------------------------------- + --- wx-1.8.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14289 Application(s): wx + + Fix a livelock that could be caused by wx:batch/1. + + + Full runtime dependencies of wx-1.8.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.15 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14377 Application(s): xmerl + Related Id(s): PR-1369 + + Improves accumulator fun in xmerl_scan so that only one + #xmlText record is returned for strings which have + character references. + + (Thanks to Jimmy Zöger) + + + Full runtime dependencies of xmerl-1.3.15: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.1.README.txt b/release-notes/OTP-20.1.1.README.txt new file mode 100644 index 0000000..5f4c50d --- /dev/null +++ b/release-notes/OTP-20.1.1.README.txt @@ -0,0 +1,96 @@ +Patch Package: OTP 20.1.1 +Git Tag: OTP-20.1.1 +Date: 2017-10-03 +Trouble Report Id: OTP-14638, OTP-14640, OTP-14645, OTP-14648, + OTP-14649 +Seq num: ERL-490 +System: OTP +Release: 20 +Application: compiler-7.1.3, erts-9.1.1, ssh-4.6.1 +Predecessor: OTP 20.1 + + Check out the git tag OTP-20.1.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. + + --------------------------------------------------------------------- + --- compiler-7.1.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.1.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14640 Application(s): compiler + Related Id(s): ERL-490 + + The compiler could issue an incorrect internal + consistency failure diagnostic for some complicated bit + syntax maches. + + + Full runtime dependencies of compiler-7.1.3: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- erts-9.1.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.1.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14648 Application(s): erts + + The new zlib module returned a data_error when + inflating concatenated streams, which was incompatible + with the old module's behavior of returning the + uncompressed data up to the end of the first stream. + + + OTP-14649 Application(s): erts + + zlib:gunzip/1 will no longer stop at the end of the + first stream when decompressing concatenated gzip + files. + + + Full runtime dependencies of erts-9.1.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- ssh-4.6.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.6.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14645 Application(s): ssh + + Fixed broken printout + + + --- Improvements and New Features --- + + OTP-14638 Application(s): ssh + + Disable aes_gcm ciphers if peer is OpenSSH 6.2 which is + known to have trouble with them in some cases. + + + Full runtime dependencies of ssh-4.6.1: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.2.README.txt b/release-notes/OTP-20.1.2.README.txt new file mode 100644 index 0000000..d11b4ce --- /dev/null +++ b/release-notes/OTP-20.1.2.README.txt @@ -0,0 +1,62 @@ +Patch Package: OTP 20.1.2 +Git Tag: OTP-20.1.2 +Date: 2017-10-11 +Trouble Report Id: OTP-14661, OTP-14668 +Seq num: ERIERL-80, ERIERL-83 +System: OTP +Release: 20 +Application: diameter-2.1.1, erts-9.1.2 +Predecessor: OTP 20.1.1 + + Check out the git tag OTP-20.1.2, 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. + + --------------------------------------------------------------------- + --- diameter-2.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-2.1.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14668 Application(s): diameter + Related Id(s): ERIERL-83 + + An inadvertently removed monitor in diameter 2.1 caused + the ets table diameter_reg to leak entries, and caused + service restart and more to fail. + + + Full runtime dependencies of diameter-2.1.1: erts-6.4, kernel-3.2, + ssl-6.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- erts-9.1.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.1.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14661 Application(s): erts + Related Id(s): ERIERL-80 + + Fixed bug that could cause a VM crash when a corrupt + message is received on distribution channel from other + node. + + + Full runtime dependencies of erts-9.1.2: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.3.README.txt b/release-notes/OTP-20.1.3.README.txt new file mode 100644 index 0000000..41a20e8 --- /dev/null +++ b/release-notes/OTP-20.1.3.README.txt @@ -0,0 +1,88 @@ +Patch Package: OTP 20.1.3 +Git Tag: OTP-20.1.3 +Date: 2017-10-25 +Trouble Report Id: OTP-13372, OTP-14672, OTP-14684, OTP-14694 +Seq num: ERIERL-73, ERIERL-85, ERL-494 +System: OTP +Release: 20 +Application: diameter-2.1.2, erts-9.1.3, snmp-5.2.8 +Predecessor: OTP 20.1.2 + + Check out the git tag OTP-20.1.3, 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. + + --------------------------------------------------------------------- + --- diameter-2.1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-2.1.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14684 Application(s): diameter + Related Id(s): ERIERL-85 + + A fault introduced in diameter 2.1 could cause decode + errors to be ignored in AVPs following the header of a + Grouped AVP. + + + Full runtime dependencies of diameter-2.1.2: erts-6.4, kernel-3.2, + ssl-6.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- erts-9.1.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.1.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14672 Application(s): erts + Related Id(s): ERL-494 + + Added zlib:set_controlling_process/2 to move a + zstream() between processes. + + + OTP-14694 Application(s): erts + + Fix so that schedulers are bound correctly when the + first available cpu is not the first detected cpu. e.g. + when using "taskset -c X..Y" when X is not equal to 0. + + + Full runtime dependencies of erts-9.1.3: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- snmp-5.2.8 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.2.8 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13372 Application(s): snmp + Related Id(s): ERIERL-73 + + The recbuf configuration option was not propagated + correctly to the socket for the SNMP Manager. + + + Full runtime dependencies of snmp-5.2.8: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.4.README.txt b/release-notes/OTP-20.1.4.README.txt new file mode 100644 index 0000000..a14abca --- /dev/null +++ b/release-notes/OTP-20.1.4.README.txt @@ -0,0 +1,54 @@ +Patch Package: OTP 20.1.4 +Git Tag: OTP-20.1.4 +Date: 2017-11-02 +Trouble Report Id: OTP-14656, OTP-14696, OTP-14716 +Seq num: +System: OTP +Release: 20 +Application: inets-6.4.3 +Predecessor: OTP 20.1.3 + + Check out the git tag OTP-20.1.4, 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. + + --------------------------------------------------------------------- + --- inets-6.4.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.4.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Improvements and New Features --- + + OTP-14656 Application(s): inets + + Fix broken handling of POST requests + + New chunk mechanism of body data in POST requests added + in 5d01c70ca399edf28e99dc760506329689fab6ba broke + handling of POST body data not using the new mechanism. + + + OTP-14696 Application(s): inets + + Make sure ints:stop/2 of the service httpd is + synchronous + + + OTP-14716 Application(s): inets + + Honor status code returned by ESI script and modernize + "location" header handling. + + + Full runtime dependencies of inets-6.4.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.5.README.txt b/release-notes/OTP-20.1.5.README.txt new file mode 100644 index 0000000..6db4f45 --- /dev/null +++ b/release-notes/OTP-20.1.5.README.txt @@ -0,0 +1,91 @@ +Patch Package: OTP 20.1.5 +Git Tag: OTP-20.1.5 +Date: 2017-11-10 +Trouble Report Id: OTP-14707, OTP-14730, OTP-14745, OTP-14750, + OTP-14751, OTP-14761 +Seq num: ERL-507 +System: OTP +Release: 20 +Application: erts-9.1.4, inets-6.4.4 +Predecessor: OTP 20.1.4 + + Check out the git tag OTP-20.1.5, 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. + + --------------------------------------------------------------------- + --- erts-9.1.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.1.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14707 Application(s): erts + + Microstate accounting sometimes produced incorrect + results for dirty schedulers. + + + OTP-14730 Application(s): erts + Related Id(s): ERL-507 + + Fixed a regression in zlib:gunzip/1 that prevented it + from working when the decompressed size was a perfect + multiple of 16384. This regression was introduced in + 20.1.1 + + + OTP-14745 Application(s): erts + + Fixed a memory corruption bug in enif_inspect_iovec; + writable binaries stayed writable after entering the + iovec. + + + OTP-14750 Application(s): erts + + Fixed a crash in enif_inspect_iovec on encountering + empty binaries. + + + OTP-14751 Application(s): erts + + zlib:deflateParams/3 will no longer return buf_error + when called after zlib:deflate/2 with zlib 1.2.11. + + + Full runtime dependencies of erts-9.1.4: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- inets-6.4.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.4.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14761 Application(s): inets + + Correct the handling of location headers so that the + status code is not hard coded. This should have been + fixed by commit + 2cc5ba70cbbc6b3ace81a2a0324417c3b65265bb but + unfortunately was broken during a code refactoring and + unnoticed due to a faulty placed test case. + + + Full runtime dependencies of inets-6.4.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.6.README.txt b/release-notes/OTP-20.1.6.README.txt new file mode 100644 index 0000000..c250b77 --- /dev/null +++ b/release-notes/OTP-20.1.6.README.txt @@ -0,0 +1,80 @@ +Patch Package: OTP 20.1.6 +Git Tag: OTP-20.1.6 +Date: 2017-11-20 +Trouble Report Id: OTP-14763, OTP-14775, OTP-14778, OTP-14781 +Seq num: ERIERL-104, ERIERL-74 +System: OTP +Release: 20 +Application: erts-9.1.5, ssh-4.6.2 +Predecessor: OTP 20.1.5 + + Check out the git tag OTP-20.1.6, 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. + + --------------------------------------------------------------------- + --- erts-9.1.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.1.5 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14775 Application(s): erts + + Fixed a bug in file closure on Unix; close(2) was + retried on EINTR which could cause a different + (recently opened) file to be closed as well. + + + OTP-14781 Application(s): erts + Related Id(s): OTP-13047 + + A race-condition when tearing down a connection with + active node monitors could cause the runtime system to + crash. + + This bug was introduced in ERTS version 8.0 (OTP 19.0). + + + Full runtime dependencies of erts-9.1.5: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- ssh-4.6.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.6.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14763 Application(s): ssh + Related Id(s): ERIERL-74 + + Trailing white space was removed at end of the + hello-string. This caused interoperability problems + with some other ssh-implementations (e.g OpenSSH 7.3p1 + on Solaris 11) + + + OTP-14778 Application(s): ssh + Related Id(s): ERIERL-104 + + Fixes that tcp connections that was immediately closed + (SYN, SYNACK, ACK, RST) by a client could be left in a + zombie state. + + + Full runtime dependencies of ssh-4.6.2: crypto-3.7.3, erts-6.0, + kernel-3.0, public_key-1.4, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.7.1.README.txt b/release-notes/OTP-20.1.7.1.README.txt new file mode 100644 index 0000000..961c52d --- /dev/null +++ b/release-notes/OTP-20.1.7.1.README.txt @@ -0,0 +1,48 @@ +Patch Package: OTP 20.1.7.1 +Git Tag: OTP-20.1.7.1 +Date: 2017-12-13 +Trouble Report Id: OTP-14823 +Seq num: +System: OTP +Release: 20 +Application: kernel-5.4.0.1 +Predecessor: OTP 20.1.7 + + Check out the git tag OTP-20.1.7.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. + + --------------------------------------------------------------------- + --- kernel-5.4.0.1 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-5.4.0.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: + -- erts-9.1 (first satisfied in OTP 20.1) + + + --- Improvements and New Features --- + + OTP-14823 Application(s): kernel + + Add os:cmd/2 that takes an options map as the second + argument. + + Add max_size as an option to os:cmd/2 that control the + maximum size of the result that os:cmd/2 will return. + + + Full runtime dependencies of kernel-5.4.0.1: erts-9.1, sasl-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.7.README.txt b/release-notes/OTP-20.1.7.README.txt new file mode 100644 index 0000000..abbb67a --- /dev/null +++ b/release-notes/OTP-20.1.7.README.txt @@ -0,0 +1,144 @@ +Patch Package: OTP 20.1.7 +Git Tag: OTP-20.1.7 +Date: 2017-11-22 +Trouble Report Id: OTP-14632, OTP-14653, OTP-14655, OTP-14748, + OTP-14766 +Seq num: +System: OTP +Release: 20 +Application: public_key-1.5.1, ssl-8.2.2 +Predecessor: OTP 20.1.6 + + Check out the git tag OTP-20.1.7, 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. + + --------------------------------------------------------------------- + --- public_key-1.5.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The public_key-1.5.1 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Improvements and New Features --- + + OTP-14653 Application(s): public_key + + Hostname verification: Add handling of the general name + iPAddress in certificate's subject alternative name + extension (subjAltName). + + + OTP-14766 Application(s): public_key + + Correct key handling in pkix_test_data/1 and use a + generic example mail address instead of an existing + one. + + + Full runtime dependencies of public_key-1.5.1: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssl-8.2.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.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: + -- public_key-1.5 (first satisfied in OTP 20.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14632 Application(s): ssl + + TLS sessions must be registered with SNI if provided, + so that sessions where client hostname verification + would fail can not connect reusing a session created + when the server name verification succeeded. + + Thanks to Graham Christensen for reporting this. + + + OTP-14748 Application(s): ssl + + An erlang TLS server configured with cipher suites + using rsa key exchange, may be vulnerable to an + Adaptive Chosen Ciphertext attack (AKA Bleichenbacher + attack) against RSA, which when exploited, may result + in plaintext recovery of encrypted messages and/or a + Man-in-the-middle (MiTM) attack, despite the attacker + not having gained access to the server’s private key + itself. CVE-2017-1000385 + + Exploiting this vulnerability to perform plaintext + recovery of encrypted messages will, in most practical + cases, allow an attacker to read the plaintext only + after the session has completed. Only TLS sessions + established using RSA key exchange are vulnerable to + this attack. + + Exploiting this vulnerability to conduct a MiTM attack + requires the attacker to complete the initial attack, + which may require thousands of server requests, during + the handshake phase of the targeted session within the + window of the configured handshake timeout. This attack + may be conducted against any TLS session using RSA + signatures, but only if cipher suites using RSA key + exchange are also enabled on the server. The limited + window of opportunity, limitations in bandwidth, and + latency make this attack significantly more difficult + to execute. + + RSA key exchange is enabled by default although least + prioritized if server order is honored. For such a + cipher suite to be chosen it must also be supported by + the client and probably the only shared cipher suite. + + Captured TLS sessions encrypted with ephemeral cipher + suites (DHE or ECDHE) are not at risk for subsequent + decryption due to this vulnerability. + + As a workaround if default cipher suite configuration + was used you can configure the server to not use + vulnerable suites with the ciphers option like this: + + {ciphers, [Suite || Suite <- ssl:cipher_suites(), + element(1,Suite) =/= rsa]} + + that is your code will look somethingh like this: + + ssl:listen(Port, [{ciphers, [Suite || Suite <- + ssl:cipher_suites(), element(1,S) =/= rsa]} | + Options]). + + Thanks to Hanno Böck, Juraj Somorovsky and Craig Young + for reporting this vulnerability. + + + --- Improvements and New Features --- + + OTP-14655 Application(s): ssl + + If no SNI is available and the hostname is an + IP-address also check for IP-address match. This check + is not as good as a DNS hostname check and certificates + using IP-address are not recommended. + + Thanks to Graham Christensen for reporting this. + + + Full runtime dependencies of ssl-8.2.2: crypto-3.3, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.5, stdlib-3.2 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.1.README.txt b/release-notes/OTP-20.1.README.txt new file mode 100644 index 0000000..5d0fca0 --- /dev/null +++ b/release-notes/OTP-20.1.README.txt @@ -0,0 +1,1344 @@ +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 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.2.1.README.txt b/release-notes/OTP-20.2.1.README.txt new file mode 100644 index 0000000..4ba5dc8 --- /dev/null +++ b/release-notes/OTP-20.2.1.README.txt @@ -0,0 +1,47 @@ +Patch Package: OTP 20.2.1 +Git Tag: OTP-20.2.1 +Date: 2017-12-15 +Trouble Report Id: OTP-14827 +Seq num: ERL-531 +System: OTP +Release: 20 +Application: ssh-4.6.4 +Predecessor: OTP 20.2 + + Check out the git tag OTP-20.2.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. + + --------------------------------------------------------------------- + --- ssh-4.6.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.6.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 + dependencies have to be satisfied: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14827 Application(s): ssh + Related Id(s): ERL-531 + + Fix problem with OpenSSH 7.2 (and later) clients that + has used sha1 instead of sha2 for rsa-sha-256/512 + user's public keys. + + + Full runtime dependencies of ssh-4.6.4: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.2.2.README.txt b/release-notes/OTP-20.2.2.README.txt new file mode 100644 index 0000000..59417c4 --- /dev/null +++ b/release-notes/OTP-20.2.2.README.txt @@ -0,0 +1,50 @@ +Patch Package: OTP 20.2.2 +Git Tag: OTP-20.2.2 +Date: 2017-12-19 +Trouble Report Id: OTP-14829, OTP-14841 +Seq num: ERIERL-113, ERIERL-84 +System: OTP +Release: 20 +Application: mnesia-4.15.3 +Predecessor: OTP 20.2.1 + + Check out the git tag OTP-20.2.2, 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. + + --------------------------------------------------------------------- + --- mnesia-4.15.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.15.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14829 Application(s): mnesia + Related Id(s): ERIERL-84 + + Removed a quadratic behavior in startup. This change + implies that backend plugins (if used) must be set when + the schema is created or via configuration parameters + before mnesia is started. + + + OTP-14841 Application(s): mnesia + Related Id(s): ERIERL-113 + + Bad timing could crash mnesia after a checkpoint was + deactivated and reactivated with the same checkpoint + name on different tables. + + + Full runtime dependencies of mnesia-4.15.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.2.3.README.txt b/release-notes/OTP-20.2.3.README.txt new file mode 100644 index 0000000..7a98c8d --- /dev/null +++ b/release-notes/OTP-20.2.3.README.txt @@ -0,0 +1,117 @@ +Patch Package: OTP 20.2.3 +Git Tag: OTP-20.2.3 +Date: 2018-02-13 +Trouble Report Id: OTP-14823, OTP-14915, OTP-14916, OTP-14917, + OTP-14918 +Seq num: ERIERL-88 +System: OTP +Release: 20 +Application: erts-9.2.1, kernel-5.4.2, + runtime_tools-1.12.4 +Predecessor: OTP 20.2.2 + + Check out the git tag OTP-20.2.3, 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. + + --------------------------------------------------------------------- + --- erts-9.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.2.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Improvements and New Features --- + + OTP-14915 Application(s): erts + Related Id(s): ERIERL-88 + + Improve search algorithm of abandoned memory carriers. + Instead of limited linear search, each allocator + instance maintain a balanced search tree of all its + abandoned carriers for faster and more exhaustive + search. + + + OTP-14916 Application(s): erts + Related Id(s): ERIERL-88 + + New erts_alloc command line options +M_acnl and + +M_acfml to limit carrier abandonment. + + + OTP-14917 Application(s): erts, runtime_tools + Related Id(s): ERIERL-88 + + New family of erts_alloc strategies: Age Order First + Fit. Similar to "address order", but instead the oldest + possible carrier is always chosen for allocation. + + + OTP-14918 Application(s): erts + Related Id(s): ERIERL-88 + + Add possibility to change allocator options at runtime + with system_info(erts_alloc, ...). Only option sbct + (single block carrier threshold) is currently supported + via this interface. + + + Full runtime dependencies of erts-9.2.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- kernel-5.4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-5.4.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: + -- erts-9.1 (first satisfied in OTP 20.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14823 Application(s): kernel + + Add os:cmd/2 that takes an options map as the second + argument. + + Add max_size as an option to os:cmd/2 that control the + maximum size of the result that os:cmd/2 will return. + + + Full runtime dependencies of kernel-5.4.2: erts-9.1, sasl-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- runtime_tools-1.12.4 -------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.12.4 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Improvements and New Features --- + + OTP-14917 Application(s): erts, runtime_tools + Related Id(s): ERIERL-88 + + New family of erts_alloc strategies: Age Order First + Fit. Similar to "address order", but instead the oldest + possible carrier is always chosen for allocation. + + + Full runtime dependencies of runtime_tools-1.12.4: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.2.4.README.txt b/release-notes/OTP-20.2.4.README.txt new file mode 100644 index 0000000..f2d559c --- /dev/null +++ b/release-notes/OTP-20.2.4.README.txt @@ -0,0 +1,58 @@ +Patch Package: OTP 20.2.4 +Git Tag: OTP-20.2.4 +Date: 2018-02-22 +Trouble Report Id: OTP-14907, OTP-14930, OTP-14935 +Seq num: +System: OTP +Release: 20 +Application: ssh-4.6.5 +Predecessor: OTP 20.2.3 + + Check out the git tag OTP-20.2.4, 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. + + --------------------------------------------------------------------- + --- ssh-4.6.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.6.5 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14907 Application(s): ssh + + Adjusted supervisor timeouts + + + OTP-14930 Application(s): ssh + + Remove ERROR messages for slow process exits + + + --- Improvements and New Features --- + + OTP-14935 Application(s): ssh + + Add option save_accepted_host to ssh:connection. This + option, if set to false, inhibits saving host keys to + e.g the file known_hosts. + + + Full runtime dependencies of ssh-4.6.5: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.2.README.txt b/release-notes/OTP-20.2.README.txt new file mode 100644 index 0000000..5bb828a --- /dev/null +++ b/release-notes/OTP-20.2.README.txt @@ -0,0 +1,1384 @@ +Patch Package: OTP 20.2 +Git Tag: OTP-20.2 +Date: 2017-12-13 +Trouble Report Id: OTP-13832, OTP-13906, OTP-14281, OTP-14446, + OTP-14448, OTP-14475, OTP-14563, OTP-14567, + OTP-14570, OTP-14602, OTP-14620, OTP-14639, + OTP-14642, OTP-14643, OTP-14657, OTP-14663, + OTP-14664, OTP-14670, OTP-14673, OTP-14674, + OTP-14676, OTP-14677, OTP-14678, OTP-14679, + OTP-14685, OTP-14686, OTP-14688, OTP-14689, + OTP-14691, OTP-14693, OTP-14697, OTP-14720, + OTP-14727, OTP-14735, OTP-14740, OTP-14742, + OTP-14743, OTP-14752, OTP-14755, OTP-14757, + OTP-14767, OTP-14773, OTP-14776, OTP-14777, + OTP-14779, OTP-14783, OTP-14784, OTP-14786, + OTP-14787, OTP-14791, OTP-14794, OTP-14796, + OTP-14798, OTP-14801, OTP-14802, OTP-14803, + OTP-14804, OTP-14805 +Seq num: ERIERL-103, ERIERL-52, ERL-261, ERL-409, + ERL-489, ERL-495, ERL-498, ERL-518 +System: OTP +Release: 20 +Application: asn1-5.0.4, common_test-1.15.3, + compiler-7.1.4, cosEvent-2.2.2, + cosEventDomain-1.2.2, cosFileTransfer-1.2.2, + cosNotification-1.2.3, cosProperty-1.2.3, + cosTime-1.2.3, cosTransactions-1.3.3, + crypto-4.2, debugger-4.2.4, dialyzer-3.2.3, + diameter-2.1.3, edoc-0.9.2, eldap-1.2.3, + erl_docgen-0.7.2, erl_interface-3.10.1, + erts-9.2, eunit-2.3.5, hipe-3.17, ic-4.4.3, + inets-6.4.5, jinterface-1.8.1, kernel-5.4.1, + megaco-3.18.3, mnesia-4.15.2, observer-2.6, + odbc-2.12.1, orber-3.8.4, os_mon-2.4.4, + otp_mibs-1.1.2, parsetools-2.1.6, + public_key-1.5.2, runtime_tools-1.12.3, + sasl-3.1.1, snmp-5.2.9, ssh-4.6.3, ssl-8.2.3, + stdlib-3.4.3, syntax_tools-2.1.4, + tools-2.11.1, wx-1.8.3, xmerl-1.3.16 +Predecessor: OTP 20.1.7 + + Check out the git tag OTP-20.2, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14448 Application(s): crypto, ssl + + The crypto API is extended to use private/public keys + stored in an Engine for sign/verify or encrypt/decrypt + operations. + + The ssl application provides an API to use this new + engine concept in TLS. + + + --------------------------------------------------------------------- + --- asn1-5.0.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-5.0.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14786 Application(s): asn1 + Related Id(s): ERL-518 + + There was a issue with BER encoding and the undec_rest + option in generated decoders. An exception could be + thrown instead of returning an error tuple. + + + OTP-14787 Application(s): asn1 + Related Id(s): ERL-518 + + The asn1ct:test functions crashed on decoders generated + with options no_ok_wrapper, undec_rest. + + + Full runtime dependencies of asn1-5.0.4: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.15.3 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.15.3 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Improvements and New Features --- + + OTP-13832 Application(s): common_test + + A new function, ct:remaining_test_procs/0, returns the + identity of test- and group leader processes that are + still running at the time of the call. + + + OTP-14281 Application(s): common_test + + A "latest test result" link is now displayed in the + footer of each test index page, which performs a jump + to the most recently generated test index. This is + useful for making quick comparisons of results between + test runs without having to traverse the log file tree. + + + Full runtime dependencies of common_test-1.15.3: 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.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.1.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14773 Application(s): compiler + Related Id(s): ERL-498 + + The 'deterministic' option was not recognized when + given in a -compile() attribute in the source code. + + + Full runtime dependencies of compiler-7.1.4: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosEvent-2.2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The cosEvent-2.2.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of cosEvent-2.2.2: erts-7.0, kernel-3.0, + orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosEventDomain-1.2.2 -------------------------------------------- + --------------------------------------------------------------------- + + The cosEventDomain-1.2.2 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of cosEventDomain-1.2.2: + cosNotification-1.1.21, erts-7.0, kernel-3.0, orber-3.6.27, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosFileTransfer-1.2.2 ------------------------------------------- + --------------------------------------------------------------------- + + The cosFileTransfer-1.2.2 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of cosFileTransfer-1.2.2: + cosProperty-1.1.17, erts-7.0, inets-5.10, kernel-3.0, orber-3.6.27, + ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosNotification-1.2.3 ------------------------------------------- + --------------------------------------------------------------------- + + The cosNotification-1.2.3 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of cosNotification-1.2.3: cosEvent-2.1.15, + cosTime-1.1.14, erts-7.0, kernel-3.0, orber-3.6.27, stdlib-2.5 + + + --------------------------------------------------------------------- + --- cosProperty-1.2.3 ----------------------------------------------- + --------------------------------------------------------------------- + + The cosProperty-1.2.3 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of cosProperty-1.2.3: erts-7.0, kernel-3.0, + mnesia-4.12, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosTime-1.2.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The cosTime-1.2.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of cosTime-1.2.3: cosEvent-2.1.15, + erts-7.0, kernel-3.0, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- cosTransactions-1.3.3 ------------------------------------------- + --------------------------------------------------------------------- + + The cosTransactions-1.3.3 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of cosTransactions-1.3.3: erts-7.0, + kernel-3.0, orber-3.6.27, stdlib-2.0 + + + --------------------------------------------------------------------- + --- crypto-4.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The crypto-4.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14720 Application(s): crypto + + The compatibility function void HMAC_CTX_free in + crypto.c erroneously tried to return a value. + + + --- Improvements and New Features --- + + OTP-14446 Application(s): crypto + + Rewrite public and private key encode/decode with EVP + api. New RSA padding options added. This is a modified + half of PR-838. + + + OTP-14448 Application(s): crypto, ssl + + *** HIGHLIGHT *** + + The crypto API is extended to use private/public keys + stored in an Engine for sign/verify or encrypt/decrypt + operations. + + The ssl application provides an API to use this new + engine concept in TLS. + + + OTP-14567 Application(s): crypto + + Add support to plug in alternative implementations for + some or all of the cryptographic operations supported + by the OpenSSL Engine API. When configured + appropriately, OpenSSL calls the engine's + implementation of these operations instead of its own. + + + OTP-14639 Application(s): crypto + + Replaced a call of the OpenSSL deprecated function + DH_generate_parameters in crypto.c. + + + OTP-14735 Application(s): crypto + Related Id(s): OTP-14448 + + Documentation added about how to use keys stored in an + Engine. + + + OTP-14801 Application(s): crypto + + Add engine_ ctrl_cmd_string/3,4 the OpenSSL Engine + support in crypto. + + + Full runtime dependencies of crypto-4.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-4.2.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-4.2.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14802 Application(s): debugger + + Do not quote variables and button names in Debugger + windows. The bug was introduced in Erlang/OTP 20.1. + + + Full runtime dependencies of debugger-4.2.4: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The dialyzer-3.2.3 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-14742 Application(s): dialyzer + + The error message returned from Dialyzer when, for + example, a modified record field type is not a subtype + of the declared type, no longer includes a call stack. + The bug was introduced in Erlang/OTP 19.3. + + + OTP-14743 Application(s): dialyzer + + A bug relating to maps and never returning functions + has been fixed. + + + Full runtime dependencies of dialyzer-3.2.3: 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.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-2.1.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14805 Application(s): diameter + + Fix documentation typo: peer_down/3 was written where + peer_down/3 was intended. + + + Full runtime dependencies of diameter-2.1.3: erts-6.4, kernel-3.2, + ssl-6.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- edoc-0.9.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The edoc-0.9.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14777 Application(s): edoc + + The map type is correctly denoted as map() in function + specifications and types. + + + Full runtime dependencies of edoc-0.9.2: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of eldap-1.2.3: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.7.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-0.7.2 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14674 Application(s): erl_docgen + + The style for code, warning and note tags in the pdf + have been changed so they look like the html version. + The spacing around code blocks have been changed for + both html and pdf so it's the same regardless if the + user have a newline after the start tag (or before the + end tag) or not. + + + Full runtime dependencies of erl_docgen-0.7.2: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.10.1 -------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.10.1 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + --------------------------------------------------------------------- + --- erts-9.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-9.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14677 Application(s): erts + + Fix a bug in tracing where the {caller} match spec + function would be set to undefined incorrectly when + used in conjunction with return_to or return_trace on + some functions. + + The functions effected are: erlang:put/2, + erlang:erase/1, erlang:process_info/1,2, + erlang:nif_load/2, erts_internal:garbage_collection/1 + and erts_internal:check_process_code/1. + + Because of this bug, the analysis done by fprof could + become incorrect when the functions above are the + tail-call in a function. + + + OTP-14678 Application(s): erts + Related Id(s): ERL-495 + + Fix emulator deadlock that would happen if trap_exit + was set to true and a process sends an exit signal to + itself using exit(self(), Reason) while receive tracing + was enabled for that process. + + + OTP-14685 Application(s): erts, observer + Related Id(s): OTP-14595, OTP-14603, OTP-14611 + + Writing of crash dumps is significantly faster. + + Maps are now included in crash dumps. + + Constants terms would only be shown in one process, + while other processes referencing the same constant + term would show a marker for incomplete heap. + + + OTP-14691 Application(s): erts + + The fallback home directory for windows has been + changed to be the PROFILE directory instead of the + WINDOWS directory. The fallback is used when the + environment variables HOMEDRIVE and HOMEPATH have not + been set. + + + OTP-14740 Application(s): erts, hipe + + Fix bug for hipe compiled code using <<X/utf32>> binary + construction that could cause faulty result or even VM + crash. + + On architectures other than x86_64, code need to be + recompiled to benefit from this fix. + + + OTP-14752 Application(s): erts + + Fixed bug in erlang:garbage_collect/2 and + erlang:check_process_code/3, when called with option + {async,ReqestId}. Could cause VM crash or heap + corruption if RequestId was an immediate term (like a + pid, atom or small integer). Bug exists since OTP-17.0. + + + OTP-14779 Application(s): erts + + ERL_NIF_MINOR_VERSION wasn't bumped with the addition + of enif_ioq_*. + + + OTP-14791 Application(s): erts + + Purging of loaded code that contained "fake literals" + (for example the magic reference obtained from + 'ets:new/2') would crash the runtime system. Corrected. + + + OTP-14796 Application(s): erts + + Setting the size of the atom table to a number near + 2147483647 (using the '+t' option) would cause the + emulator to exit with a failure to allocate a huge + amount of memory. This has been corrected. Also the + usage message for the '+t' option has been corrected to + show the correct upper limit 2147483647 instead of 0. + + + OTP-14803 Application(s): erts + + Fixed a bug that prevented registered process names + from being resolved in lcnt results. + + + OTP-14804 Application(s): erts + + Formatting bugs were fixed in several HiPE debug BIFs. + + + --- Improvements and New Features --- + + OTP-14686 Application(s): erts, observer + + Binaries and some other data in crash dumps are now + encoded in base64 (instead of in hex), which will + reduce the size of crash dumps. + + A few bugs in the handling of sub binaries in + crashdump_viewer have been fixed. + + + OTP-14689 Application(s): erts + + Micro optimization for send operations of messages to + other nodes. The local ack-message, which is otherwise + sent back from TPC/IP port driver to sending client + process, is now ignored earlier for distributed send + operations. + + + Full runtime dependencies of erts-9.2: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- eunit-2.3.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.3.5 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of eunit-2.3.5: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- hipe-3.17 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The hipe-3.17 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.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14740 Application(s): erts, hipe + + Fix bug for hipe compiled code using <<X/utf32>> binary + construction that could cause faulty result or even VM + crash. + + On architectures other than x86_64, code need to be + recompiled to benefit from this fix. + + + --- Improvements and New Features --- + + OTP-14767 Application(s): hipe + + Added documentation about limitations of hipe compared + to beam compiled code. + + + Full runtime dependencies of hipe-3.17: compiler-5.0, erts-9.2, + kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- ic-4.4.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ic-4.4.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of ic-4.4.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- inets-6.4.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.4.5 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14679 Application(s): inets + + CGI environment variable CONTENT_LENGTH shall be a + string + + + OTP-14727 Application(s): inets + + In relaxed mode disregard Content-Length header if + there is also a Transfer-Encoding header. + + + OTP-14783 Application(s): inets + + Eliminated race condition, that could cause http + request to sporadically fail to complete successfully, + when keep-alive connections are used. + + + Full runtime dependencies of inets-6.4.5: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- jinterface-1.8.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The jinterface-1.8.1 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + --------------------------------------------------------------------- + --- kernel-5.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-5.4.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: + -- erts-9.1 (first satisfied in OTP 20.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14784 Application(s): kernel + + Refactored an internal API. + + + Full runtime dependencies of kernel-5.4.1: erts-9.1, sasl-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- megaco-3.18.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.18.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of megaco-3.18.3: 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.15.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.15.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14776 Application(s): mnesia + Related Id(s): ERIERL-103 + + Fix backup error handling, the real failure reason was + not returned. + + + Full runtime dependencies of mnesia-4.15.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.6 ---------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.6 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14642 Application(s): observer + + A bug introduced in OTP-20 would make Crashdump Viewer + crash when trying to expand an empty binary. This is + now corrected. + + + OTP-14643 Application(s): observer + Related Id(s): ERL-489 + + If a match spec in the config file contained more than + one clause, observer would earlier crash when trying to + display it in the GUI. This is now corrected. + + + OTP-14685 Application(s): erts, observer + Related Id(s): OTP-14595, OTP-14603, OTP-14611 + + Writing of crash dumps is significantly faster. + + Maps are now included in crash dumps. + + Constants terms would only be shown in one process, + while other processes referencing the same constant + term would show a marker for incomplete heap. + + + --- Improvements and New Features --- + + OTP-14686 Application(s): erts, observer + + Binaries and some other data in crash dumps are now + encoded in base64 (instead of in hex), which will + reduce the size of crash dumps. + + A few bugs in the handling of sub binaries in + crashdump_viewer have been fixed. + + + OTP-14755 Application(s): observer + + In order to allow future improvements, Crashdump Viewer + now checks the version tag of the crashdump to see that + it is a known format. If the crashdump version is newer + than Crashdump Viewer is prepared to read, then an + information dialog is displayed before Crashdump Viewer + terminates. + + If an incomplete process heap is discovered in a + crashdump, Crashdump Viewer will now display a warning + for this, similar to the warning displayed when a + crashdump is truncated. Incomplete heaps can occur if + for instance the literals are not included, which is + the case for all dumps prior to OTP-20.2. + + + Full runtime dependencies of observer-2.6: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.12.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.12.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of odbc-2.12.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- orber-3.8.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The orber-3.8.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + OTP-14673 Application(s): orber + + Removed the man warnings by using the code tag instead + of c tag. + + + Full runtime dependencies of orber-3.8.4: erts-7.0, inets-5.10, + kernel-3.0, mnesia-4.12, ssl-5.3.4, stdlib-2.5 + + + --------------------------------------------------------------------- + --- os_mon-2.4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.4.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of os_mon-2.4.4: erts-6.0, kernel-3.0, + mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- otp_mibs-1.1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The otp_mibs-1.1.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of otp_mibs-1.1.2: erts-6.0, kernel-3.0, + mnesia-4.12, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.6 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.1.6 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14697 Application(s): parsetools + + Warnings about unused functions in leexinc.hrl are + suppressed. + + + Full runtime dependencies of parsetools-2.1.6: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.5.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The public_key-1.5.2 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14570 Application(s): public_key + Related Id(s): ERIERL-52, OTP-14676 + + Fixed a bug in public_key:ssh_encode/2 that made it + possible to erroneously encode e.g. an RSA key with + another type e.g. ECDSA in the resulting binary. + + + OTP-14620 Application(s): public_key + + Corrected handling of parameterized EC keys in + public_key:generate_key/1 so that it will work as + expected instead of causing a runtime error in crypto. + + + Full runtime dependencies of public_key-1.5.2: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- runtime_tools-1.12.3 -------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.12.3 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of runtime_tools-1.12.3: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.1.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The sasl-3.1.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13906 Application(s): sasl + Related Id(s): ERL-261 + + The Report Browser, rb, could earlier not handle + reports that were not lists, for example generated by + error_logger:info_report({some, tuple}). This term is + allowed as input to error_logger, but rb would state + that "A report on bad form was encountered". This is + now corrected. + + + Full runtime dependencies of sasl-3.1.1: erts-9.0, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.2.9 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.2.9 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of snmp-5.2.9: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.6.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.6.3 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14602 Application(s): ssh + + Passphrase option for ecdsa public keys was missing. + + + --- Improvements and New Features --- + + OTP-14676 Application(s): ssh + Related Id(s): ERIERL-52, OTP-14570 + + The host and user public key handling is hardened so + that a faulty plugin can't deliver a key of wrong type. + + Better checks in the server of the available hostkey's + types at start and at each accept. + + Better checks in the client of the available user + public key types at connect. + + + OTP-14757 Application(s): ssh + + SSH can now fetch the host key from the private keys + stored in an Engine. See the crypto application for + details about Engines. + + + Full runtime dependencies of ssh-4.6.3: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-8.2.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.2.3 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5 (first satisfied in OTP 20.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14664 Application(s): ssl + + Packet options cannot be supported for unreliable + transports, that is, packet option for DTLS over udp + will not be supported. + + + OTP-14794 Application(s): ssl + + Ensure data delivery before close if possible. This fix + is related to fix in PR-1479. + + + --- Improvements and New Features --- + + OTP-14448 Application(s): crypto, ssl + + *** HIGHLIGHT *** + + The crypto API is extended to use private/public keys + stored in an Engine for sign/verify or encrypt/decrypt + operations. + + The ssl application provides an API to use this new + engine concept in TLS. + + + OTP-14563 Application(s): ssl + + Implemented renegotiation for DTLS + + + OTP-14657 Application(s): ssl + + A new command line option -ssl_dist_optfile has been + added to facilitate specifying the many options needed + when using SSL as the distribution protocol. + + + Full runtime dependencies of ssl-8.2.3: crypto-4.2, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.5, stdlib-3.2 + + + --------------------------------------------------------------------- + --- stdlib-3.4.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.4.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14663 Application(s): stdlib + + Make ets:i/1 exit cleaner when ^D is input while + browsing a table. Only the old Erlang shell is affected + (erl(1) flag -oldshell). + + + OTP-14693 Application(s): stdlib + + Fixed handling of windows UNC paths in module filename. + + + --- Improvements and New Features --- + + OTP-14670 Application(s): stdlib + + Improve performance of the new string functionality + when handling ASCII characters. + + + OTP-14798 Application(s): stdlib + + Added a clarification to the documentation of + unicode:characters_to_list/2. + + + Full runtime dependencies of stdlib-3.4.3: compiler-5.0, crypto-3.3, + erts-9.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.4 ---------------------------------------------- + --------------------------------------------------------------------- + + The syntax_tools-2.1.4 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of syntax_tools-2.1.4: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tools-2.11.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The tools-2.11.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 + 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-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of tools-2.11.1: compiler-5.0, erts-9.1, + kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-1.8.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.8.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14688 Application(s): wx + + wx crashes in otp 20.1 if empty binaries was sent down + as arguments. + + + Full runtime dependencies of wx-1.8.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.16 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.16 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14475 Application(s): cosEvent, cosEventDomain, + cosFileTransfer, cosNotification, cosProperty, cosTime, + cosTransactions, eldap, erl_interface, eunit, ic, + jinterface, megaco, odbc, orber, os_mon, otp_mibs, + runtime_tools, snmp, syntax_tools, tools, xmerl + Related Id(s): ERL-409, PR-1493 + + Removed all old unused files in the documentation. + + + Full runtime dependencies of xmerl-1.3.16: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.1.README.txt b/release-notes/OTP-20.3.1.README.txt new file mode 100644 index 0000000..ae6a240 --- /dev/null +++ b/release-notes/OTP-20.3.1.README.txt @@ -0,0 +1,45 @@ +Patch Package: OTP 20.3.1 +Git Tag: OTP-20.3.1 +Date: 2018-03-16 +Trouble Report Id: OTP-14981 +Seq num: +System: OTP +Release: 20 +Application: ssl-8.2.5 +Predecessor: OTP 20.3 + + Check out the git tag OTP-20.3.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. + + --------------------------------------------------------------------- + --- ssl-8.2.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.2.5 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5 (first satisfied in OTP 20.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14981 Application(s): ssl + + Fix filter function to not incorrectly exclude AEAD + cipher suites + + + Full runtime dependencies of ssl-8.2.5: crypto-4.2, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.5, stdlib-3.2 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.2.README.txt b/release-notes/OTP-20.3.2.README.txt new file mode 100644 index 0000000..590c9fb --- /dev/null +++ b/release-notes/OTP-20.3.2.README.txt @@ -0,0 +1,66 @@ +Patch Package: OTP 20.3.2 +Git Tag: OTP-20.3.2 +Date: 2018-03-22 +Trouble Report Id: OTP-13995, OTP-14990 +Seq num: +System: OTP +Release: 20 +Application: ssh-4.6.7, stdlib-3.4.5 +Predecessor: OTP 20.3.1 + + Check out the git tag OTP-20.3.2, 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. + + --------------------------------------------------------------------- + --- ssh-4.6.7 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.6.7 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14990 Application(s): ssh + + Fix bad spec in ssh.hrl: double_algs(). + + + Full runtime dependencies of ssh-4.6.7: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --- stdlib-3.4.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.4.5 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13995 Application(s): stdlib + + The Module:init/1 function in gen_statem may return an + actions list containing any action, but an erroneous + check only allowed state enter actions so e.g + {next_event,internal,event} caused a server crash. This + bug has been fixed. + + + Full runtime dependencies of stdlib-3.4.5: compiler-5.0, crypto-3.3, + erts-9.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.3.README.txt b/release-notes/OTP-20.3.3.README.txt new file mode 100644 index 0000000..63d5a20 --- /dev/null +++ b/release-notes/OTP-20.3.3.README.txt @@ -0,0 +1,43 @@ +Patch Package: OTP 20.3.3 +Git Tag: OTP-20.3.3 +Date: 2018-04-19 +Trouble Report Id: OTP-15017 +Seq num: +System: OTP +Release: 20 +Application: sasl-3.1.2 +Predecessor: OTP 20.3.2 + + Check out the git tag OTP-20.3.3, 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. + + --------------------------------------------------------------------- + --- sasl-3.1.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The sasl-3.1.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15017 Application(s): sasl + + When upgrading with instruction 'restart_new_emulator', + the generated temporary boot file used 'kernelProcess' + statements from the old release instead of the new + release. This is now corrected. + + This correction is needed for upgrade to OTP-21. + + + Full runtime dependencies of sasl-3.1.2: erts-9.0, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.4.README.txt b/release-notes/OTP-20.3.4.README.txt new file mode 100644 index 0000000..1693f8e --- /dev/null +++ b/release-notes/OTP-20.3.4.README.txt @@ -0,0 +1,112 @@ +Patch Package: OTP 20.3.4 +Git Tag: OTP-20.3.4 +Date: 2018-04-20 +Trouble Report Id: OTP-15004, OTP-15007, OTP-15018, OTP-15022, + OTP-15023 +Seq num: ERIERL-150, ERIERL-163 +System: OTP +Release: 20 +Application: erl_interface-3.10.2, ic-4.4.4, inets-6.5.1, + ssh-4.6.8 +Predecessor: OTP 20.3.3 + + Check out the git tag OTP-20.3.4, 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. + + --------------------------------------------------------------------- + --- erl_interface-3.10.2 -------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.10.2 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15022 Application(s): erl_interface + Related Id(s): ERIERL-163 + + Fix bug in ei_connect functions that may cause failure + due to insufficient buffer space for gethostbyname_r. + + + OTP-15023 Application(s): erl_interface, ic + Related Id(s): ERIERL-150 + + Optimize encoding/decoding for pure 7-bit ascii atoms. + + + --------------------------------------------------------------------- + --- ic-4.4.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ic-4.4.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15023 Application(s): erl_interface, ic + Related Id(s): ERIERL-150 + + Optimize encoding/decoding for pure 7-bit ascii atoms. + + + Full runtime dependencies of ic-4.4.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- inets-6.5.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.5.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15007 Application(s): inets + + Fix broken options handling in httpc (ERL-441). + + + Full runtime dependencies of inets-6.5.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssh-4.6.8 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.6.8 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-15004 Application(s): ssh + + An ssh_sftp server (running version 6) could fail if it + is told to remove a file which in fact is a directory. + + + OTP-15018 Application(s): ssh + + Fix rare spurios shutdowns of ssh servers when + receiveing {'EXIT',_,normal} messages. + + + Full runtime dependencies of ssh-4.6.8: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.5.README.txt b/release-notes/OTP-20.3.5.README.txt new file mode 100644 index 0000000..12d7681 --- /dev/null +++ b/release-notes/OTP-20.3.5.README.txt @@ -0,0 +1,64 @@ +Patch Package: OTP 20.3.5 +Git Tag: OTP-20.3.5 +Date: 2018-05-03 +Trouble Report Id: OTP-15034, OTP-15050 +Seq num: +System: OTP +Release: 20 +Application: erts-9.3.1, ssl-8.2.6 +Predecessor: OTP 20.3.4 + + Check out the git tag OTP-20.3.5, 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. + + --------------------------------------------------------------------- + --- erts-9.3.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.3.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15034 Application(s): erts + + Fixed a crash in heart:get_cmd/0 when the stored + command was too long. + + + Full runtime dependencies of erts-9.3.1: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- ssl-8.2.6 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.2.6 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5 (first satisfied in OTP 20.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-15050 Application(s): ssl + + Proper handling of clients that choose to send an empty + answer to a certificate request + + + Full runtime dependencies of ssl-8.2.6: crypto-4.2, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.5, stdlib-3.2 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.6.README.txt b/release-notes/OTP-20.3.6.README.txt new file mode 100644 index 0000000..e717cd2 --- /dev/null +++ b/release-notes/OTP-20.3.6.README.txt @@ -0,0 +1,75 @@ +Patch Package: OTP 20.3.6 +Git Tag: OTP-20.3.6 +Date: 2018-05-08 +Trouble Report Id: OTP-15064, OTP-15066, OTP-15073, OTP-15074 +Seq num: ERL-618 +System: OTP +Release: 20 +Application: crypto-4.2.2, ssh-4.6.9 +Predecessor: OTP 20.3.5 + + Check out the git tag OTP-20.3.6, 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. + + --------------------------------------------------------------------- + --- crypto-4.2.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.2.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15073 Application(s): crypto + + If OPENSSL_NO_EC was set, the compilation of the crypto + nifs failed. + + + OTP-15074 Application(s): crypto + Related Id(s): ERL-618 + + C-compile errors for LibreSSL 2.7.0 - 2.7.2 fixed + + + Full runtime dependencies of crypto-4.2.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ssh-4.6.9 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.6.9 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-15064 Application(s): ssh + + Host key hash erroneously calculated for clients + following draft-00 of RFC 4419, for example PuTTY + + + OTP-15066 Application(s): ssh + + Renegotiation could fail in some states + + + Full runtime dependencies of ssh-4.6.9: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.7.README.txt b/release-notes/OTP-20.3.7.README.txt new file mode 100644 index 0000000..6d4f360 --- /dev/null +++ b/release-notes/OTP-20.3.7.README.txt @@ -0,0 +1,89 @@ +Patch Package: OTP 20.3.7 +Git Tag: OTP-20.3.7 +Date: 2018-06-05 +Trouble Report Id: OTP-15080, OTP-15085, OTP-15091, OTP-15092 +Seq num: +System: OTP +Release: 20 +Application: erl_docgen-0.7.3, erts-9.3.2, inets-6.5.2 +Predecessor: OTP 20.3.6 + + Check out the git tag OTP-20.3.7, 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. + + --------------------------------------------------------------------- + --- erl_docgen-0.7.3 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-0.7.3 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15091 Application(s): erl_docgen + + Update makefile so db_funcs.xsl is a part of the + installed application. + + + Full runtime dependencies of erl_docgen-0.7.3: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erts-9.3.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.3.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15080 Application(s): erts + + Fixed bug in enif_binary_to_term which could cause + memory corruption for immediate terms (atoms, small + integers, pids, ports, empty lists). + + + OTP-15085 Application(s): erts + + Fixed bug in erlang:system_profile/2 that could cause + superfluous {profile,_,active,_,_} messages for + terminating processes. + + + Full runtime dependencies of erts-9.3.2: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- inets-6.5.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.5.2 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15092 Application(s): inets + + inets: httpd - Gracefully handle bad headers + + The option max_headers operated on the individual + header length instead of the total length of all + headers. Also headers with empty keys are now + discarded. + + + Full runtime dependencies of inets-6.5.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.8.1.README.txt b/release-notes/OTP-20.3.8.1.README.txt new file mode 100644 index 0000000..50fce39 --- /dev/null +++ b/release-notes/OTP-20.3.8.1.README.txt @@ -0,0 +1,101 @@ +Patch Package: OTP 20.3.8.1 +Git Tag: OTP-20.3.8.1 +Date: 2018-06-25 +Trouble Report Id: OTP-15098, OTP-15120, OTP-15148, OTP-15149 +Seq num: ERIERL-177, ERIERL-192, ERIERL-194, + ERIERL-199 +System: OTP +Release: 20 +Application: inets-6.5.2.1, ssh-4.6.9.1, + syntax_tools-2.1.4.1 +Predecessor: OTP 20.3.8 + + Check out the git tag OTP-20.3.8.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. + + --------------------------------------------------------------------- + --- inets-6.5.2.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.5.2.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Improvements and New Features --- + + OTP-15120 Application(s): inets + Related Id(s): ERIERL-192 + + Options added for setting low-level properties on the + underlying TCP connections. The options are: sock_ctrl, + sock_data_act and sock_data_pass. See the manual for + details. + + + Full runtime dependencies of inets-6.5.2.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssh-4.6.9.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.6.9.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 + dependencies have to be satisfied: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-15148 Application(s): ssh + Related Id(s): ERIERL-194 + + SFTP clients reported the error reason "" if a non-OTP + sftp server was killed during a long file transmission. + + Now the signal name (for example "KILL") will be the + error reason if the server's reason is empty. + + The documentation also lacked type information about + this class of errors. + + + OTP-15149 Application(s): ssh + Related Id(s): ERIERL-199 + + Fix ssh_sftp decode error for sftp protocol version 4 + + + Full runtime dependencies of ssh-4.6.9.1: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.4.1 -------------------------------------------- + --------------------------------------------------------------------- + + The syntax_tools-2.1.4.1 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15098 Application(s): syntax_tools + Related Id(s): ERIERL-177 + + Fix a bug regarding reverting map types. + + + Full runtime dependencies of syntax_tools-2.1.4.1: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.8.README.txt b/release-notes/OTP-20.3.8.README.txt new file mode 100644 index 0000000..be91065 --- /dev/null +++ b/release-notes/OTP-20.3.8.README.txt @@ -0,0 +1,63 @@ +Patch Package: OTP 20.3.8 +Git Tag: OTP-20.3.8 +Date: 2018-06-14 +Trouble Report Id: OTP-14196, OTP-15109 +Seq num: ERIERL-161 +System: OTP +Release: 20 +Application: erts-9.3.3, snmp-5.2.11 +Predecessor: OTP 20.3.7 + + Check out the git tag OTP-20.3.8, 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. + + --------------------------------------------------------------------- + --- erts-9.3.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The erts-9.3.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15109 Application(s): erts + + Fixed bug in ets that could cause VM crash if process A + terminates after fixating a table and process B deletes + the table at "the same time". The table fixation could + be done with ets:safe_fixtable or if process A + terminates in the middle of a long running select or + match call. + + + Full runtime dependencies of erts-9.3.3: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- snmp-5.2.11 ----------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.2.11 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14196 Application(s): snmp + Related Id(s): ERIERL-161 + + The Snmp MIB compiler now allows using a + TEXTUAL-CONVENTION type before defining it. + + + Full runtime dependencies of snmp-5.2.11: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-20.3.README.txt b/release-notes/OTP-20.3.README.txt new file mode 100644 index 0000000..ccad6fb --- /dev/null +++ b/release-notes/OTP-20.3.README.txt @@ -0,0 +1,775 @@ +Patch Package: OTP 20.3 +Git Tag: OTP-20.3 +Date: 2018-03-14 +Trouble Report Id: OTP-13882, OTP-14194, OTP-14204, OTP-14725, + OTP-14760, OTP-14816, OTP-14817, OTP-14820, + OTP-14828, OTP-14832, OTP-14839, OTP-14840, + OTP-14842, OTP-14843, OTP-14846, OTP-14847, + OTP-14850, OTP-14852, OTP-14854, OTP-14856, + OTP-14858, OTP-14860, OTP-14863, OTP-14871, + OTP-14873, OTP-14876, OTP-14879, OTP-14881, + OTP-14886, OTP-14889, OTP-14890, OTP-14891, + OTP-14892, OTP-14898, OTP-14908, OTP-14911, + OTP-14912, OTP-14913, OTP-14919, OTP-14920, + OTP-14921, OTP-14925, OTP-14926, OTP-14929, + OTP-14933, OTP-14938, OTP-14939, OTP-14940, + OTP-14942, OTP-14944, OTP-14947, OTP-14952, + OTP-14953 +Seq num: ERIERL-117, ERIERL-124, ERIERL-144, ERL-527, + ERL-529, ERL-534, ERL-537, ERL-544, ERL-548, + ERL-551, ERL-564, ERL-565 +System: OTP +Release: 20 +Application: asn1-5.0.5, common_test-1.15.4, + compiler-7.1.5, crypto-4.2.1, dialyzer-3.2.4, + diameter-2.1.4, erts-9.3, hipe-3.17.1, + inets-6.5, kernel-5.4.3, observer-2.7, + runtime_tools-1.12.5, snmp-5.2.10, ssh-4.6.6, + ssl-8.2.4, stdlib-3.4.4, tools-2.11.2 +Predecessor: OTP 20.2.4 + + Check out the git tag OTP-20.3, 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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14760 Application(s): ssl + + Added new API functions to facilitate cipher suite + handling + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-14850 Application(s): erts, hipe + Related Id(s): PR-1664 + + Fix HiPE bug for binary constructs like <<X/utf8>> + which could in rare cases cause faulty results or VM + crash. + + This fix affects both the hipe compiler and erts + runtime in an *incompatible* way. Old hipe compiled + files need to be recompiled to load and run properly as + native. + + + --------------------------------------------------------------------- + --- asn1-5.0.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + The asn1-5.0.5 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13882 Application(s): asn1 + Related Id(s): ERIERL-144 + + Dialyzer suppression has been added for the generated + ASN.1 helper function to_bitstring/1 that previously + created irrelevant warnings. + + + Full runtime dependencies of asn1-5.0.5: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.15.4 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.15.4 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14953 Application(s): common_test + + Fixed problem with 'skip_groups' in combination with + 'all suites' option in test specification. + + + Full runtime dependencies of common_test-1.15.4: 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.5 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.1.5 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14863 Application(s): compiler + + The internal compiler pass (beam_validator) that + validates the generated code has been strengthened. + + When compiling from BEAM assembly code, the beam_type + optimizer pass could make the code unsafe. Corrected. + + + OTP-14898 Application(s): compiler + + Corrected optimizations of integers matched out from + binaries and used in bit operations. + + + Full runtime dependencies of compiler-7.1.5: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-4.2.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.2.1 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14873 Application(s): crypto + + Fix build error caused by removed RSA padding functions + in LibreSSL >= 2.6.1 + + + Full runtime dependencies of crypto-4.2.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- dialyzer-3.2.4 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The dialyzer-3.2.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: + -- hipe-3.16.1 (first satisfied in OTP 20.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14858 Application(s): dialyzer + Related Id(s): ERL-551 + + Fix bugs concerning erlang:abs/1 and erlang:bsl/2. + + + OTP-14911 Application(s): dialyzer + + Fix a bug that caused Dialyzer to crash instead of + emitting a warning. + + + OTP-14925 Application(s): dialyzer + Related Id(s): ERL-565 + + Fix a bug concerning parameterized opaque types. + + + Full runtime dependencies of dialyzer-3.2.4: 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.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-2.1.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14839 Application(s): diameter + + Fix close of diameter_tcp/sctp listening socket at + diameter:remove_transport/2, that was broken in + diameter 2.1. A reconfigured transport could not listen + on the same endpoint as a result. + + + OTP-14947 Application(s): diameter + Related Id(s): ERIERL-124 + + Fix handling of SUSPECT connections at service + termination. A connection with this watchdog state + caused diameter_service:terminate/2 to fail. + + + Full runtime dependencies of diameter-2.1.4: erts-6.4, kernel-3.2, + ssl-6.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- erts-9.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-9.3 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14840 Application(s): erts, otp + Related Id(s): ERL-529 + + Fixed a configure test for libz internals that + unintentionally caused various native code in OTP to + link against libz. Under certain circumstances this + caused the build of OTP to fail. + + + OTP-14847 Application(s): erts + Related Id(s): ERL-544 + + File names containing unicode codepoints larger than + 255 were not correctly encoded in stack traces. + + + OTP-14850 Application(s): erts, hipe + Related Id(s): PR-1664 + + *** POTENTIAL INCOMPATIBILITY *** + + Fix HiPE bug for binary constructs like <<X/utf8>> + which could in rare cases cause faulty results or VM + crash. + + This fix affects both the hipe compiler and erts + runtime in an *incompatible* way. Old hipe compiled + files need to be recompiled to load and run properly as + native. + + + OTP-14876 Application(s): erts + Related Id(s): ERL-548 + + Fix term_to_binary/2 spec for minor_version. + + + OTP-14879 Application(s): erts + + Fix bug in erlang:binary_to_integer/2 where invalid + characters were not detected for bases larger then 10. + e.g. binary_to_integer(<<":">>, 16) would return 3 and + not badarg as it should. + + + OTP-14890 Application(s): erts + + Fixed bug in float_to_list/2 and float_to_binary/2 with + option decimals that caused a faulty rounding up of the + last decimal digit for about 6% of floats with a + fraction part. + + For example, float_to_list(0.145, [{decimals,1}]) + returned "0.2" instead of "0.1". + + + OTP-14891 Application(s): erts + + Fix bug causing slow hipe execution in modules loaded + early during boot or loaded by code:atomic_load or + code:finish_loading. + + + OTP-14920 Application(s): erts + + Fixed a buffer overflow in an internal string + formatting function that could be hit if specifying a + long floating-point format specifier to erts_sprintf or + similar. + + + OTP-14921 Application(s): erts + + erlang:iolist_to_iovec/1 and enif_inspect_iovec will no + longer fail when provided with binaries that have been + matched-out on a non-byte boundary. + + + OTP-14926 Application(s): erts + + iolist_to_binary/1 and erlang:iolist_to_iovec/1 will + now badarg if supplied with a bitstring (without a + list). + + + OTP-14933 Application(s): erts, kernel + Related Id(s): ERL-564, PR-1716 + + Reject loading modules with names containing directory + separators ('/' or '\' on Windows). + + + OTP-14938 Application(s): erts + + Fix potential dead-lock when the tracer process dies + while a the traced process is running on a dirty + scheduler. + + + --- Improvements and New Features --- + + OTP-14820 Application(s): erts, observer + + More crash dump info such as: process binary virtual + heap stats, full info for process causing out-of-mem + during GC, more port related info, and dirty scheduler + info. + + + Full runtime dependencies of erts-9.3: kernel-5.0, sasl-3.0.1, + stdlib-3.0 + + + --------------------------------------------------------------------- + --- hipe-3.17.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The hipe-3.17.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: + -- erts-9.3 (first satisfied in OTP 20.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14850 Application(s): erts, hipe + Related Id(s): PR-1664 + + *** POTENTIAL INCOMPATIBILITY *** + + Fix HiPE bug for binary constructs like <<X/utf8>> + which could in rare cases cause faulty results or VM + crash. + + This fix affects both the hipe compiler and erts + runtime in an *incompatible* way. Old hipe compiled + files need to be recompiled to load and run properly as + native. + + + OTP-14886 Application(s): hipe + + The BEAM compiler chooses not to perform tailcall + optimisations for some calls in tail position, for + example to some built-in functions. However, when the + ErLLVM HiPE backend is used, LLVM may choose to perform + tailcall optimisation on these calls, breaking the + expected semantics. + + To preserve the precise semantics exhibited by BEAM, + the 'notail' marker, present in LLVM since version 3.8, + is added to call instructions that BEAM has not turned + into tail calls, which inhibits LLVM from performing + tail-call optimisation in turn. + + + Full runtime dependencies of hipe-3.17.1: compiler-5.0, erts-9.3, + kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-6.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-6.5 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14908 Application(s): inets + + httpc_manager crashes when a long running request is + sent on a persistent HTTP connection (keep-alive). + Fixed httpc_manager to use proper timeouts on + keep-alive connections. + + + --- Improvements and New Features --- + + OTP-14854 Application(s): inets + + Add support for unix domain sockets in the http client. + + + Full runtime dependencies of inets-6.5: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- kernel-5.4.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-5.4.3 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.3 (first satisfied in OTP 20.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14889 Application(s): kernel, stdlib + + Correct a few contracts. + + + OTP-14933 Application(s): erts, kernel + Related Id(s): ERL-564, PR-1716 + + Reject loading modules with names containing directory + separators ('/' or '\' on Windows). + + + OTP-14940 Application(s): kernel + + Fix bug in handling of os:cmd/2 option max_size on + windows. + + + Full runtime dependencies of kernel-5.4.3: erts-9.3, sasl-3.0, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.7 ---------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.7 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14842 Application(s): observer + Related Id(s): ERL-534 + + etop.hrl used a relative path to include + observer_backend.hrl, this is now changed to use + include_lib instead. runtime_tools/include is added to + the tertiary bootstrap. + + + OTP-14846 Application(s): observer + Related Id(s): ERL-537 + + If a crashdump was truncated in the attributes section + for a module, crashdump_viewer would crash when a + module view was opened from the GUI. This bug was + introduced in OTP-20.2 and is now corrected. + + + OTP-14856 Application(s): observer + Related Id(s): ERIERL-117 + + Optimized ets and mnesia table view tab in observer + gui, listing 10000 tables was previously very slow. + + + --- Improvements and New Features --- + + OTP-14725 Application(s): observer + + When a process has many links and/or monitors, it could + earlier take very long time to display the process + information window. This is now improved by only + showing a few links and monitors, and then an link + named "more..." to expand the rest. + + + OTP-14820 Application(s): erts, observer + + More crash dump info such as: process binary virtual + heap stats, full info for process causing out-of-mem + during GC, more port related info, and dirty scheduler + info. + + + Full runtime dependencies of observer-2.7: erts-7.0, et-1.5, + inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.12.5 -------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.12.5 application can be applied independently of + other applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14816 Application(s): runtime_tools + + system_information:to_file/1 will now use slightly less + memory. + + + Full runtime dependencies of runtime_tools-1.12.5: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- snmp-5.2.10 ----------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.2.10 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14204 Application(s): snmp + Related Id(s): PR-1726 + + The example MIB EX1-MIB in the SNMP application has + been corrected to match its example. + + + Full runtime dependencies of snmp-5.2.10: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.6.6 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.6.6 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: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5.2 (first satisfied in OTP 20.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14939 Application(s): ssh + + Remove a blocking risk when a channel is closed and an + operation is tried on that channel after at least a + second's time gap. + + + --- Improvements and New Features --- + + OTP-14194 Application(s): ssh + Related Id(s): OTP-12487 + + Added ssh_compat_SUITE. + + This suite contains a number of interoperability tests + mainly with OpenSSH. The tests start docker containers + with different OpenSSH and OpenSSL/LibreSSLcryptolib + versions and performs a number of tests of supported + algorithms. + + All login methods and all user's public key types are + tested both for the client and the server. + + All algorithms for kex, cipher, host key, mac and + compressions are tested with a number of exec and sftp + tests, both for the client and the server. + + + OTP-14881 Application(s): ssh + + Default exec is disabled when a user-defined shell is + enabled. + + + Full runtime dependencies of ssh-4.6.6: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-8.2.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-8.2.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 + dependencies have to be satisfied: + -- crypto-4.2 (first satisfied in OTP 20.2) + -- public_key-1.5 (first satisfied in OTP 20.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-14843 Application(s): ssl + + Optimization of bad merge conflict resolution causing + dubble decode + + + OTP-14852 Application(s): ssl + + Restore error propagation to OTP-19.3 behaviour, in + OTP-20.2 implementation adjustments to gen_statem + needed some further adjustments to avoid a race + condition. This could cause a TLS server to not always + report file path errors correctly. + + + OTP-14871 Application(s): ssl + + Corrected RC4 suites listing function to regard TLS + version + + + OTP-14919 Application(s): ssl + + Fix alert handling so that unexpected messages are + logged and alerted correctly + + + OTP-14929 Application(s): ssl + + Fix alert handling so that unexpected messages are + logged and alerted correctly + + + OTP-14952 Application(s): ssl + + Correct handling of anonymous cipher suites + + + --- Improvements and New Features --- + + OTP-14760 Application(s): ssl + + *** HIGHLIGHT *** + + Added new API functions to facilitate cipher suite + handling + + + OTP-14828 Application(s): ssl + + Correct TLS_FALLBACK_SCSV handling so that this special + flag suite is always placed last in the cipher suite + list in accordance with the specs. Also make sure this + functionality is used in DTLS. + + + OTP-14892 Application(s): ssl + + Add TLS record version sanity check for early as + possible error detection and consistency in ALERT codes + generated + + + Full runtime dependencies of ssl-8.2.4: crypto-4.2, erts-7.0, + inets-5.10.7, kernel-3.0, public_key-1.5, stdlib-3.2 + + + --------------------------------------------------------------------- + --- stdlib-3.4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.4.4 application can be applied independently of other + applications on a full OTP 20 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-14832 Application(s): stdlib + Related Id(s): ERL-527 + + Correct filelib:find_source() and filelib:find_file() + to by default also search one level below src. This is + in accordance with the Design Principles which states + that an application can have Erlang source files one + level below the src directory. + + + OTP-14860 Application(s): stdlib + Related Id(s): 1670, PR + + The contract of erl_tar:table/2 is corrected. + + + OTP-14889 Application(s): kernel, stdlib + + Correct a few contracts. + + + OTP-14942 Application(s): stdlib + Related Id(s): PR-1702 + + Fix string:prefix/2 to handle an empty string as second + argument. + + + Full runtime dependencies of stdlib-3.4.4: compiler-5.0, crypto-3.3, + erts-9.0, kernel-5.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- tools-2.11.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The tools-2.11.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 + 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-14817 Application(s): tools + Related Id(s): 1641, PR + + A counting bug is corrected in Cover. The bug was + introduced in Erlang/OTP 18.0. + + + OTP-14912 Application(s): tools + + The lcnt server will no longer crash if + lcnt:information/0 is called before lcnt:collect/0. + + + OTP-14913 Application(s): tools + + lcnt:collect will now implicitly start the lcnt server, + as per the documentation. + + + --- Improvements and New Features --- + + OTP-14944 Application(s): tools + + Improved indentation in emacs and various other + updates. + + + Full runtime dependencies of tools-2.11.2: compiler-5.0, erts-9.1, + kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.0-rc1.README.txt b/release-notes/OTP-21.0-rc1.README.txt new file mode 100644 index 0000000..67fb715 --- /dev/null +++ b/release-notes/OTP-21.0-rc1.README.txt @@ -0,0 +1,2773 @@ +Patch Package: OTP 21.0 +Git Tag: OTP-21.0 +Date: 2018-05-02 +Trouble Report Id: OTP-10551, OTP-11462, OTP-11694, OTP-13019, + OTP-13073, OTP-13133, OTP-13295, OTP-13370, + OTP-13413, OTP-13713, OTP-13760, OTP-13761, + OTP-13764, OTP-14012, OTP-14015, OTP-14019, + OTP-14113, OTP-14256, OTP-14346, OTP-14370, + OTP-14439, OTP-14459, OTP-14465, OTP-14469, + OTP-14492, OTP-14493, OTP-14496, OTP-14497, + OTP-14501, OTP-14502, OTP-14503, OTP-14505, + OTP-14508, OTP-14513, OTP-14518, OTP-14525, + OTP-14537, OTP-14543, OTP-14547, OTP-14575, + OTP-14577, OTP-14586, OTP-14589, OTP-14594, + OTP-14604, OTP-14610, OTP-14613, OTP-14615, + OTP-14624, OTP-14626, OTP-14637, OTP-14651, + OTP-14652, OTP-14654, OTP-14666, OTP-14667, + OTP-14675, OTP-14680, OTP-14681, OTP-14682, + OTP-14683, OTP-14687, OTP-14692, OTP-14712, + OTP-14713, OTP-14719, OTP-14726, OTP-14729, + OTP-14747, OTP-14764, OTP-14768, OTP-14769, + OTP-14774, OTP-14780, OTP-14782, OTP-14785, + OTP-14788, OTP-14789, OTP-14795, OTP-14797, + OTP-14808, OTP-14824, OTP-14826, OTP-14830, + OTP-14834, OTP-14844, OTP-14851, OTP-14855, + OTP-14861, OTP-14864, OTP-14880, OTP-14882, + OTP-14884, OTP-14896, OTP-14899, OTP-14900, + OTP-14901, OTP-14902, OTP-14903, OTP-14904, + OTP-14909, OTP-14910, OTP-14928, OTP-14931, + OTP-14932, OTP-14934, OTP-14937, OTP-14941, + OTP-14943, OTP-14948, OTP-14950, OTP-14951, + OTP-14954, OTP-14955, OTP-14956, OTP-14957, + OTP-14958, OTP-14959, OTP-14960, OTP-14961, + OTP-14965, OTP-14966, OTP-14968, OTP-14969, + OTP-14970, OTP-14971, OTP-14975, OTP-14976, + OTP-14977, OTP-14978, OTP-14979, OTP-14983, + OTP-14986, OTP-14988, OTP-14991, OTP-14992, + OTP-14993, OTP-14994, OTP-14996, OTP-15001, + OTP-15002, OTP-15003, OTP-15004, OTP-15006, + OTP-15008, OTP-15009, OTP-15013, OTP-15015, + OTP-15021, OTP-15024, OTP-15025, OTP-15026, + OTP-15027, OTP-15028, OTP-15029, OTP-15030, + OTP-15031, OTP-15032, OTP-15033, OTP-15035, + OTP-15036, OTP-15037, OTP-15039, OTP-15041, + OTP-15042, OTP-15044, OTP-15045, OTP-15047, + OTP-15048, OTP-15049, OTP-15050 +Seq num: ERL-327, ERL-370, ERL-444, ERL-500, ERL-503, + ERL-511, ERL-514, ERL-549, ERL-550, ERL-557, + ERL-563, ERL-572, ERL-576, ERL-579, ERL-598, + ERL-601, ERL-613, ERL-614, ERL-88 +System: OTP +Release: 21 +Application: asn1-5.0.6, common_test-1.16, compiler-7.2, + crypto-4.3, debugger-4.2.5, dialyzer-3.3, + diameter-2.1.5, edoc-0.9.3, eldap-1.2.4, + erl_docgen-0.8, erl_interface-3.10.3, + erts-10.0, et-1.6.2, eunit-2.3.6, ftp-1.0, + hipe-3.18, inets-7.0, jinterface-1.9, + kernel-6.0, mnesia-4.15.4, observer-2.8, + os_mon-2.4.5, parsetools-2.1.7, + public_key-1.6, reltool-0.7.6, + runtime_tools-1.13, sasl-3.2, ssh-4.7, + ssl-9.0, stdlib-3.5, syntax_tools-2.1.5, + tftp-1.0, tools-3.0, wx-1.8.4, xmerl-1.3.17 +Predecessor: OTP + + Check out the git tag OTP-21.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14370 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was done toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the signal has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14459 Application(s): erts, kernel + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14497 Application(s): compiler, erts + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confuses, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14502 Application(s): erts + + Creation of small maps with literal keys has been + optimized to be faster and potentially use less memory + . The keys are combined into a literal key tuple which + is put into the literal pool. The key tuple can be + shared between many instances of maps having the same + keys. + + + OTP-14518 Application(s): erts, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14626 Application(s): compiler, erts + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14692 Application(s): compiler, erts + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14899 Application(s): erts, kernel + + seq_trace labels may now be any erlang term. + + + OTP-14928 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14968 Application(s): compiler + Related Id(s): ERL-563 + + When compiling modules with huge functions, the + compiler would generate a lot of atoms for its + internal, sometimes so many that the atom table would + overflow. The compiler has been rewritten to generate + far less internal atoms to avoid filling the atom + table. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-11694 Application(s): erts + + The erlang:system_flag(scheduler_wall_time,Bool) call + is now reference counted and will be turned off if the + (last) process that started the performance statistics + dies. Thus it is no longer possible to start the + statistics with rpc:call(Node, erlang, system_flag, + [scheduler_wall_time, true]) since it will be turned + off directly afterwards when the rpc process dies. + + + OTP-13073 Application(s): stdlib + Related Id(s): PR-1595 + + The semantics of timeout parameter + {clean_timeout,infinity} to gen_statem:call/3 has been + changed to use a proxy process for the call. With this + change clean_timeout implicates a proxy process with no + exceptions. This may be a hard to observe + incompatibility: in the presence of network problems a + late reply could arrive in the caller's message queue + when catching errors. That will not happen after this + correction. + + The semantics of timeout parameter infinity has not + been changed. + + + OTP-13761 Application(s): kernel + Related Id(s): ERL-503 + + No resolver backend returns V4Mapped IPv6 addresses any + more. This was inconsistent before, some did, some did + not. To facilitate working with such addresses a new + function inet:ipv4_mapped_ipv6_address/1 has been + added. + + + OTP-14256 Application(s): erts + + The file driver has been rewritten as a NIF, decreasing + the latency of file operations. Two notable + incompatibilities are: + + -- The use_threads option for file:sendfile/5 no longer + has any effect; we either use non-blocking sendfile(2) + or fall back to file:read + gen_tcp:send. + + -- The file-specific DTrace probes have been removed. + The same effect can be achieved with normal tracing + together with the nif__entry/nif__return probes to + track scheduling. + + + OTP-14370 Application(s): erts + + *** HIGHLIGHT *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was done toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the signal has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14469 Application(s): sasl + + The old and out-dated "Status Inspection" tool (modules + si and si_sasl_sup) is removed. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confuses, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14508 Application(s): erts + + When an exception is thrown, include the arguments of + the call in the stacktrace for BIFs band, bor, bsl, + bsr, bxor, div, rem and the operators +, -, * and /. + + + OTP-14518 Application(s): erts, otp + + *** HIGHLIGHT *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14577 Application(s): stdlib + + filelib:wildcard() now allows characters with a special + meaning to be escaped using backslashes. + + This is an incompatible change, but note that the use + of backslashes in wildcards would already work + differently on Windows and Unix. Existing calls to + filelib:wildcard() needs to be updated. On Windows, + directory separators must always be written as a slash. + + + OTP-14666 Application(s): erts, kernel + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14768 Application(s): ssl + + For security reasons no longer support 3-DES cipher + suites by default + + + OTP-14769 Application(s): ssl + + For security reasons RSA-key exchange cipher suites are + no longer supported by default + + + OTP-14789 Application(s): ssl + + The interoperability option to fallback to insecure + renegotiation now has to be explicitly turned on. + + + OTP-14824 Application(s): ssl + + Drop support for SSLv2 enabled clients. SSLv2 has been + broken for decades and never supported by the Erlang + SSL/TLS implementation. This option was by default + disabled and enabling it has proved to sometimes break + connections not using SSLv2 enabled clients. + + + OTP-14851 Application(s): ssh + + An option exec for daemons implementing the 'exec' has + existed a long time but has been undocumented. The old + behaviour is kept for compatibility EXCEPT that error + messages are changed and are sent as "stderror" text. + + A new option value is defined to make it much more easy + to implement an own exec server. + + + OTP-14882 Application(s): ssl + + Remove CHACHA20_POLY1305 ciphers form default for now. + We have discovered interoperability problems, ERL-538, + that we believe needs to be solved in crypto. + + + OTP-14928 Application(s): erts + + *** HIGHLIGHT *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14961 Application(s): erts, tools + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + OTP-14986 Application(s): erts + Related Id(s): PR-1745 + + erlang:process_info/1 has been changed to no longer + include messages by default. Instead + erlang:process_info/2 should be used. + + + OTP-15002 Application(s): ssh + Related Id(s): OTP-15030 + + The type specifications in SSH are reworked and the + following types are renamed: + + ssh:ssh_connection_ref() is changed to + ssh:connection_ref(), + + ssh:ssh_daemon_ref() is changed to ssh:daemon_ref(), + + ssh:ssh_channel_id() is changed to ssh:channel_id(). + + + --------------------------------------------------------------------- + --- asn1-5.0.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of asn1-5.0.6: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.16 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + Full runtime dependencies of common_test-1.16: 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.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14855 Application(s): compiler + Related Id(s): ERL-549 + + Fixed an error in an optimization pass that caused + impossible tuple matching. + + + OTP-14992 Application(s): compiler + Related Id(s): ERL-572 + + The exception thrown when a list comprehension was + given a non-list term was not always correct. + + + --- Improvements and New Features --- + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confuses, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14505 Application(s): compiler + + In code such as example({ok, Val}) -> {ok, Val}. a + tuple would be built. The compiler will now + automatically rewrite the code to + example({ok,Val}=Tuple) -> Tuple. which will reduce + code size, execution time, and remove GC pressure. + + + OTP-14525 Application(s): compiler + + The optimization of case expression where only one of + the case arms can execute successfully has been + improved. + + + OTP-14594 Application(s): compiler + Related Id(s): ERL-444 + + Some uses of binary matching has been slightly + improved, eliminating unnecessary register shuffling. + + + OTP-14615 Application(s): compiler + Related Id(s): PR-1558 + + There is a new {compile_info,Info} option for the + compiler that allows BEAM-based languages such as + Elixir and LFE to add their own compiler versions. + + + OTP-14626 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14654 Application(s): compiler + + Size calculations for binary constructions has been + somewhat optimized, producing smaller code. + + + OTP-14683 Application(s): compiler, erts + + When the value returned from a 'catch' expression is + ignored, no stacktrace will be built if an exception is + caught. That will save time and produce less garbage. + There are also some minor optimizations of 'try/catch' + both in the compiler and run-time system. + + + OTP-14692 Application(s): compiler, erts + + *** HIGHLIGHT *** + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14712 Application(s): compiler + + The following is an internal change in the compiler, + that is not noticeable for normal use of the compiler: + The module v3_life has been removed. Its functionality + has been simplified and integrated into v3_codegen. + + + OTP-14774 Application(s): compiler + + The optimization of binary matching that delays + creation of sub binaries (see the Efficiency Guide) + could be thwarted by the argument order and could be + necessary to change the argument order. The compiler + has now become smarter and can handle any argument + order. + + + OTP-14808 Application(s): compiler + Related Id(s): ERL-514 + + When the compiler was faced with complex case + expressions it would unnecessarily allocate stack + elements and shuffle data between x and y registers. + Improved code generation to only allocate a stack frame + when strictly necessary. + + + OTP-14830 Application(s): compiler, erts + + There is a new option 'makedep_side_effect' for the + compiler and -MMD for 'erlc' that generates + dependencies and continues to compile as normal. + + + OTP-14968 Application(s): compiler + Related Id(s): ERL-563 + + *** HIGHLIGHT *** + + When compiling modules with huge functions, the + compiler would generate a lot of atoms for its + internal, sometimes so many that the atom table would + overflow. The compiler has been rewritten to generate + far less internal atoms to avoid filling the atom + table. + + + OTP-15003 Application(s): compiler, stdlib + + External funs with literal values for module, name, and + arity (e.g. erlang:abs/1) are now treated as literals. + That means more efficient code that produces less + garbage on the heap. + + + OTP-15037 Application(s): compiler, erts + Related Id(s): PR-1784 + + The map_get/2 guard BIF has been added. It works the + same way as maps:get/2, except that it is allowed to + use it in guards. + + + OTP-15044 Application(s): compiler + Related Id(s): ERL-614 + + A call or apply of a literal external fun will be + replaced with a direct call. + + + Full runtime dependencies of compiler-7.2: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-4.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14956 Application(s): crypto + Related Id(s): ERL-579 + + Removed two undocumented and erroneous functions + (crypto:dh_generate_parameters/2 and + crypto:dh_check/1). + + + --- Improvements and New Features --- + + OTP-13370 Application(s): crypto + Related Id(s): PR-1573 + + A new rand plugin algorithm has been implemented in + crypto, that is: crypto_cache. It uses strong random + bytes as randomness source and caches them to get good + speed. See crypto:rand_seed_alg/1. + + + OTP-14864 Application(s): crypto + + Diffie-Hellman key functions are re-written with the + EVP_PKEY api. + + + Full runtime dependencies of crypto-4.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-4.2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14957 Application(s): debugger + Related Id(s): PR-1741 + + Fix a bug where calling a fun inside a binary would + crash the Debugger. + + + Full runtime dependencies of debugger-4.2.5: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14493 Application(s): dialyzer + Related Id(s): PR-1434 + + Dialyzer can no longer read BEAM files created with OTP + 19 or earlier. + + + OTP-14937 Application(s): dialyzer + Related Id(s): PR-1719 + + Speed up the computation of MD5 sums. + + + OTP-14970 Application(s): dialyzer + Related Id(s): PR-1722 + + Fix a situation where Dialyzer unnecessarily discarded + contract information, resulting in missed warnings. + + + Full runtime dependencies of dialyzer-3.3: 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.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15045 Application(s): diameter + + Fix documentation typos. + + + Full runtime dependencies of diameter-2.1.5: erts-6.4, kernel-3.2, + ssl-6.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- edoc-0.9.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of edoc-0.9.3: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of eldap-1.2.4: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.8 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14979 Application(s): erl_docgen, otp + + Add a hoverable element to the titles in the html + documentation with a link to github where the + documentation can be edited. + + Make the anchors in the html User's Guide and system + documentation use the title of the sections instead of + a generated id. + + + Full runtime dependencies of erl_docgen-0.8: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.10.3 -------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15033 Application(s): erl_interface + + Fix bug where calling erl_init on certain platforms + could result in a buffer overflow bug. + + + --------------------------------------------------------------------- + --- erts-10.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14537 Application(s): erts + Related Id(s): PR1529 + + Fix error printout from run_erl and a bug that could + cause unintended fds to be leaked into the started + program. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14652 Application(s): erts + + Fix bugs related to the bookkeeping of microstate + accounting states. + + + OTP-14666 Application(s): erts, kernel + + *** POTENTIAL INCOMPATIBILITY *** + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14713 Application(s): erts + Related Id(s): ERL-500 + + Corrected erlang:is_builtin(erlang, M, F) to return + true for apply/2 and yield/0. + + + OTP-14719 Application(s): erts + + Fixed a bug where the PATH environment variable wasn't + updated correctly on a release downgrade, effectively + keeping the PATH of the new release. + + + OTP-14782 Application(s): erts + Related Id(s): ERL-511 + + A receive optimization that avoids scanning the entire + message queue when receiving a message containing a + freshly created reference could in rare circumstances + (involving recursive calls to the functions that does + the receive) cause the receive to hang. This has been + corrected. + + + OTP-14909 Application(s): erts + Related Id(s): PR-1692 + + Fix building of Erlang/OTP on platforms which have + small data area with short addressing. For example the + PowerPC/RTEMS platform. + + + OTP-14931 Application(s): erts + + Fixed a crash when enif_make_binary is called with a + binary produced by enif_inspect_binary in a different + environment. + + + OTP-14932 Application(s): erts + + Fixed a crash when enif_make_binary is called more than + once with a binary that had previously been added to an + enif_ioq. + + + OTP-14943 Application(s): erts + Related Id(s): ERL-576 + + The erl_child_setup program now ignores SIGTERM + signals. + + + OTP-14977 Application(s): erts + + Force 64-bit alignment on pre-allocators on + architectures which needs it. + + + OTP-14978 Application(s): erts + + Fixed a bug where dirty scheduler picked up non-dirty + work. + + + OTP-15001 Application(s): erts, kernel + + Calls to gen_tcp:send/2 on closed sockets now returns + {error, closed} instead of {error,enotconn}. + + + OTP-15008 Application(s): erts + + erlang:monotonic_time/1 failed with badarg when passing + the perf_counter time unit as argument. + + + OTP-15013 Application(s): erts + + Fix bug where rapid init:restart() calls would + sometimes crash because a code load request leaked in + between the restarts. + + + OTP-15015 Application(s): erts + Related Id(s): OTP-14890 + + Improve float_to_list(F, [{decimals,D}]) to closer + conform with io_lib:format("~.*f", [D,F]). + + There are however, still cases when float_to_list does + not produce the exact same result as io_lib:format, + especially for large values F and/or many decimals D. + + + OTP-15024 Application(s): erts + + Fixed a deadlock that would occur on certain allocators + when a reallocation failed with +ramv enabled. + + + OTP-15029 Application(s): erts + + Fix bug that made it impossible to use an erl_tracer as + the seq_trace trace receiver. + + + OTP-15032 Application(s): erts + + Fix bug where a large (> 1 GB) emulator generated error + logger message would cause the emulator to crash. + + + --- Improvements and New Features --- + + OTP-11462 Application(s): erts + + It is now possible to open device files and FIFOs with + file:open/2. + + + OTP-11694 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The erlang:system_flag(scheduler_wall_time,Bool) call + is now reference counted and will be turned off if the + (last) process that started the performance statistics + dies. Thus it is no longer possible to start the + statistics with rpc:call(Node, erlang, system_flag, + [scheduler_wall_time, true]) since it will be turned + off directly afterwards when the rpc process dies. + + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + A new logging API is added to OTP. This is implemented + in the Kernel application, module logger. + + Legacy calls to error_logger will be automatically + redirected to the new API. + + See the reference manual for module logger, and the + User's Guide for the Kernel application for more + information. + + + OTP-13760 Application(s): erts + Related Id(s): PR-1592 + + gen_sctp:connect_init/4 or rather connect in inet_drv.c + for SCTP has been fixed to not check the write file + descriptor for writeability after a connect, since for + SCTP (SOCK_SEQPACKET) that property does not seem to be + any kind of indicator for when a connect has finished. + This fixes connects that the OS returned as "in + progress" that was misinterpreted by + gen_sctp:connect_init as failed. + + + OTP-14256 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The file driver has been rewritten as a NIF, decreasing + the latency of file operations. Two notable + incompatibilities are: + + -- The use_threads option for file:sendfile/5 no longer + has any effect; we either use non-blocking sendfile(2) + or fall back to file:read + gen_tcp:send. + + -- The file-specific DTrace probes have been removed. + The same effect can be achieved with normal tracing + together with the nif__entry/nif__return probes to + track scheduling. + + + OTP-14346 Application(s): erts + + The I/O polling functionality of erts has been + re-written to better make use of the OSs polling + mechanisms. This change means that erts will now always + prefer to use a kernel-polling mechanism if possible. + Also all of the I/O polling has been moved to dedicated + threads instead of being placed in the scheduler loops. + + As a result of this, the erl options +K and +secio have + been removed. It is still possible to disable + kernel-poll, but it has to be done at compile time + through the configure option --disable-kernel-poll. + + The new erl options +IOt and +IOp can be used to change + how many IO poll threads and poll sets that erts should + use. See their respective documentation for more + details. + + + OTP-14370 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was done toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the signal has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14459 Application(s): erts, kernel + + *** HIGHLIGHT *** + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14492 Application(s): erts + + Add support for the lcc compiler and in extension the + Elbrus 2000 platform. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confuses, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14502 Application(s): erts + + *** HIGHLIGHT *** + + Creation of small maps with literal keys has been + optimized to be faster and potentially use less memory + . The keys are combined into a literal key tuple which + is put into the literal pool. The key tuple can be + shared between many instances of maps having the same + keys. + + + OTP-14508 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + When an exception is thrown, include the arguments of + the call in the stacktrace for BIFs band, bor, bsl, + bsr, bxor, div, rem and the operators +, -, * and /. + + + OTP-14518 Application(s): erts, otp + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14575 Application(s): erts + + Modules that use floating point constants compiled with + R15 or earlier will need to be re-compiled before they + can be loaded. + + + OTP-14589 Application(s): erts + + Implementation of true asynchronous signaling between + processes in order to improve scalability. Signals + affected include exit, monitor, demonitor, monitor + triggered, link, unlink, and group leader. + + + OTP-14604 Application(s): erts + + Added a PGO (profile guided optimization) pass to the + build step of erts. This can be disabled by passing + --disable-pgo to configure. + + + OTP-14610 Application(s): erts + Related Id(s): PR-1480 + + Improved the performance of binary:split and + binary:match. + + + OTP-14613 Application(s): erts + + It is not longer possible to disable dirty schedulers + when building erlang. + + + OTP-14626 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14637 Application(s): erts + Related Id(s): ERL-327, PR-1524 + + file:read_file has been changed to read the content of + files that report a size of 0 even when data can be + read from them. An example of such a file is + /proc/cpuinfo on Linux. + + + OTP-14651 Application(s): erts + + It is no longer possible to disable the temp_alloc + allocator. Disabling it caused serious performance + degradations and was never what was wanted. + + + OTP-14667 Application(s): erts + + The reduction cost of sending messages is now constant. + It will no longer scale according to the length of the + receiving process' message queue. + + + OTP-14680 Application(s): erts + + Improved loading of modules with -on_load directive, to + no longer block all schedulers when the load operation + is completed. + + + OTP-14682 Application(s): erts + + On platforms with real-time signals available, + SIGRTMIN+1 is now used as the internal scheduler + suspend signal instead of SIGUSR2. + + + OTP-14683 Application(s): compiler, erts + + When the value returned from a 'catch' expression is + ignored, no stacktrace will be built if an exception is + caught. That will save time and produce less garbage. + There are also some minor optimizations of 'try/catch' + both in the compiler and run-time system. + + + OTP-14687 Application(s): erts + + The guarantees and non-guarantees of + erlang:get_stacktrace/0 are now documented. + + + OTP-14692 Application(s): compiler, erts + + *** HIGHLIGHT *** + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14780 Application(s): erts + + New 'used' option for binary_to_term/2 that will also + return number of bytes actually read from the binary. + This enables easy access to any extra data in the + binary located directly after the returned term. + + + OTP-14795 Application(s): erts + Related Id(s): ERL-88 + + Added more statistics for + erlang:system_info({allocator,A}) in the mbcs_pool + section. + + + OTP-14797 Application(s): erts + + Added enif_ioq_peek_head to allow retrieving Erlang + terms from NIF IO queues without having to resort to + copying. + + + OTP-14830 Application(s): compiler, erts + + There is a new option 'makedep_side_effect' for the + compiler and -MMD for 'erlc' that generates + dependencies and continues to compile as normal. + + + OTP-14884 Application(s): erts, stdlib + + Added ets:whereis/1 for retrieving the table identifier + of a named table. + + + OTP-14899 Application(s): erts, kernel + + *** HIGHLIGHT *** + + seq_trace labels may now be any erlang term. + + + OTP-14901 Application(s): erts + + Optimized the common case of monitor followed by send + to the same local process. The monitor signal is now + delayed in order to be piggybacked with the sent + message and thereby only get one lock operation on the + message queue of the receiver. A delayed monitor signal + is flushed if no send has been done at the latest when + the process is scheduled out. + + + OTP-14903 Application(s): erts, hipe + + Make hipe compiled code work on x86_64 (amd64) with OS + security feature PIE, where executable code can be + loaded into a random location. Old behavior, if hipe + was enabled, was to disable PIE build options for the + VM. + + + OTP-14928 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14934 Application(s): erts + Related Id(s): PR-1708 + + Optimize == and /= for binaries with different sizes to + be constant in time instead of proportional to the size + of their common prefix. + + + OTP-14948 Application(s): erts + + Refactorings making some internal process flags + available for other usage. + + + OTP-14951 Application(s): erts + + Removed need for HiPE to allocate native executable + memory in low 2GB address space on x86_64. Command line + option +MXscs is thereby obsolete and ignored. + + + OTP-14954 Application(s): erts + + Added enif_make_map_from_arrays for creating a + populated map, analogous to enif_make_list_from_array. + + + OTP-14959 Application(s): erts + + Added configuration switches for busy-wait and wake up + thresholds for dirty schedulers, and changing these + settings for normal schedulers will no longer affect + dirty schedulers. + + Refer to the documentation for details. The new + switches are +sbwtdcpu, +sbwtdio, +swtdcpu, and + +swtdio. + + The default busy wait threshold for dirty scheduler + threads has also been lowered to short. + + + OTP-14960 Application(s): erts + + The list of "taints" now also includes dynamic loaded + drivers in addition to NIF libraries. Statically linked + drivers and NIF libraries that are part of erts are not + included. The "taints" are returned by + system_info(taints) and printed in the header of + erl_crash.dump files. + + + OTP-14961 Application(s): erts, tools + + *** POTENTIAL INCOMPATIBILITY *** + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + OTP-14965 Application(s): erts + + Added the nifs option to ?MODULE:module_info/1 for + listing a module's installed NIF functions. + + + OTP-14966 Application(s): erts + + New implementation of erlang:process_info/[1,2]. + + In the general case when inspecting another process, + the new implementation sends an asynchronous + process-info request signal to the other process and + waits for the result instead of locking the other + process and reading the result directly. In some + special cases where no conflicts occur, signal order + wont be violated, and the amount of data requested is + guaranteed to be small, the inspected process may be + inspected directly. + + Appropriate amount of reductions are now also bumped + when inspecting a process. + + + OTP-14975 Application(s): erts + Related Id(s): PR-1597 + + Removed process start time from crash dump in order to + save memory in process control block. + + + OTP-14976 Application(s): erts + + Optimize erlang:put/2 when updating existing key with a + new immediate value (atom, small integer, pid, port). + + + OTP-14986 Application(s): erts + Related Id(s): PR-1745 + + *** POTENTIAL INCOMPATIBILITY *** + + erlang:process_info/1 has been changed to no longer + include messages by default. Instead + erlang:process_info/2 should be used. + + + OTP-14994 Application(s): erts + + New NIF functions: enif_mutex_name, enif_cond_name, + enif_rwlock_name, enif_thread_name, enif_vfprintf, + enif_vsnprintf. + + + OTP-15026 Application(s): erts + + When erlang:system_flag(backtrace_depth, 0) has been + called, all exceptions will now contain the entry for + *one* function (despite the zero). It used to be that a + hand-made stack backtrace passed to erlang:raise/3 + would be be truncated to an empty list. + + + OTP-15031 Application(s): erts + + Fixed bug for named ets tables which could cause + unexpected results from matchspec iteration functions + (ets:select* and ets:match*) if the table was deleted + and recreated with the same name during the iteration. + The iteration could incorrectly continue through the + recreated table. The expected correct behavior is now + for the iteration call to fail with a badarg exception + if the table is deleted before the iteration has + completed. + + + OTP-15037 Application(s): compiler, erts + Related Id(s): PR-1784 + + The map_get/2 guard BIF has been added. It works the + same way as maps:get/2, except that it is allowed to + use it in guards. + + + Full runtime dependencies of erts-10.0: kernel-6.0, sasl-3.0.1, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- et-1.6.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of et-1.6.2: erts-9.0, kernel-5.3, + runtime_tools-1.10, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- eunit-2.3.6 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of eunit-2.3.6: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ftp-1.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of ftp-1.0: erts-7.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- hipe-3.18 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14785 Application(s): hipe + Related Id(s): PR-1632 + + Optimize receive statements that are only waiting for + messages containing a reference created before the + receive. All messages that existed in the queue when + the reference was created will be bypassed, as they + cannot possibly contain the reference. This + optimization has existed for vanilla BEAM since OTP + R14. + + + OTP-14900 Application(s): hipe + Related Id(s): PR-1621, PR-1685 + + Add validation pass to hipe compiler to detect internal + errors causing primop calls that may trigger an unsafe + GC at run-time. The pass can be disabled with option + no_verify_gcsafe. + + + OTP-14903 Application(s): erts, hipe + + Make hipe compiled code work on x86_64 (amd64) with OS + security feature PIE, where executable code can be + loaded into a random location. Old behavior, if hipe + was enabled, was to disable PIE build options for the + VM. + + + OTP-14941 Application(s): hipe + Related Id(s): PR-1718 + + Inline more type test BIFs; is_number, is_bitstring, + is_map. + + + Full runtime dependencies of hipe-3.18: compiler-5.0, erts-9.3, + kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-7.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14726 Application(s): inets + + Fixed HTTP content injection bug in httpc (ERL-456). + + + OTP-14729 Application(s): inets + + Fixed support for URI-references in HTTP 'Location' + header (ERL-333). + + + OTP-15006 Application(s): inets + + Fix broken 'Content-Type' handling in httpc (ERL-536). + + + OTP-15021 Application(s): inets + + Fix handling of relative paths in the script_alias + property of httpd (ERL-574). + + + OTP-15025 Application(s): inets + + Fix httpd:reload_config/2 with path() as the first + argument (ERL-578). + + + OTP-15042 Application(s): inets + + Improved gracefulness. + + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of inets-7.0: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.9 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14844 Application(s): jinterface + + Add module package name for Java 9 + + + --------------------------------------------------------------------- + --- kernel-6.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-10551 Application(s): kernel + + Clarify the documentation of rpc:multicall/5. + + + OTP-13133 Application(s): kernel + Related Id(s): PR-1557 + + The DNS resolver when getting econnrefused from a + server retained an invalid socket so look up towards + the next server(s) also failed. + + + OTP-13761 Application(s): kernel + Related Id(s): ERL-503 + + *** POTENTIAL INCOMPATIBILITY *** + + No resolver backend returns V4Mapped IPv6 addresses any + more. This was inconsistent before, some did, some did + not. To facilitate working with such addresses a new + function inet:ipv4_mapped_ipv6_address/1 has been + added. + + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14501 Application(s): kernel + + Fix name resolving in IPv6 only environments when doing + the initial distributed connection. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14666 Application(s): erts, kernel + + *** POTENTIAL INCOMPATIBILITY *** + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14681 Application(s): kernel + + Fixed connection tick toward primitive hidden nodes + (erl_interface) that could cause faulty tick timeout in + rare cases when payload data is sent to hidden node but + not received. + + + OTP-14991 Application(s): kernel + Related Id(s): PR1705 + + Make group react immediately on an EXIT-signal from + shell in e.g ssh. + + + OTP-15001 Application(s): erts, kernel + + Calls to gen_tcp:send/2 on closed sockets now returns + {error, closed} instead of {error,enotconn}. + + + --- Improvements and New Features --- + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + A new logging API is added to OTP. This is implemented + in the Kernel application, module logger. + + Legacy calls to error_logger will be automatically + redirected to the new API. + + See the reference manual for module logger, and the + User's Guide for the Kernel application for more + information. + + + OTP-13713 Application(s): kernel + Related Id(s): PR-1645 + + The function inet:i/0 has been documented. + + + OTP-14459 Application(s): erts, kernel + + *** HIGHLIGHT *** + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14899 Application(s): erts, kernel + + *** HIGHLIGHT *** + + seq_trace labels may now be any erlang term. + + + OTP-14969 Application(s): kernel, ssl + Related Id(s): ERL-598, OTP-14465 + + The SSL distribution protocol -proto inet_tls has + stopped setting the SSL option server_name_indication. + New verify funs for client and server in inet_tls_dist + has been added, not documented yet, that checks node + name if present in peer certificate. Usage is still + also yet to be documented. + + + OTP-15009 Application(s): kernel + Related Id(s): ERL-601 + + Changed timeout of gen_server calls to auth server from + default 5 seconds to infinity. + + + Full runtime dependencies of kernel-6.0: erts-10.0, sasl-3.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- mnesia-4.15.4 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of mnesia-4.15.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.8 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14993 Application(s): observer + Related Id(s): PR-1666 + + Added possibility to garbage collect selected processes + and fixed a crash when the saved config file contained + bad data. + + + --- Improvements and New Features --- + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + Full runtime dependencies of observer-2.8: erts-7.0, et-1.5, + kernel-3.0, runtime_tools-1.8.14, stdlib-3.5, wx-1.2 + + + --------------------------------------------------------------------- + --- os_mon-2.4.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14513 Application(s): os_mon + + Fix disksup to handle mount paths with spaces in them. + + + Full runtime dependencies of os_mon-2.4.5: erts-6.0, kernel-3.0, + mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.7 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of parsetools-2.1.7: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.6 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14788 Application(s): public_key + Related Id(s): OTP-14624 + + Update calls to the base64 module to conform to that + module's type specifications. + + + --- Improvements and New Features --- + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + Full runtime dependencies of public_key-1.6: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-0.7.6 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of reltool-0.7.6: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.13 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14904 Application(s): runtime_tools + + New utility module scheduler which makes it easier to + measure scheduler utilization. + + + Full runtime dependencies of runtime_tools-1.13: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + A new logging API is added to OTP. This is implemented + in the Kernel application, module logger. + + Legacy calls to error_logger will be automatically + redirected to the new API. + + See the reference manual for module logger, and the + User's Guide for the Kernel application for more + information. + + + OTP-14469 Application(s): sasl + + *** POTENTIAL INCOMPATIBILITY *** + + The old and out-dated "Status Inspection" tool (modules + si and si_sasl_sup) is removed. + + + OTP-14950 Application(s): sasl + Related Id(s): PR-1560 + + When creating the release tar file, systools now + includes sys.config.src if it exists in the + $ROOT/releases/<vsn>/ directory. This is to allow + adjustments, e.g. resolving environment variables, + after unpacking the release, but before installing it. + This functionality requires a custom tool which uses + sys.config.src as input and creates a correct + sys.config file. + + + Full runtime dependencies of sasl-3.2: erts-9.0, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- ssh-4.7 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14880 Application(s): ssh + + Updated ssh_connection:shell/2 documentation. + + + OTP-14955 Application(s): ssh + + If the daemon port listener is restarted, it could + potentially fail with eaddrinuse if the timing is + unlucky. It will now retry and exponentially back off + the listener restart a few times before failing. + + + OTP-15004 Application(s): ssh + + An ssh_sftp server (running version 6) could fail if it + is told to remove a file which in fact is a directory. + + + --- Improvements and New Features --- + + OTP-14851 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + An option exec for daemons implementing the 'exec' has + existed a long time but has been undocumented. The old + behaviour is kept for compatibility EXCEPT that error + messages are changed and are sent as "stderror" text. + + A new option value is defined to make it much more easy + to implement an own exec server. + + + OTP-14896 Application(s): ssh + + The undocumented ssh_dbg module is completely + re-written to facilitate tracing/debugging. + + + OTP-14988 Application(s): ssh + + The SSH supervisor structure has been slightly changed. + This makes stopping the ssh application considerably + faster if there are open connections. This is important + in for example restarts. + + + OTP-15002 Application(s): ssh + Related Id(s): OTP-15030 + + *** POTENTIAL INCOMPATIBILITY *** + + The type specifications in SSH are reworked and the + following types are renamed: + + ssh:ssh_connection_ref() is changed to + ssh:connection_ref(), + + ssh:ssh_daemon_ref() is changed to ssh:daemon_ref(), + + ssh:ssh_channel_id() is changed to ssh:channel_id(). + + + OTP-15028 Application(s): ssh + + Removed unused ssh_client_key.erl and + ssh_server_key.erl. + + + OTP-15030 Application(s): ssh + Related Id(s): OTP-15002 + + The Reference Manual pages are partly updated. + + The ssh page is now generated from specs and types, is + restructured and is partly rephrased. + + The ssh_channel, ssh_connection, ssh_client_key_api, + ssh_server_key_api and ssh_sftp pages are updated with + links, correct type names and some minor changes. + + + OTP-15041 Application(s): ssh + + The behaviors ssh_channel and ssh_daemon_channel are + renamed to ssh_client_channel and ssh_server_channel + respectively. + + The old modules are kept for compatibility but should + preferably be replaced when updating callback modules + referring them. + + + Full runtime dependencies of ssh-4.7: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-9.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15050 Application(s): ssl + + Proper handling of clients that choose to send an empty + answer to a certificate request + + + --- Improvements and New Features --- + + OTP-14465 Application(s): ssl + + Distribution over SSL (inet_tls) has, to improve + performance, been rewritten to not use intermediate + processes and ports. + + + OTP-14547 Application(s): ssl + + Add suport for ECDHE_PSK cipher suites + + + OTP-14768 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + For security reasons no longer support 3-DES cipher + suites by default + + + OTP-14769 Application(s): ssl + + *** INCOMPATIBILITY with possible *** + + For security reasons RSA-key exchange cipher suites are + no longer supported by default + + + OTP-14789 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + The interoperability option to fallback to insecure + renegotiation now has to be explicitly turned on. + + + OTP-14824 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Drop support for SSLv2 enabled clients. SSLv2 has been + broken for decades and never supported by the Erlang + SSL/TLS implementation. This option was by default + disabled and enabling it has proved to sometimes break + connections not using SSLv2 enabled clients. + + + OTP-14882 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + Remove CHACHA20_POLY1305 ciphers form default for now. + We have discovered interoperability problems, ERL-538, + that we believe needs to be solved in crypto. + + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + OTP-14969 Application(s): kernel, ssl + Related Id(s): ERL-598, OTP-14465 + + The SSL distribution protocol -proto inet_tls has + stopped setting the SSL option server_name_indication. + New verify funs for client and server in inet_tls_dist + has been added, not documented yet, that checks node + name if present in peer certificate. Usage is still + also yet to be documented. + + + Full runtime dependencies of ssl-9.0: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14015 Application(s): stdlib + + When using an exception that is valid but not allowed + in a state enter call, the reason has been changed from + {bad_action_from_state_function,Action} to + {bad_state_enter_action_from_state_function,Action}. + + Timer parsing has been improved. Many erroneous timeout + tuples was not handled correctly. + + The documentation has been updated, in particular the + User's Guide and the pointer to it from the Reference + Manual is much more obvious. + + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14958 Application(s): stdlib + Related Id(s): PR-1735 + + Make io_lib:unscan_format/1 work with pad char and + default precision. + + + OTP-14971 Application(s): stdlib + Related Id(s): PR-1743 + + The control sequence modifiers t and l can be used + together in the same control sequence which makes it + possible to have Unicode atoms and no detection of + printable character lists at the same time. + + + OTP-15035 Application(s): stdlib + Related Id(s): ERL-613 + + Fix a bug in the Erlang code linter: the check of guard + expressions no longer returns false if the map syntax + is used. The bug affected the Erlang shell, the + Debugger, and other modules evaluating abstract code. + + + OTP-15049 Application(s): stdlib + + A sys debug fun of type {Fun,State} should not be + possible to install twice. This was, however, possible + if the current State was 'undefined', which was + mistaken for non-existing fun. This has been corrected. + + + --- Improvements and New Features --- + + OTP-13019 Application(s): stdlib + Related Id(s): PR-1490 + + The gen_server has gotten a new callback + handle_continue/2 for check pointing the state. This is + useful at least when implementing behaviours on top of + gen_server and for some start up scenarios. + + + OTP-13073 Application(s): stdlib + Related Id(s): PR-1595 + + *** POTENTIAL INCOMPATIBILITY *** + + The semantics of timeout parameter + {clean_timeout,infinity} to gen_statem:call/3 has been + changed to use a proxy process for the call. With this + change clean_timeout implicates a proxy process with no + exceptions. This may be a hard to observe + incompatibility: in the presence of network problems a + late reply could arrive in the caller's message queue + when catching errors. That will not happen after this + correction. + + The semantics of timeout parameter infinity has not + been changed. + + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + A new logging API is added to OTP. This is implemented + in the Kernel application, module logger. + + Legacy calls to error_logger will be automatically + redirected to the new API. + + See the reference manual for module logger, and the + User's Guide for the Kernel application for more + information. + + + OTP-13413 Application(s): stdlib + + Add functions calendar:system_time_to_local_time/2 and + calendar:system_time_to_universal_time/2. + + + OTP-13764 Application(s): stdlib + Related Id(s): PR-1574 + + Functions rand:uniform_real/0 and rand:uniform_real_s/1 + have been added. They produce uniformly distributed + numbers in the range 0.0 =< X < 1.0 that are as close + to random real numbers as Normalized IEEE 754 Double + Precision allows. Because the random real number + exactly 0.0 is infinitely improbable they will never + return exactly 0.0. + + These properties are useful when you need to call for + example math:log(X) or 1 / X on a random value X, since + that will never fail with a number from these new + functions. + + + OTP-14012 Application(s): stdlib + + Added maps:iterator/0 and maps:next/1 to be used for + iterating over the key-value associations in a map. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14496 Application(s): stdlib + + Added new uri_string module to stdlib for handling URIs + (RFC 3986). + + + OTP-14503 Application(s): stdlib + + Update Unicode specification to version 10.0. + + + OTP-14577 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + filelib:wildcard() now allows characters with a special + meaning to be escaped using backslashes. + + This is an incompatible change, but note that the use + of backslashes in wildcards would already work + differently on Windows and Unix. Existing calls to + filelib:wildcard() needs to be updated. On Windows, + directory separators must always be written as a slash. + + + OTP-14586 Application(s): stdlib + + The supervisor now stores its child specifications in a + map instead of a list. This causes a significant + improvement when starting many children under a + non-simple_one_for_one supervisor. + + + OTP-14624 Application(s): stdlib + Related Id(s): PR-1565 + + The base64 module is optimized. + + Note that the functions encode/1, decode/1, and + mime_decode/1 fail unless called with an argument of + the documented type. They used to accept any iodata(). + + + OTP-14675 Application(s): stdlib + Related Id(s): PR-102 + + Add function lists:search/2. + + + OTP-14747 Application(s): stdlib + + uri_string module extended with functions for handling + application/x-www-form-urlencoded query strings based + on the HTML5 specification. + + + OTP-14764 Application(s): stdlib + + Add functions calendar:rfc3339_to_system_time/1,2 and + calendar:system_time_to_rfc3339/1,2. + + + OTP-14826 Application(s): stdlib + Related Id(s): 1540, PR + + The stack traces returned by the functions of the + erl_eval module more accurately reflect where the + exception occurred. + + + OTP-14834 Application(s): stdlib + Related Id(s): 1608, PR + + Add options atime, mtime, ctime, uid, and gid to the + erl_tar:add/3,4 functions. + + + OTP-14884 Application(s): erts, stdlib + + Added ets:whereis/1 for retrieving the table identifier + of a named table. + + + OTP-14910 Application(s): stdlib + + Improved URI normalization functions in the uri_string + module. + + + OTP-14983 Application(s): stdlib + + The new functions io_lib:fwrite/3 and io_lib:format/3 + take a third argument, an option list. The only option + is chars_limit, which is used for limiting the number + of returned characters. The limit is soft, which means + that the number of returned characters exceeds the + limit with at most a smallish amount. If the limit is + set, the functions format/3 and fwrite/3 try to + distribute the number of characters evenly over the + control sequences pPswW. Furthermore, the control + sequences pPwP try to distribute the number of + characters evenly over substructures. + + A modification of the control sequences pPwW is that + even if there is no limit on the number of returned + characters, all associations of a map are printed to + the same depth. The aim is to give a more consistent + output as the order of map keys is not defined. As + before, if the depth is less than the number of + associations of a map, the selection of associations to + print is arbitrary. + + + OTP-14996 Application(s): stdlib + Related Id(s): ERL-557, PR-1703 + + Add functions ordsets:is_empty/1 and sets:is_empty/1. + + + OTP-15003 Application(s): compiler, stdlib + + External funs with literal values for module, name, and + arity (e.g. erlang:abs/1) are now treated as literals. + That means more efficient code that produces less + garbage on the heap. + + + OTP-15047 Application(s): stdlib + + sys:statistics(Pid,get) did not report 'out' messages + from gen_server. This is now corrected. + + + OTP-15048 Application(s): stdlib + + A sys debug function can now have the format + {Id,Fun,State} in addition to the old {Fun,State}. This + allows installing multiple instances of a debug fun. + + + Full runtime dependencies of stdlib-3.5: compiler-5.0, crypto-3.3, + erts-10.0, kernel-6.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.5 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of syntax_tools-2.1.5: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tftp-1.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of tftp-1.0: kernel-6.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- tools-3.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14961 Application(s): erts, tools + + *** POTENTIAL INCOMPATIBILITY *** + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + Full runtime dependencies of tools-3.0: compiler-5.0, erts-9.1, + kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-1.8.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15027 Application(s): wx + + Changed implementation so wx can now be built towards + wxWidgets-3.1.1. + + + Full runtime dependencies of wx-1.8.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.17 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15039 Application(s): xmerl + + Fix typos in documentation. + + + Full runtime dependencies of xmerl-1.3.17: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.0-rc2.README.txt b/release-notes/OTP-21.0-rc2.README.txt new file mode 100644 index 0000000..5343d56 --- /dev/null +++ b/release-notes/OTP-21.0-rc2.README.txt @@ -0,0 +1,3264 @@ +Patch Package: OTP 21.0 +Git Tag: OTP-21.0 +Date: 2018-05-29 +Trouble Report Id: OTP-10551, OTP-11462, OTP-11694, OTP-13019, + OTP-13073, OTP-13133, OTP-13295, OTP-13370, + OTP-13413, OTP-13713, OTP-13760, OTP-13761, + OTP-13764, OTP-14012, OTP-14015, OTP-14019, + OTP-14113, OTP-14256, OTP-14346, OTP-14359, + OTP-14370, OTP-14439, OTP-14459, OTP-14465, + OTP-14469, OTP-14492, OTP-14493, OTP-14496, + OTP-14497, OTP-14501, OTP-14502, OTP-14503, + OTP-14505, OTP-14508, OTP-14513, OTP-14518, + OTP-14525, OTP-14537, OTP-14543, OTP-14547, + OTP-14575, OTP-14577, OTP-14586, OTP-14589, + OTP-14594, OTP-14604, OTP-14610, OTP-14613, + OTP-14615, OTP-14624, OTP-14626, OTP-14637, + OTP-14651, OTP-14652, OTP-14654, OTP-14666, + OTP-14667, OTP-14675, OTP-14680, OTP-14681, + OTP-14682, OTP-14683, OTP-14687, OTP-14692, + OTP-14712, OTP-14713, OTP-14719, OTP-14726, + OTP-14729, OTP-14747, OTP-14764, OTP-14768, + OTP-14769, OTP-14774, OTP-14780, OTP-14782, + OTP-14785, OTP-14788, OTP-14789, OTP-14795, + OTP-14797, OTP-14808, OTP-14824, OTP-14826, + OTP-14830, OTP-14834, OTP-14844, OTP-14851, + OTP-14855, OTP-14861, OTP-14864, OTP-14880, + OTP-14882, OTP-14884, OTP-14888, OTP-14896, + OTP-14899, OTP-14900, OTP-14901, OTP-14902, + OTP-14903, OTP-14904, OTP-14909, OTP-14910, + OTP-14928, OTP-14931, OTP-14932, OTP-14934, + OTP-14937, OTP-14941, OTP-14943, OTP-14948, + OTP-14950, OTP-14951, OTP-14954, OTP-14955, + OTP-14956, OTP-14957, OTP-14958, OTP-14959, + OTP-14960, OTP-14961, OTP-14964, OTP-14965, + OTP-14966, OTP-14968, OTP-14969, OTP-14970, + OTP-14971, OTP-14974, OTP-14975, OTP-14976, + OTP-14977, OTP-14978, OTP-14979, OTP-14983, + OTP-14986, OTP-14988, OTP-14991, OTP-14992, + OTP-14993, OTP-14994, OTP-14996, OTP-14998, + OTP-15001, OTP-15002, OTP-15003, OTP-15006, + OTP-15008, OTP-15009, OTP-15013, OTP-15015, + OTP-15019, OTP-15021, OTP-15024, OTP-15025, + OTP-15026, OTP-15027, OTP-15028, OTP-15029, + OTP-15030, OTP-15031, OTP-15032, OTP-15033, + OTP-15035, OTP-15036, OTP-15037, OTP-15039, + OTP-15041, OTP-15042, OTP-15044, OTP-15045, + OTP-15047, OTP-15048, OTP-15049, OTP-15050, + OTP-15056, OTP-15062, OTP-15069, OTP-15071, + OTP-15072, OTP-15078, OTP-15079, OTP-15080, + OTP-15081, OTP-15082, OTP-15084, OTP-15085, + OTP-15086, OTP-15087, OTP-15088, OTP-15090, + OTP-15091, OTP-15093 +Seq num: ERL-327, ERL-370, ERL-444, ERL-500, ERL-503, + ERL-511, ERL-514, ERL-549, ERL-550, ERL-557, + ERL-563, ERL-572, ERL-576, ERL-579, ERL-593, + ERL-598, ERL-601, ERL-613, ERL-614, ERL-615, + ERL-617, ERL-88 +System: OTP +Release: 21 +Application: asn1-5.0.6, common_test-1.16, compiler-7.2, + crypto-4.3, debugger-4.2.5, dialyzer-3.3, + diameter-2.1.5, edoc-0.9.3, eldap-1.2.4, + erl_docgen-0.8, erl_interface-3.10.3, + erts-10.0, et-1.6.2, eunit-2.3.6, ftp-1.0, + hipe-3.18, inets-7.0, jinterface-1.9, + kernel-6.0, mnesia-4.15.4, observer-2.8, + os_mon-2.4.5, parsetools-2.1.7, + public_key-1.6, reltool-0.7.6, + runtime_tools-1.13, sasl-3.2, ssh-4.7, + ssl-9.0, stdlib-3.5, syntax_tools-2.1.5, + tftp-1.0, tools-3.0, wx-1.8.4, xmerl-1.3.17 +Predecessor: OTP + + Check out the git tag OTP-21.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14370 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was done toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the signal has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14459 Application(s): erts, kernel + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14497 Application(s): compiler, erts + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confusion, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14502 Application(s): erts + + Creation of small maps with literal keys has been + optimized to be faster and potentially use less memory. + The keys are combined into a literal key tuple which is + put into the literal pool. The key tuple can be shared + between many instances of maps having the same keys. + + + OTP-14518 Application(s): erts, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14626 Application(s): compiler, erts + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14692 Application(s): compiler, erts + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14899 Application(s): erts, kernel + + seq_trace labels may now be any erlang term. + + + OTP-14928 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14968 Application(s): compiler + Related Id(s): ERL-563 + + When compiling modules with huge functions, the + compiler would generate a lot of atoms for its + internal, sometimes so many that the atom table would + overflow. The compiler has been rewritten to generate + far less internal atoms to avoid filling the atom + table. + + + OTP-15037 Application(s): compiler, erts + Related Id(s): PR-1784, PR-1802 + + Two new guards BIFs operating on maps have been added: + map_get/2 and is_map_key/2. They do the same as + maps:get/2 and maps:is_key/2, respectively, except that + they are allowed to be used in guards. + + + OTP-15087 Application(s): compiler + Related Id(s): PR-1810 + + Part of EEP-44 has been implemented. + + There is a new predefined macro called OTP_RELEASE + which is an integer indicating the OTP release number + (its value is 21 in this release). + + There are new preprocessor directives -if(Condition). + and -elif(Condition).. The if/elif supports the builtin + function defined(Symbol). + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-11694 Application(s): erts + + The erlang:system_flag(scheduler_wall_time,Bool) call + is now reference counted and will be turned off if the + (last) process that started the performance statistics + dies. Thus it is no longer possible to start the + statistics with rpc:call(Node, erlang, system_flag, + [scheduler_wall_time, true]) since it will be turned + off directly afterwards when the rpc process dies. + + + OTP-13073 Application(s): stdlib + Related Id(s): PR-1595 + + The semantics of timeout parameter + {clean_timeout,infinity} to gen_statem:call/3 has been + changed to use a proxy process for the call. With this + change clean_timeout implicates a proxy process with no + exceptions. This may be a hard to observe + incompatibility: in the presence of network problems a + late reply could arrive in the caller's message queue + when catching errors. That will not happen after this + correction. + + The semantics of timeout parameter infinity has not + been changed. + + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled with the Kernel configuration parameter + logger_progress_reports. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + + OTP-13761 Application(s): kernel + Related Id(s): ERL-503 + + No resolver backend returns V4Mapped IPv6 addresses any + more. This was inconsistent before, some did, some did + not. To facilitate working with such addresses a new + function inet:ipv4_mapped_ipv6_address/1 has been + added. + + + OTP-14256 Application(s): erts + + The file driver has been rewritten as a NIF, decreasing + the latency of file operations. Two notable + incompatibilities are: + + -- The use_threads option for file:sendfile/5 no longer + has any effect; we either use non-blocking sendfile(2) + or fall back to file:read + gen_tcp:send. + + -- The file-specific DTrace probes have been removed. + The same effect can be achieved with normal tracing + together with the nif__entry/nif__return probes to + track scheduling. + + + OTP-14370 Application(s): erts + + *** HIGHLIGHT *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was done toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the signal has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14469 Application(s): sasl + + The old and outdated "Status Inspection" tool (modules + si and si_sasl_sup) is removed. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confusion, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14508 Application(s): erts + + When an exception is thrown, include the arguments of + the call in the stacktrace for BIFs band, bor, bsl, + bsr, bxor, div, rem and the operators +, -, * and /. + + + OTP-14518 Application(s): erts, otp + + *** HIGHLIGHT *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14577 Application(s): stdlib + + filelib:wildcard() now allows characters with a special + meaning to be escaped using backslashes. + + This is an incompatible change, but note that the use + of backslashes in wildcards would already work + differently on Windows and Unix. Existing calls to + filelib:wildcard() needs to be updated. On Windows, + directory separators must always be written as a slash. + + + OTP-14666 Application(s): erts, kernel + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14768 Application(s): ssl + + For security reasons no longer support 3-DES cipher + suites by default + + + OTP-14769 Application(s): ssl + + For security reasons RSA-key exchange cipher suites are + no longer supported by default + + + OTP-14789 Application(s): ssl + + The interoperability option to fallback to insecure + renegotiation now has to be explicitly turned on. + + + OTP-14824 Application(s): ssl + + Drop support for SSLv2 enabled clients. SSLv2 has been + broken for decades and never supported by the Erlang + SSL/TLS implementation. This option was by default + disabled and enabling it has proved to sometimes break + connections not using SSLv2 enabled clients. + + + OTP-14851 Application(s): ssh + + An option exec for daemons implementing the 'exec' has + existed a long time but has been undocumented. The old + behaviour is kept for compatibility EXCEPT that error + messages are changed and are sent as "stderror" text. + + A new option value is defined to make it much more easy + to implement an own exec server. + + + OTP-14882 Application(s): ssl + + Remove CHACHA20_POLY1305 ciphers form default for now. + We have discovered interoperability problems, ERL-538, + that we believe needs to be solved in crypto. + + + OTP-14928 Application(s): erts + + *** HIGHLIGHT *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14961 Application(s): erts, tools + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + OTP-14964 Application(s): erts + Related Id(s): OTP-14589 + + The process suspend functionality used by the + erlang:suspend_process/2 BIF has been reimplemented + using the newly introduced true asynchronous signaling + between processes. This mainly to reduce memory usage + in the process control block of all processes, but also + in order to simplify the implementation. + + WARNING: You can easily create deadlocks if processes + suspends each other (directly or in circles). In ERTS + versions prior to ERTS version 10.0, the runtime system + prevented such deadlocks, but this prevention has now + been removed due to performance reasons. + + Other ERTS internal functionality that used the + previous process suspend functionality have also been + reimplemented to use asynchronous signaling instead. + + + OTP-14986 Application(s): erts + Related Id(s): PR-1745 + + erlang:process_info/1 has been changed to no longer + include messages by default. Instead + erlang:process_info/2 should be used. + + + OTP-15002 Application(s): ssh + Related Id(s): OTP-15030 + + The type specifications in SSH are reworked and the + following types are renamed: + + ssh:ssh_connection_ref() is changed to + ssh:connection_ref(), + + ssh:ssh_daemon_ref() is changed to ssh:daemon_ref(), + + ssh:ssh_channel_id() is changed to ssh:channel_id(). + + + OTP-15071 Application(s): kernel + + The included_applications key are no longer duplicated + as application environment variable. Earlier, the + included applications could be read both with + application:get[_all]_env(...) and + application:get[_all]_key(...) functions. Now, it can + only be read with application:get[_all]_key(...). + + + OTP-15072 Application(s): stdlib + Related Id(s): 1786, PR + + The lib module is removed: + + -- lib:error_message/2 is removed. + + -- lib:flush_receive/0 is removed. + + -- lib:nonl/1 is removed. + + -- lib:progname/0 is replaced by ct:get_progname/0. + + -- lib:send/2 is removed. + + -- lib:sendw/2 is removed. + + + --------------------------------------------------------------------- + --- asn1-5.0.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of asn1-5.0.6: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.16 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + Full runtime dependencies of common_test-1.16: 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.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14855 Application(s): compiler + Related Id(s): ERL-549 + + Fixed an error in an optimization pass that caused + impossible tuple matching. + + + OTP-14992 Application(s): compiler + Related Id(s): ERL-572 + + The exception thrown when a list comprehension was + given a non-list term was not always correct. + + + --- Improvements and New Features --- + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confusion, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14505 Application(s): compiler + + In code such as example({ok, Val}) -> {ok, Val}. a + tuple would be built. The compiler will now + automatically rewrite the code to + example({ok,Val}=Tuple) -> Tuple. which will reduce + code size, execution time, and remove GC pressure. + + + OTP-14525 Application(s): compiler + + The optimization of case expression where only one of + the case arms can execute successfully has been + improved. + + + OTP-14594 Application(s): compiler + Related Id(s): ERL-444 + + Some uses of binary matching has been slightly + improved, eliminating unnecessary register shuffling. + + + OTP-14615 Application(s): compiler + Related Id(s): PR-1558 + + There is a new {compile_info,Info} option for the + compiler that allows BEAM-based languages such as + Elixir and LFE to add their own compiler versions. + + + OTP-14626 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14654 Application(s): compiler + + Size calculations for binary constructions has been + somewhat optimized, producing smaller code. + + + OTP-14683 Application(s): compiler, erts + + When the value returned from a 'catch' expression is + ignored, no stacktrace will be built if an exception is + caught. That will save time and produce less garbage. + There are also some minor optimizations of 'try/catch' + both in the compiler and run-time system. + + + OTP-14692 Application(s): compiler, erts + + *** HIGHLIGHT *** + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14712 Application(s): compiler + + The following is an internal change in the compiler, + that is not noticeable for normal use of the compiler: + The module v3_life has been removed. Its functionality + has been simplified and integrated into v3_codegen. + + + OTP-14774 Application(s): compiler + + The optimization of binary matching that delays + creation of sub binaries (see the Efficiency Guide) + could be thwarted by the argument order and could be + necessary to change the argument order. The compiler + has now become smarter and can handle any argument + order. + + + OTP-14808 Application(s): compiler + Related Id(s): ERL-514 + + When the compiler was faced with complex case + expressions it would unnecessarily allocate stack + elements and shuffle data between x and y registers. + Improved code generation to only allocate a stack frame + when strictly necessary. + + + OTP-14830 Application(s): compiler, erts + + There is a new option 'makedep_side_effect' for the + compiler and -MMD for 'erlc' that generates + dependencies and continues to compile as normal. + + + OTP-14968 Application(s): compiler + Related Id(s): ERL-563 + + *** HIGHLIGHT *** + + When compiling modules with huge functions, the + compiler would generate a lot of atoms for its + internal, sometimes so many that the atom table would + overflow. The compiler has been rewritten to generate + far less internal atoms to avoid filling the atom + table. + + + OTP-15003 Application(s): compiler, stdlib + + External funs with literal values for module, name, and + arity (e.g. erlang:abs/1) are now treated as literals. + That means more efficient code that produces less + garbage on the heap. + + + OTP-15037 Application(s): compiler, erts + Related Id(s): PR-1784, PR-1802 + + *** HIGHLIGHT *** + + Two new guards BIFs operating on maps have been added: + map_get/2 and is_map_key/2. They do the same as + maps:get/2 and maps:is_key/2, respectively, except that + they are allowed to be used in guards. + + + OTP-15044 Application(s): compiler + Related Id(s): ERL-614 + + A call or apply of a literal external fun will be + replaced with a direct call. + + + OTP-15087 Application(s): compiler + Related Id(s): PR-1810 + + *** HIGHLIGHT *** + + Part of EEP-44 has been implemented. + + There is a new predefined macro called OTP_RELEASE + which is an integer indicating the OTP release number + (its value is 21 in this release). + + There are new preprocessor directives -if(Condition). + and -elif(Condition).. The if/elif supports the builtin + function defined(Symbol). + + + Full runtime dependencies of compiler-7.2: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-4.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14956 Application(s): crypto + Related Id(s): ERL-579 + + Removed two undocumented and erroneous functions + (crypto:dh_generate_parameters/2 and + crypto:dh_check/1). + + + OTP-15088 Application(s): crypto + + Fixed bug causing VM crash if doing runtime upgrade of + a crypto module built against OpenSSL older than + 0.9.8h. Bug exists since OTP-20.2. + + + --- Improvements and New Features --- + + OTP-13370 Application(s): crypto + Related Id(s): PR-1573 + + A new rand plugin algorithm has been implemented in + crypto, that is: crypto_cache. It uses strong random + bytes as randomness source and caches them to get good + speed. See crypto:rand_seed_alg/1. + + + OTP-14864 Application(s): crypto + + Diffie-Hellman key functions are re-written with the + EVP_PKEY api. + + + Full runtime dependencies of crypto-4.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-4.2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14957 Application(s): debugger + Related Id(s): PR-1741 + + Fix a bug where calling a fun inside a binary would + crash the Debugger. + + + Full runtime dependencies of debugger-4.2.5: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14493 Application(s): dialyzer + Related Id(s): PR-1434 + + Dialyzer can no longer read BEAM files created with OTP + 19 or earlier. + + + OTP-14937 Application(s): dialyzer + Related Id(s): PR-1719 + + Speed up the computation of MD5 sums. + + + OTP-14970 Application(s): dialyzer + Related Id(s): PR-1722 + + Fix a situation where Dialyzer unnecessarily discarded + contract information, resulting in missed warnings. + + + OTP-15079 Application(s): dialyzer + Related Id(s): ERL-593 + + Do not emit warnings for fun expressions residing in + code that cannot be run. This is consistent with how + Dialyzer treats other code that cannot be run. + + + Full runtime dependencies of dialyzer-3.3: 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.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15045 Application(s): diameter + + Fix documentation typos. + + + Full runtime dependencies of diameter-2.1.5: erts-6.4, kernel-3.2, + ssl-6.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- edoc-0.9.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of edoc-0.9.3: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of eldap-1.2.4: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.8 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15091 Application(s): erl_docgen + + Update makefile so db_funcs.xsl is a part of the + installed application. + + + --- Improvements and New Features --- + + OTP-14979 Application(s): erl_docgen, otp + + Add a hoverable element to the titles in the html + documentation with a link to github where the + documentation can be edited. + + Make the anchors in the html User's Guide and system + documentation use the title of the sections instead of + a generated id. + + + Full runtime dependencies of erl_docgen-0.8: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.10.3 -------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15033 Application(s): erl_interface + + Fix bug where calling erl_init on certain platforms + could result in a buffer overflow bug. + + + --------------------------------------------------------------------- + --- erts-10.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14537 Application(s): erts + Related Id(s): PR1529 + + Fix error printout from run_erl and a bug that could + cause unintended fds to be leaked into the started + program. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14652 Application(s): erts + + Fix bugs related to the bookkeeping of microstate + accounting states. + + + OTP-14666 Application(s): erts, kernel + + *** POTENTIAL INCOMPATIBILITY *** + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14713 Application(s): erts + Related Id(s): ERL-500 + + Corrected erlang:is_builtin(erlang, M, F) to return + true for apply/2 and yield/0. + + + OTP-14719 Application(s): erts + + Fixed a bug where the PATH environment variable wasn't + updated correctly on a release downgrade, effectively + keeping the PATH of the new release. + + + OTP-14782 Application(s): erts + Related Id(s): ERL-511 + + A receive optimization that avoids scanning the entire + message queue when receiving a message containing a + freshly created reference could in rare circumstances + (involving recursive calls to the functions that does + the receive) cause the receive to hang. This has been + corrected. + + + OTP-14909 Application(s): erts + Related Id(s): PR-1692 + + Fix building of Erlang/OTP on platforms which have + small data area with short addressing. For example the + PowerPC/RTEMS platform. + + + OTP-14931 Application(s): erts + + Fixed a crash when enif_make_binary is called with a + binary produced by enif_inspect_binary in a different + environment. + + + OTP-14932 Application(s): erts + + Fixed a crash when enif_make_binary is called more than + once with a binary that had previously been added to an + enif_ioq. + + + OTP-14943 Application(s): erts + Related Id(s): ERL-576 + + The erl_child_setup program now ignores SIGTERM + signals. + + + OTP-14977 Application(s): erts + + Force 64-bit alignment on pre-allocators on + architectures which needs it. + + + OTP-14978 Application(s): erts + + Fixed a bug where dirty scheduler picked up non-dirty + work. + + + OTP-15001 Application(s): erts, kernel + + Calls to gen_tcp:send/2 on closed sockets now returns + {error, closed} instead of {error,enotconn}. + + + OTP-15008 Application(s): erts + + erlang:monotonic_time/1 failed with badarg when passing + the perf_counter time unit as argument. + + + OTP-15013 Application(s): erts + + Fix bug where rapid init:restart() calls would + sometimes crash because a code load request leaked in + between the restarts. + + + OTP-15015 Application(s): erts + Related Id(s): OTP-14890 + + Improve float_to_list(F, [{decimals,D}]) to closer + conform with io_lib:format("~.*f", [D,F]). + + There are however, still cases when float_to_list does + not produce the exact same result as io_lib:format, + especially for large values F and/or many decimals D. + + + OTP-15024 Application(s): erts + + Fixed a deadlock that would occur on certain allocators + when a reallocation failed with +ramv enabled. + + + OTP-15029 Application(s): erts + + Fix bug that made it impossible to use an erl_tracer as + the seq_trace trace receiver. + + + OTP-15032 Application(s): erts + + Fix bug where a large (> 1 GB) emulator generated error + logger message would cause the emulator to crash. + + + OTP-15062 Application(s): erts + Related Id(s): ERL-615 + + The emulator will no longer crash when reading the file + information of an ordinary file that has an NTFS + reparse point, such as files stored in a + OneDrive-mapped folder. + + + OTP-15080 Application(s): erts + + Fixed bug in enif_binary_to_term which could cause + memory corruption for immediate terms (atoms, small + integers, pids, ports, empty lists). + + + OTP-15085 Application(s): erts + + Fixed bug in erlang:system_profile/2 that could cause + superfluous {profile,_,active,_,_} messages for + terminating processes. + + + OTP-15090 Application(s): erts + + On OSs with per thread CPU time support, change + cpu_timestamp in erlang:trace/3 to use it instead of + per process CPU time. This makes this option useable on + such OSs when running multiple schedulers. + + + --- Improvements and New Features --- + + OTP-11462 Application(s): erts + + It is now possible to open device files and FIFOs with + file:open/2. + + + OTP-11694 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The erlang:system_flag(scheduler_wall_time,Bool) call + is now reference counted and will be turned off if the + (last) process that started the performance statistics + dies. Thus it is no longer possible to start the + statistics with rpc:call(Node, erlang, system_flag, + [scheduler_wall_time, true]) since it will be turned + off directly afterwards when the rpc process dies. + + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled with the Kernel configuration parameter + logger_progress_reports. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + + OTP-13760 Application(s): erts + Related Id(s): PR-1592 + + gen_sctp:connect_init/4 or rather connect in inet_drv.c + for SCTP has been fixed to not check the write file + descriptor for writeability after a connect, since for + SCTP (SOCK_SEQPACKET) that property does not seem to be + any kind of indicator for when a connect has finished. + This fixes connects that the OS returned as "in + progress" that was misinterpreted by + gen_sctp:connect_init as failed. + + + OTP-14256 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The file driver has been rewritten as a NIF, decreasing + the latency of file operations. Two notable + incompatibilities are: + + -- The use_threads option for file:sendfile/5 no longer + has any effect; we either use non-blocking sendfile(2) + or fall back to file:read + gen_tcp:send. + + -- The file-specific DTrace probes have been removed. + The same effect can be achieved with normal tracing + together with the nif__entry/nif__return probes to + track scheduling. + + + OTP-14346 Application(s): erts + + The I/O polling functionality of erts has been + re-written to better make use of the OSs polling + mechanisms. This change means that erts will now always + prefer to use a kernel-polling mechanism if possible. + Also all of the I/O polling has been moved to dedicated + threads instead of being placed in the scheduler loops. + + As a result of this, the erl options +K and +secio have + been removed. It is still possible to disable + kernel-poll, but it has to be done at compile time + through the configure option --disable-kernel-poll. + + The new erl options +IOt and +IOp can be used to change + how many IO poll threads and poll sets that erts should + use. See their respective documentation for more + details. + + + OTP-14370 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was done toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the signal has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14459 Application(s): erts, kernel + + *** HIGHLIGHT *** + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14492 Application(s): erts + + Add support for the lcc compiler and in extension the + Elbrus 2000 platform. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confusion, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14502 Application(s): erts + + *** HIGHLIGHT *** + + Creation of small maps with literal keys has been + optimized to be faster and potentially use less memory. + The keys are combined into a literal key tuple which is + put into the literal pool. The key tuple can be shared + between many instances of maps having the same keys. + + + OTP-14508 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + When an exception is thrown, include the arguments of + the call in the stacktrace for BIFs band, bor, bsl, + bsr, bxor, div, rem and the operators +, -, * and /. + + + OTP-14518 Application(s): erts, otp + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14575 Application(s): erts + + Modules that use floating point constants compiled with + R15 or earlier will need to be re-compiled before they + can be loaded. + + + OTP-14589 Application(s): erts + + Implementation of true asynchronous signaling between + processes in order to improve scalability. Signals + affected include exit, monitor, demonitor, monitor + triggered, link, unlink, and group leader. + + + OTP-14604 Application(s): erts + + Added a PGO (profile guided optimization) pass to the + build step of erts. This can be disabled by passing + --disable-pgo to configure. + + + OTP-14610 Application(s): erts + Related Id(s): PR-1480 + + Improved the performance of binary:split and + binary:match. + + + OTP-14613 Application(s): erts + + It is not longer possible to disable dirty schedulers + when building erlang. + + + OTP-14626 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14637 Application(s): erts + Related Id(s): ERL-327, PR-1524 + + file:read_file has been changed to read the content of + files that report a size of 0 even when data can be + read from them. An example of such a file is + /proc/cpuinfo on Linux. + + + OTP-14651 Application(s): erts + + It is no longer possible to disable the temp_alloc + allocator. Disabling it caused serious performance + degradations and was never what was wanted. + + + OTP-14667 Application(s): erts + + The reduction cost of sending messages is now constant. + It will no longer scale according to the length of the + receiving process' message queue. + + + OTP-14680 Application(s): erts + + Improved loading of modules with -on_load directive, to + no longer block all schedulers when the load operation + is completed. + + + OTP-14682 Application(s): erts + + On platforms with real-time signals available, + SIGRTMIN+1 is now used as the internal scheduler + suspend signal instead of SIGUSR2. + + + OTP-14683 Application(s): compiler, erts + + When the value returned from a 'catch' expression is + ignored, no stacktrace will be built if an exception is + caught. That will save time and produce less garbage. + There are also some minor optimizations of 'try/catch' + both in the compiler and run-time system. + + + OTP-14687 Application(s): erts + + The guarantees and non-guarantees of + erlang:get_stacktrace/0 are now documented. + + + OTP-14692 Application(s): compiler, erts + + *** HIGHLIGHT *** + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14780 Application(s): erts + + New 'used' option for binary_to_term/2 that will also + return number of bytes actually read from the binary. + This enables easy access to any extra data in the + binary located directly after the returned term. + + + OTP-14795 Application(s): erts + Related Id(s): ERL-88 + + Added more statistics for + erlang:system_info({allocator,A}) in the mbcs_pool + section. + + + OTP-14797 Application(s): erts + + Added enif_ioq_peek_head to retrieve Erlang terms from + NIF IO queues without having to resort to copying. + + + OTP-14830 Application(s): compiler, erts + + There is a new option 'makedep_side_effect' for the + compiler and -MMD for 'erlc' that generates + dependencies and continues to compile as normal. + + + OTP-14884 Application(s): erts, stdlib + + Added ets:whereis/1 for retrieving the table identifier + of a named table. + + + OTP-14899 Application(s): erts, kernel + + *** HIGHLIGHT *** + + seq_trace labels may now be any erlang term. + + + OTP-14901 Application(s): erts + + Optimized the common case of monitor followed by send + to the same local process. The monitor signal is now + delayed in order to be piggybacked with the sent + message and thereby only get one lock operation on the + message queue of the receiver. A delayed monitor signal + is flushed if no send has been done at the latest when + the process is scheduled out. + + + OTP-14903 Application(s): erts, hipe + + Make hipe compiled code work on x86_64 (amd64) with OS + security feature PIE, where executable code can be + loaded into a random location. Old behavior, if hipe + was enabled, was to disable PIE build options for the + VM. + + + OTP-14928 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14934 Application(s): erts + Related Id(s): PR-1708 + + Optimize == and /= for binaries with different sizes to + be constant in time instead of proportional to the size + of their common prefix. + + + OTP-14948 Application(s): erts + + Refactorings making some internal process flags + available for other usage. + + + OTP-14951 Application(s): erts + + Removed need for HiPE to allocate native executable + memory in low 2GB address space on x86_64. Command line + option +MXscs is thereby obsolete and ignored. + + + OTP-14954 Application(s): erts + + Added enif_make_map_from_arrays for creating a + populated map, analogous to enif_make_list_from_array. + + + OTP-14959 Application(s): erts + + Added configuration switches for busy-wait and wake up + thresholds for dirty schedulers, and changing these + settings for normal schedulers will no longer affect + dirty schedulers. + + Refer to the documentation for details. The new + switches are +sbwtdcpu, +sbwtdio, +swtdcpu, and + +swtdio. + + The default busy wait threshold for dirty scheduler + threads has also been lowered to short. + + + OTP-14960 Application(s): erts + + The list of "taints" now also includes dynamic loaded + drivers in addition to NIF libraries. Statically linked + drivers and NIF libraries that are part of erts are not + included. The "taints" are returned by + system_info(taints) and printed in the header of + erl_crash.dump files. + + + OTP-14961 Application(s): erts, tools + + *** POTENTIAL INCOMPATIBILITY *** + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + OTP-14964 Application(s): erts + Related Id(s): OTP-14589 + + *** POTENTIAL INCOMPATIBILITY *** + + The process suspend functionality used by the + erlang:suspend_process/2 BIF has been reimplemented + using the newly introduced true asynchronous signaling + between processes. This mainly to reduce memory usage + in the process control block of all processes, but also + in order to simplify the implementation. + + WARNING: You can easily create deadlocks if processes + suspends each other (directly or in circles). In ERTS + versions prior to ERTS version 10.0, the runtime system + prevented such deadlocks, but this prevention has now + been removed due to performance reasons. + + Other ERTS internal functionality that used the + previous process suspend functionality have also been + reimplemented to use asynchronous signaling instead. + + + OTP-14965 Application(s): erts + + Added the nifs option to ?MODULE:module_info/1 for + listing a module's installed NIF functions. + + + OTP-14966 Application(s): erts + + New implementation of erlang:process_info/[1,2]. + + In the general case when inspecting another process, + the new implementation sends an asynchronous + process-info request signal to the other process and + waits for the result instead of locking the other + process and reading the result directly. In some + special cases where no conflicts occur, signal order + wont be violated, and the amount of data requested is + guaranteed to be small, the inspected process may be + inspected directly. + + Appropriate amount of reductions are now also bumped + when inspecting a process. + + + OTP-14975 Application(s): erts + Related Id(s): PR-1597 + + Removed process start time from crash dump in order to + save memory in process control block. + + + OTP-14976 Application(s): erts + + Optimize erlang:put/2 when updating existing key with a + new immediate value (atom, small integer, pid, port). + + + OTP-14986 Application(s): erts + Related Id(s): PR-1745 + + *** POTENTIAL INCOMPATIBILITY *** + + erlang:process_info/1 has been changed to no longer + include messages by default. Instead + erlang:process_info/2 should be used. + + + OTP-14994 Application(s): erts + + New NIF functions: enif_mutex_name, enif_cond_name, + enif_rwlock_name, enif_thread_name, enif_vfprintf, + enif_vsnprintf. + + + OTP-15026 Application(s): erts + + When erlang:system_flag(backtrace_depth, 0) has been + called, all exceptions will now contain the entry for + *one* function (despite the zero). It used to be that a + hand-made stack backtrace passed to erlang:raise/3 + would be be truncated to an empty list. + + + OTP-15031 Application(s): erts + + Fixed bug for named ets tables which could cause + unexpected results from matchspec iteration functions + (ets:select* and ets:match*) if the table was deleted + and recreated with the same name during the iteration. + The iteration could incorrectly continue through the + recreated table. The expected correct behavior is now + for the iteration call to fail with a badarg exception + if the table is deleted before the iteration has + completed. + + + OTP-15037 Application(s): compiler, erts + Related Id(s): PR-1784, PR-1802 + + *** HIGHLIGHT *** + + Two new guards BIFs operating on maps have been added: + map_get/2 and is_map_key/2. They do the same as + maps:get/2 and maps:is_key/2, respectively, except that + they are allowed to be used in guards. + + + OTP-15081 Application(s): erts + + Release run-queue lock while cleaning up terminated + dirty process. + + + OTP-15086 Application(s): erts, kernel + Related Id(s): PR-1694 + + The callback module passed as -epmd_module to erl has + been expanded to be able to do name and port resolving. + + Documentation has also been added in the erl_epmd + reference manual and ERTS User's Guide How to Implement + an Alternative Service Discovery for Erlang + Distribution. + + + Full runtime dependencies of erts-10.0: kernel-6.0, sasl-3.0.1, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- et-1.6.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of et-1.6.2: erts-9.0, kernel-5.3, + runtime_tools-1.10, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- eunit-2.3.6 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of eunit-2.3.6: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ftp-1.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of ftp-1.0: erts-7.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- hipe-3.18 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14785 Application(s): hipe + Related Id(s): PR-1632 + + Optimize receive statements that are only waiting for + messages containing a reference created before the + receive. All messages that existed in the queue when + the reference was created will be bypassed, as they + cannot possibly contain the reference. This + optimization has existed for vanilla BEAM since OTP + R14. + + + OTP-14900 Application(s): hipe + Related Id(s): PR-1621, PR-1685 + + Add validation pass to hipe compiler to detect internal + errors causing primop calls that may trigger an unsafe + GC at run-time. The pass can be disabled with option + no_verify_gcsafe. + + + OTP-14903 Application(s): erts, hipe + + Make hipe compiled code work on x86_64 (amd64) with OS + security feature PIE, where executable code can be + loaded into a random location. Old behavior, if hipe + was enabled, was to disable PIE build options for the + VM. + + + OTP-14941 Application(s): hipe + Related Id(s): PR-1718 + + Inline more type test BIFs; is_number, is_bitstring, + is_map. + + + Full runtime dependencies of hipe-3.18: compiler-5.0, erts-9.3, + kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-7.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14726 Application(s): inets + + Fixed HTTP content injection bug in httpc (ERL-456). + + + OTP-14729 Application(s): inets + + Fixed support for URI-references in HTTP 'Location' + header (ERL-333). + + + OTP-15006 Application(s): inets + + Fix broken 'Content-Type' handling in httpc (ERL-536). + + + OTP-15021 Application(s): inets + + Fix handling of relative paths in the script_alias + property of httpd (ERL-574). + + + OTP-15025 Application(s): inets + + Fix httpd:reload_config/2 with path() as the first + argument (ERL-578). + + + OTP-15042 Application(s): inets + + Improved gracefulness. + + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of inets-7.0: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.9 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14844 Application(s): jinterface + + Add module package name for Java 9 + + + --------------------------------------------------------------------- + --- kernel-6.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-10551 Application(s): kernel + + Clarify the documentation of rpc:multicall/5. + + + OTP-13133 Application(s): kernel + Related Id(s): PR-1557 + + The DNS resolver when getting econnrefused from a + server retained an invalid socket so look up towards + the next server(s) also failed. + + + OTP-13761 Application(s): kernel + Related Id(s): ERL-503 + + *** POTENTIAL INCOMPATIBILITY *** + + No resolver backend returns V4Mapped IPv6 addresses any + more. This was inconsistent before, some did, some did + not. To facilitate working with such addresses a new + function inet:ipv4_mapped_ipv6_address/1 has been + added. + + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14501 Application(s): kernel + + Fix name resolving in IPv6 only environments when doing + the initial distributed connection. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14666 Application(s): erts, kernel + + *** POTENTIAL INCOMPATIBILITY *** + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14681 Application(s): kernel + + Fixed connection tick toward primitive hidden nodes + (erl_interface) that could cause faulty tick timeout in + rare cases when payload data is sent to hidden node but + not received. + + + OTP-14991 Application(s): kernel + Related Id(s): PR1705 + + Make group react immediately on an EXIT-signal from + shell in e.g ssh. + + + OTP-15001 Application(s): erts, kernel + + Calls to gen_tcp:send/2 on closed sockets now returns + {error, closed} instead of {error,enotconn}. + + + OTP-15071 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The included_applications key are no longer duplicated + as application environment variable. Earlier, the + included applications could be read both with + application:get[_all]_env(...) and + application:get[_all]_key(...) functions. Now, it can + only be read with application:get[_all]_key(...). + + + --- Improvements and New Features --- + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled with the Kernel configuration parameter + logger_progress_reports. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + + OTP-13713 Application(s): kernel + Related Id(s): PR-1645 + + The function inet:i/0 has been documented. + + + OTP-14359 Application(s): kernel + Related Id(s): PR-1816 + + Typespecs for netns and bind_to_device options have + been added to gen_tcp, gen_udp and gen_sctp functions. + + + OTP-14459 Application(s): erts, kernel + + *** HIGHLIGHT *** + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14899 Application(s): erts, kernel + + *** HIGHLIGHT *** + + seq_trace labels may now be any erlang term. + + + OTP-14969 Application(s): kernel, ssl + Related Id(s): ERL-598, OTP-14465 + + The SSL distribution protocol -proto inet_tls has + stopped setting the SSL option server_name_indication. + New verify funs for client and server in inet_tls_dist + has been added, not documented yet, that checks node + name if present in peer certificate. Usage is still + also yet to be documented. + + + OTP-15009 Application(s): kernel + Related Id(s): ERL-601 + + Changed timeout of gen_server calls to auth server from + default 5 seconds to infinity. + + + OTP-15086 Application(s): erts, kernel + Related Id(s): PR-1694 + + The callback module passed as -epmd_module to erl has + been expanded to be able to do name and port resolving. + + Documentation has also been added in the erl_epmd + reference manual and ERTS User's Guide How to Implement + an Alternative Service Discovery for Erlang + Distribution. + + + Full runtime dependencies of kernel-6.0: erts-10.0, sasl-3.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- mnesia-4.15.4 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of mnesia-4.15.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.8 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14993 Application(s): observer + Related Id(s): PR-1666 + + Added possibility to garbage collect selected processes + and fixed a crash when the saved config file contained + bad data. + + + --- Improvements and New Features --- + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + Full runtime dependencies of observer-2.8: erts-7.0, et-1.5, + kernel-3.0, runtime_tools-1.8.14, stdlib-3.5, wx-1.2 + + + --------------------------------------------------------------------- + --- os_mon-2.4.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14513 Application(s): os_mon + + Fix disksup to handle mount paths with spaces in them. + + + Full runtime dependencies of os_mon-2.4.5: erts-6.0, kernel-3.0, + mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.7 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of parsetools-2.1.7: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.6 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14788 Application(s): public_key + Related Id(s): OTP-14624 + + Update calls to the base64 module to conform to that + module's type specifications. + + + --- Improvements and New Features --- + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + OTP-15093 Application(s): public_key + + Compleate PKCS-8 encoding support and enhance the + decoding of 'PrivateKeyInfo' to conform to the rest of + Erlang public_key API. + + + Full runtime dependencies of public_key-1.6: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-0.7.6 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of reltool-0.7.6: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.13 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14904 Application(s): runtime_tools + + New utility module scheduler which makes it easier to + measure scheduler utilization. + + + Full runtime dependencies of runtime_tools-1.13: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled with the Kernel configuration parameter + logger_progress_reports. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + + OTP-14469 Application(s): sasl + + *** POTENTIAL INCOMPATIBILITY *** + + The old and outdated "Status Inspection" tool (modules + si and si_sasl_sup) is removed. + + + OTP-14950 Application(s): sasl + Related Id(s): PR-1560 + + When creating the release tar file, systools now + includes sys.config.src if it exists in the + $ROOT/releases/<vsn>/ directory. This is to allow + adjustments, e.g. resolving environment variables, + after unpacking the release, but before installing it. + This functionality requires a custom tool which uses + sys.config.src as input and creates a correct + sys.config file. + + + Full runtime dependencies of sasl-3.2: erts-9.0, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- ssh-4.7 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14880 Application(s): ssh + + Updated ssh_connection:shell/2 documentation. + + + OTP-14955 Application(s): ssh + + If the daemon port listener is restarted, it could + potentially fail with eaddrinuse if the timing is + unlucky. It will now retry and exponentially back off + the listener restart a few times before failing. + + + OTP-15084 Application(s): ssh + + A channel callback module always got the module name as + reason in a call to terminate. Now it will get the + proper Reason, usually 'normal'. + + + --- Improvements and New Features --- + + OTP-14851 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + An option exec for daemons implementing the 'exec' has + existed a long time but has been undocumented. The old + behaviour is kept for compatibility EXCEPT that error + messages are changed and are sent as "stderror" text. + + A new option value is defined to make it much more easy + to implement an own exec server. + + + OTP-14896 Application(s): ssh + + The undocumented ssh_dbg module is completely + re-written to facilitate tracing/debugging. + + + OTP-14988 Application(s): ssh + + The SSH supervisor structure has been slightly changed. + This makes stopping the ssh application considerably + faster if there are open connections. This is important + in for example restarts. + + + OTP-15002 Application(s): ssh + Related Id(s): OTP-15030 + + *** POTENTIAL INCOMPATIBILITY *** + + The type specifications in SSH are reworked and the + following types are renamed: + + ssh:ssh_connection_ref() is changed to + ssh:connection_ref(), + + ssh:ssh_daemon_ref() is changed to ssh:daemon_ref(), + + ssh:ssh_channel_id() is changed to ssh:channel_id(). + + + OTP-15019 Application(s): ssh + + The internal timer handling in SSH is now based on the + gen_statem timers. + + + OTP-15028 Application(s): ssh + + Removed unused ssh_client_key.erl and + ssh_server_key.erl. + + + OTP-15030 Application(s): ssh + Related Id(s): OTP-15002 + + The Reference Manual pages are partly updated. + + The ssh page is now generated from specs and types, is + restructured and is partly rephrased. + + The ssh_channel, ssh_connection, ssh_client_key_api, + ssh_server_key_api and ssh_sftp pages are updated with + links, correct type names and some minor changes. + + + OTP-15041 Application(s): ssh + + The behaviors ssh_channel and ssh_daemon_channel are + renamed to ssh_client_channel and ssh_server_channel + respectively. + + The old modules are kept for compatibility but should + preferably be replaced when updating callback modules + referring them. + + + OTP-15069 Application(s): ssh + Related Id(s): ERL-617 + + The rekey_limit option could now set the max time as + well as the previously max data amount. + + + OTP-15082 Application(s): ssh + + Change process exit supervision with monitor instead of + link + + + Full runtime dependencies of ssh-4.7: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-9.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14974 Application(s): ssl + + Correct handling of ECDH suites. + + + OTP-15050 Application(s): ssl + + Proper handling of clients that choose to send an empty + answer to a certificate request + + + --- Improvements and New Features --- + + OTP-14465 Application(s): ssl + + Distribution over SSL (inet_tls) has, to improve + performance, been rewritten to not use intermediate + processes and ports. + + + OTP-14547 Application(s): ssl + + Add suport for ECDHE_PSK cipher suites + + + OTP-14768 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + For security reasons no longer support 3-DES cipher + suites by default + + + OTP-14769 Application(s): ssl + + *** INCOMPATIBILITY with possible *** + + For security reasons RSA-key exchange cipher suites are + no longer supported by default + + + OTP-14789 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + The interoperability option to fallback to insecure + renegotiation now has to be explicitly turned on. + + + OTP-14824 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Drop support for SSLv2 enabled clients. SSLv2 has been + broken for decades and never supported by the Erlang + SSL/TLS implementation. This option was by default + disabled and enabling it has proved to sometimes break + connections not using SSLv2 enabled clients. + + + OTP-14882 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + Remove CHACHA20_POLY1305 ciphers form default for now. + We have discovered interoperability problems, ERL-538, + that we believe needs to be solved in crypto. + + + OTP-14888 Application(s): ssl + + Generalize DTLS packet multiplexing to make it easier + to add future DTLS features and uses. + + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + OTP-14969 Application(s): kernel, ssl + Related Id(s): ERL-598, OTP-14465 + + The SSL distribution protocol -proto inet_tls has + stopped setting the SSL option server_name_indication. + New verify funs for client and server in inet_tls_dist + has been added, not documented yet, that checks node + name if present in peer certificate. Usage is still + also yet to be documented. + + + OTP-15056 Application(s): ssl + + Deprecate ssl:ssl_accept/[1,2,3] in favour of + ssl:handshake/[1,2,3] + + + Full runtime dependencies of ssl-9.0: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14015 Application(s): stdlib + + gen_statem improvements. + + When using an exception that is valid but not allowed + in a state enter call, the reason has been changed from + {bad_action_from_state_function,Action} to + {bad_state_enter_action_from_state_function,Action}. + + Timer parsing has been improved. Many erroneous timeout + tuples was not handled correctly. + + The documentation has been updated, in particular the + User's Guide and the pointer to it from the Reference + Manual is much more obvious. + + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14958 Application(s): stdlib + Related Id(s): PR-1735 + + Make io_lib:unscan_format/1 work with pad char and + default precision. + + + OTP-14971 Application(s): stdlib + Related Id(s): PR-1743 + + The control sequence modifiers t and l can be used + together in the same control sequence which makes it + possible to have Unicode atoms and no detection of + printable character lists at the same time. + + + OTP-15035 Application(s): stdlib + Related Id(s): ERL-613 + + Fix a bug in the Erlang code linter: the check of guard + expressions no longer returns false if the map syntax + is used. The bug affected the Erlang shell, the + Debugger, and other modules evaluating abstract code. + + + OTP-15049 Application(s): stdlib + + A sys debug fun of type {Fun,State} should not be + possible to install twice. This was, however, possible + if the current State was 'undefined', which was + mistaken for non-existing fun. This has been corrected. + + + --- Improvements and New Features --- + + OTP-13019 Application(s): stdlib + Related Id(s): PR-1490 + + The gen_server has gotten a new callback + handle_continue/2 for check pointing the state. This is + useful at least when implementing behaviours on top of + gen_server and for some start up scenarios. + + + OTP-13073 Application(s): stdlib + Related Id(s): PR-1595 + + *** POTENTIAL INCOMPATIBILITY *** + + The semantics of timeout parameter + {clean_timeout,infinity} to gen_statem:call/3 has been + changed to use a proxy process for the call. With this + change clean_timeout implicates a proxy process with no + exceptions. This may be a hard to observe + incompatibility: in the presence of network problems a + late reply could arrive in the caller's message queue + when catching errors. That will not happen after this + correction. + + The semantics of timeout parameter infinity has not + been changed. + + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled with the Kernel configuration parameter + logger_progress_reports. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + + OTP-13413 Application(s): stdlib + + Add functions calendar:system_time_to_local_time/2 and + calendar:system_time_to_universal_time/2. + + + OTP-13764 Application(s): stdlib + Related Id(s): PR-1574 + + Functions rand:uniform_real/0 and rand:uniform_real_s/1 + have been added. They produce uniformly distributed + numbers in the range 0.0 =< X < 1.0 that are as close + to random real numbers as Normalized IEEE 754 Double + Precision allows. Because the random real number + exactly 0.0 is infinitely improbable they will never + return exactly 0.0. + + These properties are useful when you need to call for + example math:log(X) or 1 / X on a random value X, since + that will never fail with a number from these new + functions. + + + OTP-14012 Application(s): stdlib + + Added maps:iterator/0 and maps:next/1 to be used for + iterating over the key-value associations in a map. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14496 Application(s): stdlib + + Added new uri_string module to stdlib for handling URIs + (RFC 3986). + + + OTP-14503 Application(s): stdlib + + Update Unicode specification to version 10.0. + + + OTP-14577 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + filelib:wildcard() now allows characters with a special + meaning to be escaped using backslashes. + + This is an incompatible change, but note that the use + of backslashes in wildcards would already work + differently on Windows and Unix. Existing calls to + filelib:wildcard() needs to be updated. On Windows, + directory separators must always be written as a slash. + + + OTP-14586 Application(s): stdlib + + The supervisor now stores its child specifications in a + map instead of a list. This causes a significant + improvement when starting many children under a + non-simple_one_for_one supervisor. + + + OTP-14624 Application(s): stdlib + Related Id(s): PR-1565 + + The base64 module is optimized. + + Note that the functions encode/1, decode/1, and + mime_decode/1 fail unless called with an argument of + the documented type. They used to accept any iodata(). + + + OTP-14675 Application(s): stdlib + Related Id(s): PR-102 + + Add function lists:search/2. + + + OTP-14747 Application(s): stdlib + + uri_string module extended with functions for handling + application/x-www-form-urlencoded query strings based + on the HTML5 specification. + + + OTP-14764 Application(s): stdlib + + Add functions calendar:rfc3339_to_system_time/1,2 and + calendar:system_time_to_rfc3339/1,2. + + + OTP-14826 Application(s): stdlib + Related Id(s): 1540, PR + + The stack traces returned by the functions of the + erl_eval module more accurately reflect where the + exception occurred. + + + OTP-14834 Application(s): stdlib + Related Id(s): 1608, PR + + Add options atime, mtime, ctime, uid, and gid to the + erl_tar:add/3,4 functions. + + + OTP-14884 Application(s): erts, stdlib + + Added ets:whereis/1 for retrieving the table identifier + of a named table. + + + OTP-14910 Application(s): stdlib + + Improved URI normalization functions in the uri_string + module. + + + OTP-14983 Application(s): stdlib + + The new functions io_lib:fwrite/3 and io_lib:format/3 + take a third argument, an option list. The only option + is chars_limit, which is used for limiting the number + of returned characters. The limit is soft, which means + that the number of returned characters exceeds the + limit with at most a smallish amount. If the limit is + set, the functions format/3 and fwrite/3 try to + distribute the number of characters evenly over the + control sequences pPswW. Furthermore, the control + sequences pPwP try to distribute the number of + characters evenly over substructures. + + A modification of the control sequences pPwW is that + even if there is no limit on the number of returned + characters, all associations of a map are printed to + the same depth. The aim is to give a more consistent + output as the order of map keys is not defined. As + before, if the depth is less than the number of + associations of a map, the selection of associations to + print is arbitrary. + + + OTP-14996 Application(s): stdlib + Related Id(s): ERL-557, PR-1703 + + Add functions ordsets:is_empty/1 and sets:is_empty/1. + + + OTP-14998 Application(s): stdlib + + Improve performance of string:uppercase/1, + string:lowercase/1 and string:casefold/1 when handling + ASCII characters. + + + OTP-15003 Application(s): compiler, stdlib + + External funs with literal values for module, name, and + arity (e.g. erlang:abs/1) are now treated as literals. + That means more efficient code that produces less + garbage on the heap. + + + OTP-15047 Application(s): stdlib + + sys:statistics(Pid,get) did not report 'out' messages + from gen_server. This is now corrected. + + + OTP-15048 Application(s): stdlib + + A sys debug function can now have the format + {Id,Fun,State} in addition to the old {Fun,State}. This + allows installing multiple instances of a debug fun. + + + OTP-15072 Application(s): stdlib + Related Id(s): 1786, PR + + *** POTENTIAL INCOMPATIBILITY *** + + The lib module is removed: + + -- lib:error_message/2 is removed. + + -- lib:flush_receive/0 is removed. + + -- lib:nonl/1 is removed. + + -- lib:progname/0 is replaced by ct:get_progname/0. + + -- lib:send/2 is removed. + + -- lib:sendw/2 is removed. + + + OTP-15078 Application(s): stdlib + + Function ets:delete_all_objects/1 now yields the + scheduler thread for large tables that take significant + time to clear. This to improve real time + characteristics of other runnable processes. + + + Full runtime dependencies of stdlib-3.5: compiler-5.0, crypto-3.3, + erts-10.0, kernel-6.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.5 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of syntax_tools-2.1.5: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tftp-1.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of tftp-1.0: kernel-6.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- tools-3.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14961 Application(s): erts, tools + + *** POTENTIAL INCOMPATIBILITY *** + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + Full runtime dependencies of tools-3.0: compiler-5.0, erts-9.1, + kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-1.8.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15027 Application(s): wx + + Changed implementation so wx can now be built towards + wxWidgets-3.1.1. + + + Full runtime dependencies of wx-1.8.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.17 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15039 Application(s): xmerl + + Fix typos in documentation. + + + Full runtime dependencies of xmerl-1.3.17: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.0.1.README.txt b/release-notes/OTP-21.0.1.README.txt new file mode 100644 index 0000000..76390a4 --- /dev/null +++ b/release-notes/OTP-21.0.1.README.txt @@ -0,0 +1,60 @@ +Patch Package: OTP 21.0.1 +Git Tag: OTP-21.0.1 +Date: 2018-06-26 +Trouble Report Id: OTP-15147, OTP-15150 +Seq num: ERL-644, ERL-650 +System: OTP +Release: 21 +Application: compiler-7.2.1, erts-10.0.1 +Predecessor: OTP 21.0 + + Check out the git tag OTP-21.0.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. + + --------------------------------------------------------------------- + --- compiler-7.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.2.1 application can be applied independently of other + applications on a full OTP 21 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15150 Application(s): compiler + Related Id(s): ERL-650 + + The compiler could could crash when compiling a + complicated function that used the binary syntax. + + + Full runtime dependencies of compiler-7.2.1: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- erts-10.0.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-10.0.1 application can be applied independently of other + applications on a full OTP 21 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15147 Application(s): erts + Related Id(s): ERL-644 + + The keys used in os:getenv and os:putenv are + case-insensitive again on Windows. + + + Full runtime dependencies of erts-10.0.1: kernel-6.0, sasl-3.0.1, + stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.0.README.txt b/release-notes/OTP-21.0.README.txt new file mode 100644 index 0000000..0a9e840 --- /dev/null +++ b/release-notes/OTP-21.0.README.txt @@ -0,0 +1,3554 @@ +Patch Package: OTP 21.0 +Git Tag: OTP-21.0 +Date: 2018-06-19 +Trouble Report Id: OTP-10551, OTP-11462, OTP-11694, OTP-13019, + OTP-13073, OTP-13133, OTP-13295, OTP-13370, + OTP-13413, OTP-13713, OTP-13760, OTP-13761, + OTP-13764, OTP-14012, OTP-14015, OTP-14019, + OTP-14113, OTP-14256, OTP-14346, OTP-14359, + OTP-14370, OTP-14439, OTP-14459, OTP-14465, + OTP-14469, OTP-14492, OTP-14493, OTP-14496, + OTP-14497, OTP-14501, OTP-14502, OTP-14503, + OTP-14505, OTP-14508, OTP-14513, OTP-14518, + OTP-14525, OTP-14537, OTP-14543, OTP-14547, + OTP-14575, OTP-14577, OTP-14586, OTP-14589, + OTP-14594, OTP-14604, OTP-14610, OTP-14613, + OTP-14615, OTP-14624, OTP-14626, OTP-14637, + OTP-14651, OTP-14652, OTP-14654, OTP-14666, + OTP-14667, OTP-14675, OTP-14680, OTP-14681, + OTP-14682, OTP-14683, OTP-14687, OTP-14692, + OTP-14712, OTP-14713, OTP-14719, OTP-14726, + OTP-14729, OTP-14747, OTP-14764, OTP-14768, + OTP-14769, OTP-14774, OTP-14780, OTP-14782, + OTP-14785, OTP-14788, OTP-14789, OTP-14795, + OTP-14797, OTP-14808, OTP-14810, OTP-14824, + OTP-14826, OTP-14830, OTP-14834, OTP-14844, + OTP-14851, OTP-14855, OTP-14861, OTP-14864, + OTP-14880, OTP-14882, OTP-14884, OTP-14888, + OTP-14896, OTP-14899, OTP-14900, OTP-14901, + OTP-14902, OTP-14903, OTP-14904, OTP-14909, + OTP-14910, OTP-14928, OTP-14931, OTP-14932, + OTP-14934, OTP-14937, OTP-14941, OTP-14943, + OTP-14948, OTP-14950, OTP-14951, OTP-14954, + OTP-14955, OTP-14956, OTP-14957, OTP-14958, + OTP-14959, OTP-14960, OTP-14961, OTP-14962, + OTP-14964, OTP-14965, OTP-14966, OTP-14968, + OTP-14969, OTP-14970, OTP-14971, OTP-14974, + OTP-14975, OTP-14976, OTP-14977, OTP-14978, + OTP-14979, OTP-14982, OTP-14983, OTP-14986, + OTP-14987, OTP-14988, OTP-14991, OTP-14992, + OTP-14993, OTP-14994, OTP-14996, OTP-14998, + OTP-15001, OTP-15002, OTP-15003, OTP-15006, + OTP-15008, OTP-15009, OTP-15013, OTP-15015, + OTP-15019, OTP-15021, OTP-15024, OTP-15025, + OTP-15026, OTP-15027, OTP-15028, OTP-15029, + OTP-15030, OTP-15031, OTP-15032, OTP-15033, + OTP-15035, OTP-15036, OTP-15037, OTP-15039, + OTP-15041, OTP-15042, OTP-15044, OTP-15045, + OTP-15047, OTP-15048, OTP-15049, OTP-15050, + OTP-15051, OTP-15056, OTP-15062, OTP-15069, + OTP-15071, OTP-15072, OTP-15078, OTP-15079, + OTP-15080, OTP-15081, OTP-15082, OTP-15083, + OTP-15084, OTP-15085, OTP-15086, OTP-15087, + OTP-15088, OTP-15090, OTP-15093, OTP-15098, + OTP-15101, OTP-15102, OTP-15103, OTP-15105, + OTP-15106, OTP-15108, OTP-15109, OTP-15113, + OTP-15114, OTP-15115, OTP-15117, OTP-15118, + OTP-15119, OTP-15125, OTP-15137, OTP-15141, + OTP-15142 +Seq num: ERIERL-177, ERL-327, ERL-370, ERL-444, + ERL-500, ERL-503, ERL-511, ERL-514, ERL-542, + ERL-549, ERL-550, ERL-557, ERL-563, ERL-572, + ERL-576, ERL-579, ERL-593, ERL-598, ERL-601, + ERL-607, ERL-613, ERL-614, ERL-615, ERL-617, + ERL-621, ERL-629, ERL-634, ERL-88 +System: OTP +Release: 21 +Application: asn1-5.0.6, common_test-1.16, compiler-7.2, + crypto-4.3, debugger-4.2.5, dialyzer-3.3, + diameter-2.1.5, edoc-0.9.3, eldap-1.2.4, + erl_docgen-0.8, erl_interface-3.10.3, + erts-10.0, et-1.6.2, eunit-2.3.6, ftp-1.0, + hipe-3.18, inets-7.0, jinterface-1.9, + kernel-6.0, mnesia-4.15.4, observer-2.8, + os_mon-2.4.5, otp_mibs-1.2, parsetools-2.1.7, + public_key-1.6, reltool-0.7.6, + runtime_tools-1.13, sasl-3.2, ssh-4.7, + ssl-9.0, stdlib-3.5, syntax_tools-2.1.5, + tftp-1.0, tools-3.0, wx-1.8.4, xmerl-1.3.17 +Predecessor: OTP + + Check out the git tag OTP-21.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-14370 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was aimed toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the message has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14459 Application(s): erts, kernel + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14497 Application(s): compiler, erts + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confusion, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14502 Application(s): erts + + Creation of small maps with literal keys has been + optimized to be faster and potentially use less memory. + The keys are combined into a literal key tuple which is + put into the literal pool. The key tuple can be shared + between many instances of maps having the same keys. + + + OTP-14518 Application(s): erts, otp + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14589 Application(s): erts + + Implementation of true asynchronous signaling between + processes in order to improve scalability. Signals + affected include exit, monitor, demonitor, monitor + triggered, link, unlink, and group leader. + + + OTP-14626 Application(s): compiler, erts + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14692 Application(s): compiler, erts + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14899 Application(s): erts, kernel + + seq_trace labels may now be any erlang term. + + + OTP-14928 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14968 Application(s): compiler + Related Id(s): ERL-563 + + When compiling modules with huge functions, the + compiler would generate a lot of atoms for its + internal, sometimes so many that the atom table would + overflow. The compiler has been rewritten to generate + far less internal atoms to avoid filling the atom + table. + + + OTP-15037 Application(s): compiler, erts + Related Id(s): PR-1784, PR-1802 + + Two new guards BIFs operating on maps have been added: + map_get/2 and is_map_key/2. They do the same as + maps:get/2 and maps:is_key/2, respectively, except that + they are allowed to be used in guards. + + + OTP-15087 Application(s): compiler + Related Id(s): PR-1810 + + Part of EEP-44 has been implemented. + + There is a new predefined macro called OTP_RELEASE + which is an integer indicating the OTP release number + (its value is 21 in this release). + + There are new preprocessor directives -if(Condition). + and -elif(Condition).. The if/elif supports the builtin + function defined(Symbol). + + + OTP-15142 Application(s): ssl + + First version with support for DTLS + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-11694 Application(s): erts + + The erlang:system_flag(scheduler_wall_time,Bool) call + is now reference counted and will be turned off if the + (last) process that started the performance statistics + dies. Thus it is no longer possible to start the + statistics with rpc:call(Node, erlang, system_flag, + [scheduler_wall_time, true]) since it will be turned + off directly afterwards when the rpc process dies. + + + OTP-13073 Application(s): stdlib + Related Id(s): PR-1595 + + The semantics of timeout parameter + {clean_timeout,infinity} to gen_statem:call/3 has been + changed to use a proxy process for the call. With this + change clean_timeout implicates a proxy process with no + exceptions. This may be a hard to observe + incompatibility: in the presence of network problems a + late reply could arrive in the caller's message queue + when catching errors. That will not happen after this + correction. + + The semantics of timeout parameter infinity has not + been changed. + + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled by setting the primary log level to info, for + example with the Kernel configuration parameter + logger_level. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + Since Logger is new in Erlang/OTP 21.0, we do reserve + the right to introduce changes to the Logger API and + functionality in patches following this release. These + changes might or might not be backwards compatible with + the initial version. + + + OTP-13761 Application(s): kernel + Related Id(s): ERL-503 + + No resolver backend returns V4Mapped IPv6 addresses any + more. This was inconsistent before, some did, some did + not. To facilitate working with such addresses a new + function inet:ipv4_mapped_ipv6_address/1 has been + added. + + + OTP-14256 Application(s): erts + + The file driver has been rewritten as a NIF, decreasing + the latency of file operations. Notable + incompatibilities are: + + -- The use_threads option for file:sendfile/5 no longer + has any effect; we either use non-blocking sendfile(2) + or fall back to file:read + gen_tcp:send. + + -- The file-specific DTrace probes have been removed. + The same effect can be achieved with normal tracing + together with the nif__entry/nif__return probes to + track scheduling. + + + OTP-14370 Application(s): erts + + *** HIGHLIGHT *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was aimed toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the message has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14469 Application(s): sasl + + The old and outdated "Status Inspection" tool (modules + si and si_sasl_sup) is removed. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confusion, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14508 Application(s): erts + + When an exception is thrown, include the arguments of + the call in the stacktrace for BIFs band, bor, bsl, + bsr, bxor, div, rem and the operators +, -, * and /. + + + OTP-14518 Application(s): erts, otp + + *** HIGHLIGHT *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14577 Application(s): stdlib + + filelib:wildcard() now allows characters with a special + meaning to be escaped using backslashes. + + This is an incompatible change, but note that the use + of backslashes in wildcards would already work + differently on Windows and Unix. Existing calls to + filelib:wildcard() needs to be updated. On Windows, + directory separators must always be written as a slash. + + + OTP-14666 Application(s): erts, kernel + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14768 Application(s): ssl + + For security reasons no longer support 3-DES cipher + suites by default + + + OTP-14769 Application(s): ssl + + For security reasons RSA-key exchange cipher suites are + no longer supported by default + + + OTP-14789 Application(s): ssl + + The interoperability option to fallback to insecure + renegotiation now has to be explicitly turned on. + + + OTP-14824 Application(s): ssl + + Drop support for SSLv2 enabled clients. SSLv2 has been + broken for decades and never supported by the Erlang + SSL/TLS implementation. This option was by default + disabled and enabling it has proved to sometimes break + connections not using SSLv2 enabled clients. + + + OTP-14851 Application(s): ssh + + The option exec has new option values defined to make + it much more easy to implement an own exec server. + + An option called exec for daemons implementing the + handling of 'exec' requests has existed a long time but + has been undocumented. The old undocumented value - as + well as its behavior - is kept for compatibility EXCEPT + that error messages are changed and are sent as + "stderror" text. + + + OTP-14882 Application(s): ssl + + Remove CHACHA20_POLY1305 ciphers form default for now. + We have discovered interoperability problems, ERL-538, + that we believe needs to be solved in crypto. + + + OTP-14928 Application(s): erts + + *** HIGHLIGHT *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14961 Application(s): erts, tools + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + OTP-14964 Application(s): erts + Related Id(s): OTP-14589 + + The process suspend functionality used by the + erlang:suspend_process/2 BIF has been reimplemented + using the newly introduced true asynchronous signaling + between processes. This mainly to reduce memory usage + in the process control block of all processes, but also + in order to simplify the implementation. + + WARNING: You can easily create deadlocks if processes + suspends each other (directly or in circles). In ERTS + versions prior to ERTS version 10.0, the runtime system + prevented such deadlocks, but this prevention has now + been removed due to performance reasons. + + Other ERTS internal functionality that used the + previous process suspend functionality have also been + reimplemented to use asynchronous signaling instead. + + + OTP-14986 Application(s): erts + Related Id(s): PR-1745 + + erlang:process_info/1 has been changed to no longer + include messages by default. Instead + erlang:process_info/2 should be used. + + + OTP-15002 Application(s): ssh + Related Id(s): OTP-15030 + + The type specifications in SSH are completly reworked + and the following types are renamed: + + ssh:ssh_connection_ref() is changed to + ssh:connection_ref(), + + ssh:ssh_daemon_ref() is changed to ssh:daemon_ref(), + + ssh:ssh_channel_id() is changed to ssh:channel_id(). + + + OTP-15071 Application(s): kernel + + The included_applications key are no longer duplicated + as application environment variable. Earlier, the + included applications could be read both with + application:get[_all]_env(...) and + application:get[_all]_key(...) functions. Now, it can + only be read with application:get[_all]_key(...). + + + OTP-15072 Application(s): stdlib + Related Id(s): 1786, OTP-15114, PR + + The lib module is removed: + + -- lib:error_message/2 is removed. + + -- lib:flush_receive/0 is removed. + + -- lib:nonl/1 is removed. + + -- lib:progname/0 is replaced by ct:get_progname/0. + + -- lib:send/2 is removed. + + -- lib:sendw/2 is removed. + + + OTP-15103 Application(s): stdlib + Related Id(s): ERL-607 + + In control sequences of the functions io:fwrite/2,3 and + io_lib:fwrite/2,3 containing p or P, a field width of + value 0 means that no line breaks are inserted. This is + in contrast to the old behaviour, where 0 used to + insert line breaks after every subterm. To insert line + breaks after every subterm, a field width of value 1 + can be used. + + + OTP-15118 Application(s): erts, kernel + + Owner and group changes through file:write_file_info, + file:change_owner, and file:change_group will no longer + report success on permission errors. + + + --------------------------------------------------------------------- + --- asn1-5.0.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of asn1-5.0.6: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.16 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14810 Application(s): common_test + + Use the compiler option nowarn_export_all to disable + export_all warnings when automatically compiling test + suites. + + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + Full runtime dependencies of common_test-1.16: 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.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14855 Application(s): compiler + Related Id(s): ERL-549 + + Fixed an error in an optimization pass that caused + impossible tuple matching. + + + OTP-14992 Application(s): compiler + Related Id(s): ERL-572 + + The exception thrown when a list comprehension was + given a non-list term was not always correct. + + + OTP-15115 Application(s): compiler + Related Id(s): PR-1831 + + The compiler could produce incorrect code in rare + circumstances when the [{inline,F/A}] option was used. + + + --- Improvements and New Features --- + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confusion, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14505 Application(s): compiler + + In code such as example({ok, Val}) -> {ok, Val}. a + tuple would be built. The compiler will now + automatically rewrite the code to + example({ok,Val}=Tuple) -> Tuple. which will reduce + code size, execution time, and remove GC pressure. + + + OTP-14525 Application(s): compiler + + The optimization of case expression where only one of + the case arms can execute successfully has been + improved. + + + OTP-14594 Application(s): compiler + Related Id(s): ERL-444 + + Some uses of binary matching has been slightly + improved, eliminating unnecessary register shuffling. + + + OTP-14615 Application(s): compiler + Related Id(s): PR-1558 + + There is a new {compile_info,Info} option for the + compiler that allows BEAM-based languages such as + Elixir and LFE to add their own compiler versions. + + + OTP-14626 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14654 Application(s): compiler + + Size calculations for binary constructions has been + somewhat optimized, producing smaller code. + + + OTP-14683 Application(s): compiler, erts + + When the value returned from a 'catch' expression is + ignored, no stacktrace will be built if an exception is + caught. That will save time and produce less garbage. + There are also some minor optimizations of 'try/catch' + both in the compiler and run-time system. + + + OTP-14692 Application(s): compiler, erts + + *** HIGHLIGHT *** + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14712 Application(s): compiler + + The following is an internal change in the compiler, + that is not noticeable for normal use of the compiler: + The module v3_life has been removed. Its functionality + has been simplified and integrated into v3_codegen. + + + OTP-14774 Application(s): compiler + + The optimization of binary matching that delays + creation of sub binaries (see the Efficiency Guide) + could be thwarted by the argument order and could be + necessary to change the argument order. The compiler + has now become smarter and can handle any argument + order. + + + OTP-14808 Application(s): compiler + Related Id(s): ERL-514 + + When the compiler was faced with complex case + expressions it would unnecessarily allocate stack + elements and shuffle data between x and y registers. + Improved code generation to only allocate a stack frame + when strictly necessary. + + + OTP-14830 Application(s): compiler, erts + + There is a new option 'makedep_side_effect' for the + compiler and -MMD for 'erlc' that generates + dependencies and continues to compile as normal. + + + OTP-14968 Application(s): compiler + Related Id(s): ERL-563 + + *** HIGHLIGHT *** + + When compiling modules with huge functions, the + compiler would generate a lot of atoms for its + internal, sometimes so many that the atom table would + overflow. The compiler has been rewritten to generate + far less internal atoms to avoid filling the atom + table. + + + OTP-15003 Application(s): compiler, stdlib + + External funs with literal values for module, name, and + arity (e.g. erlang:abs/1) are now treated as literals. + That means more efficient code that produces less + garbage on the heap. + + + OTP-15037 Application(s): compiler, erts + Related Id(s): PR-1784, PR-1802 + + *** HIGHLIGHT *** + + Two new guards BIFs operating on maps have been added: + map_get/2 and is_map_key/2. They do the same as + maps:get/2 and maps:is_key/2, respectively, except that + they are allowed to be used in guards. + + + OTP-15044 Application(s): compiler + Related Id(s): ERL-614 + + A call or apply of a literal external fun will be + replaced with a direct call. + + + OTP-15087 Application(s): compiler + Related Id(s): PR-1810 + + *** HIGHLIGHT *** + + Part of EEP-44 has been implemented. + + There is a new predefined macro called OTP_RELEASE + which is an integer indicating the OTP release number + (its value is 21 in this release). + + There are new preprocessor directives -if(Condition). + and -elif(Condition).. The if/elif supports the builtin + function defined(Symbol). + + + Full runtime dependencies of compiler-7.2: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- crypto-4.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14956 Application(s): crypto + Related Id(s): ERL-579 + + Removed two undocumented and erroneous functions + (crypto:dh_generate_parameters/2 and + crypto:dh_check/1). + + + OTP-15088 Application(s): crypto + + Fixed bug causing VM crash if doing runtime upgrade of + a crypto module built against OpenSSL older than + 0.9.8h. Bug exists since OTP-20.2. + + + --- Improvements and New Features --- + + OTP-13370 Application(s): crypto + Related Id(s): PR-1573 + + A new rand plugin algorithm has been implemented in + crypto, that is: crypto_cache. It uses strong random + bytes as randomness source and caches them to get good + speed. See crypto:rand_seed_alg/1. + + + OTP-14864 Application(s): crypto + + Diffie-Hellman key functions are re-written with the + EVP_PKEY api. + + + Full runtime dependencies of crypto-4.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-4.2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14957 Application(s): debugger + Related Id(s): PR-1741 + + Fix a bug where calling a fun inside a binary would + crash the Debugger. + + + Full runtime dependencies of debugger-4.2.5: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-3.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14493 Application(s): dialyzer + Related Id(s): PR-1434 + + Dialyzer can no longer read BEAM files created with OTP + 19 or earlier. + + + OTP-14937 Application(s): dialyzer + Related Id(s): PR-1719 + + Speed up the computation of MD5 sums. + + + OTP-14970 Application(s): dialyzer + Related Id(s): PR-1722 + + Fix a situation where Dialyzer unnecessarily discarded + contract information, resulting in missed warnings. + + + OTP-14982 Application(s): dialyzer + Related Id(s): OTP-14970, PR-1722 + + The (not recommended) option -Woverspecs is somewhat + refined, and generates warnings in a few more cases. + + + OTP-15079 Application(s): dialyzer + Related Id(s): ERL-593 + + Do not emit warnings for fun expressions residing in + code that cannot be run. This is consistent with how + Dialyzer treats other code that cannot be run. + + + Full runtime dependencies of dialyzer-3.3: 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.5 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15045 Application(s): diameter + + Fix documentation typos. + + + Full runtime dependencies of diameter-2.1.5: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- edoc-0.9.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15117 Application(s): edoc + + Types and function specifications including the map() + type are pretty-printed correctly. + + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of edoc-0.9.3: erts-6.0, inets-5.10, + kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of eldap-1.2.4: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-0.8 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14979 Application(s): erl_docgen, otp + + Add a hoverable element to the titles in the html + documentation with a link to github where the + documentation can be edited. + + Make the anchors in the html User's Guide and system + documentation use the title of the sections instead of + a generated id. + + + Full runtime dependencies of erl_docgen-0.8: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-3.10.3 -------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15033 Application(s): erl_interface + + Fix bug where calling erl_init on certain platforms + could result in a buffer overflow bug. + + + OTP-15105 Application(s): erl_interface + Related Id(s): ERL-629 + + Fixed erl_call -m to not deallocate module source + binary before it has been read. + + + --- Improvements and New Features --- + + OTP-15114 Application(s): erl_interface + Related Id(s): ERL-634, OTP-15072 + + The program erl_call calls erl_eval:eval_str/1 when it + used to call lib:eval_str/1. This means that erl_call + will fail when trying interact with an Erlang node + running Erlang/OTP 20 or earlier. + + + --------------------------------------------------------------------- + --- erts-10.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14537 Application(s): erts + Related Id(s): PR1529 + + Fix error printout from run_erl and a bug that could + cause unintended fds to be leaked into the started + program. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14652 Application(s): erts + + Fix bugs related to the bookkeeping of microstate + accounting states. + + + OTP-14666 Application(s): erts, kernel + + *** POTENTIAL INCOMPATIBILITY *** + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14713 Application(s): erts + Related Id(s): ERL-500 + + Corrected erlang:is_builtin(erlang, M, F) to return + true for apply/2 and yield/0. + + + OTP-14719 Application(s): erts + + Fixed a bug where the PATH environment variable wasn't + updated correctly on a release downgrade, effectively + keeping the PATH of the new release. + + + OTP-14782 Application(s): erts + Related Id(s): ERL-511 + + A receive optimization that avoids scanning the entire + message queue when receiving a message containing a + freshly created reference could in rare circumstances + (involving recursive calls to the functions that does + the receive) cause the receive to hang. This has been + corrected. + + + OTP-14909 Application(s): erts + Related Id(s): PR-1692 + + Fix building of Erlang/OTP on platforms which have + small data area with short addressing. For example the + PowerPC/RTEMS platform. + + + OTP-14931 Application(s): erts + + Fixed a crash when enif_make_binary is called with a + binary produced by enif_inspect_binary in a different + environment. + + + OTP-14932 Application(s): erts + + Fixed a crash when enif_make_binary is called more than + once with a binary that had previously been added to an + enif_ioq. + + + OTP-14943 Application(s): erts + Related Id(s): ERL-576 + + The erl_child_setup program now ignores SIGTERM + signals. + + + OTP-14977 Application(s): erts + + Force 64-bit alignment on pre-allocators on + architectures which needs it. + + + OTP-14978 Application(s): erts + + Fixed a bug where dirty scheduler picked up non-dirty + work. + + + OTP-15001 Application(s): erts, kernel + + Calls to gen_tcp:send/2 on closed sockets now returns + {error, closed} instead of {error,enotconn}. + + + OTP-15008 Application(s): erts + + erlang:monotonic_time/1 failed with badarg when passing + the perf_counter time unit as argument. + + + OTP-15013 Application(s): erts + + Fix bug where rapid init:restart() calls would + sometimes crash because a code load request leaked in + between the restarts. + + + OTP-15015 Application(s): erts + Related Id(s): OTP-14890 + + Improve float_to_list(F, [{decimals,D}]) to closer + conform with io_lib:format("~.*f", [D,F]). + + There are however, still cases when float_to_list does + not produce the exact same result as io_lib:format, + especially for large values F and/or many decimals D. + + + OTP-15024 Application(s): erts + + Fixed a deadlock that would occur on certain allocators + when a reallocation failed with +ramv enabled. + + + OTP-15029 Application(s): erts + + Fix bug that made it impossible to use an erl_tracer as + the seq_trace trace receiver. + + + OTP-15032 Application(s): erts + + Fix bug where a large (> 1 GB) emulator generated error + logger message would cause the emulator to crash. + + + OTP-15062 Application(s): erts + Related Id(s): ERL-615 + + The emulator will no longer crash when reading the file + information of an ordinary file that has an NTFS + reparse point, such as files stored in a + OneDrive-mapped folder. + + + OTP-15080 Application(s): erts + + Fixed bug in enif_binary_to_term which could cause + memory corruption for immediate terms (atoms, small + integers, pids, ports, empty lists). + + + OTP-15085 Application(s): erts + + Fixed bug in erlang:system_profile/2 that could cause + superfluous {profile,_,active,_,_} messages for + terminating processes. + + + OTP-15090 Application(s): erts + + On OSs with per thread CPU time support, change + cpu_timestamp in erlang:trace/3 to use it instead of + per process CPU time. This makes this option useable on + such OSs when running multiple schedulers. + + + OTP-15108 Application(s): erts + Related Id(s): ERL-621 + + Fix segfault in abort_signal_task which could happen if + a port terminated while there were outstanding port + tasks that were not signals, for example a + ready_input/ready_output event. + + + OTP-15109 Application(s): erts + + Fixed bug in ets that could cause VM crash if process A + terminates after fixating a table and process B deletes + the table at "the same time". The table fixation could + be done with ets:safe_fixtable or if process A + terminates in the middle of a long running select or + match call. + + + OTP-15118 Application(s): erts, kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Owner and group changes through file:write_file_info, + file:change_owner, and file:change_group will no longer + report success on permission errors. + + + OTP-15119 Application(s): erts + Related Id(s): PR-1826 + + Fix a bug error reporting from escripts on windows + where the error message would get garbled. + + + OTP-15125 Application(s): erts + + Fix segfault when a process is interally re-scheduled + while being traced for in out events. This bug was + introduced in erts-8.0 (OTP-19.0). + + + --- Improvements and New Features --- + + OTP-11462 Application(s): erts + + It is now possible to open device files and FIFOs with + file:open/2. + + + OTP-11694 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The erlang:system_flag(scheduler_wall_time,Bool) call + is now reference counted and will be turned off if the + (last) process that started the performance statistics + dies. Thus it is no longer possible to start the + statistics with rpc:call(Node, erlang, system_flag, + [scheduler_wall_time, true]) since it will be turned + off directly afterwards when the rpc process dies. + + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled by setting the primary log level to info, for + example with the Kernel configuration parameter + logger_level. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + Since Logger is new in Erlang/OTP 21.0, we do reserve + the right to introduce changes to the Logger API and + functionality in patches following this release. These + changes might or might not be backwards compatible with + the initial version. + + + OTP-13760 Application(s): erts + Related Id(s): PR-1592 + + gen_sctp:connect_init/4 or rather connect in inet_drv.c + for SCTP has been fixed to not check the write file + descriptor for writeability after a connect, since for + SCTP (SOCK_SEQPACKET) that property does not seem to be + any kind of indicator for when a connect has finished. + This fixes connects that the OS returned as "in + progress" that was misinterpreted by + gen_sctp:connect_init as failed. + + + OTP-14256 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The file driver has been rewritten as a NIF, decreasing + the latency of file operations. Notable + incompatibilities are: + + -- The use_threads option for file:sendfile/5 no longer + has any effect; we either use non-blocking sendfile(2) + or fall back to file:read + gen_tcp:send. + + -- The file-specific DTrace probes have been removed. + The same effect can be achieved with normal tracing + together with the nif__entry/nif__return probes to + track scheduling. + + + OTP-14346 Application(s): erts + + The I/O polling functionality of erts has been + re-written to better make use of the OSs polling + mechanisms. This change means that erts will now always + prefer to use a kernel-polling mechanism if possible. + Also all of the I/O polling has been moved to dedicated + threads instead of being placed in the scheduler loops. + + As a result of this, the erl options +K and +secio have + been removed. It is still possible to disable + kernel-poll, but it has to be done at compile time + through the configure option --disable-kernel-poll. + + The new erl options +IOt and +IOp can be used to change + how many IO poll threads and poll sets that erts should + use. See their respective documentation for more + details. + + + OTP-14370 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Truly asynchronous auto-connect. Earlier, when + erlang:send was aimed toward an unconnected node, the + function would not return until the connection setup + had completed (or failed). Now the function returns + directly after the message has been enqueued and the + connection setup started. + + The same applies to all distributed operations that may + trigger auto-connect, i.e. '!', send, link, monitor, + monitor_node, exit/2 and group_leader. + + The interface for all these functions are unchanged as + they do not return connection failures. The only + exception is erlang:monitor where a *possible + incompatibility* is introduced: An attempt to monitor a + process on a primitive node (such as erl_interface or + jinterface), where remote process monitoring is not + implemented, will no longer fail with badarg exception. + Instead a monitor will be created, but it will only + supervise the connection to the node. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14459 Application(s): erts, kernel + + *** HIGHLIGHT *** + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14492 Application(s): erts + + Add support for the lcc compiler and in extension the + Elbrus 2000 platform. + + + OTP-14497 Application(s): compiler, erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Support for "tuple calls" have been removed from the + run-time system. Tuple calls was an undocumented and + unsupported feature which allowed the module argument + for an apply operation to be a tuple: Var = dict:new(), + Var:size(). This "feature" frequently caused confusion, + especially when such call failed. The stacktrace would + point out functions that don't exist in the source + code. + + For legacy code that need to use parameterized modules + or tuple calls for some other reason, there is a new + compiler option called tuple_calls. When this option is + given, the compiler will generate extra code that + emulates the old behavior for calls where the module is + a variable. + + + OTP-14502 Application(s): erts + + *** HIGHLIGHT *** + + Creation of small maps with literal keys has been + optimized to be faster and potentially use less memory. + The keys are combined into a literal key tuple which is + put into the literal pool. The key tuple can be shared + between many instances of maps having the same keys. + + + OTP-14508 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + When an exception is thrown, include the arguments of + the call in the stacktrace for BIFs band, bor, bsl, + bsr, bxor, div, rem and the operators +, -, * and /. + + + OTP-14518 Application(s): erts, otp + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The non-smp emulators have been removed. This means + that the configure options --disable-threads and + --enable-plain-emulator have been removed and configure + will now refuse to build Erlang/OTP on platforms + without thread support. + + In order to achieve a similar setup as the non-smp + emulator, it is possible to start Erlang/OTP with the + +S 1 option. + + + OTP-14575 Application(s): erts + + Modules that use floating point constants compiled with + R15 or earlier will need to be re-compiled before they + can be loaded. + + + OTP-14589 Application(s): erts + + *** HIGHLIGHT *** + + Implementation of true asynchronous signaling between + processes in order to improve scalability. Signals + affected include exit, monitor, demonitor, monitor + triggered, link, unlink, and group leader. + + + OTP-14604 Application(s): erts + + Added a PGO (profile guided optimization) pass to the + build step of erts. This can be disabled by passing + --disable-pgo to configure. + + + OTP-14610 Application(s): erts + Related Id(s): PR-1480 + + Improved the performance of binary:split and + binary:match. + + + OTP-14613 Application(s): erts + + It is not longer possible to disable dirty schedulers + when building erlang. + + + OTP-14626 Application(s): compiler, erts + + *** HIGHLIGHT *** + + Loaded BEAM code in a 64-bit system requires less + memory because of better packing of operands for + instructions. + + These memory savings were achieved by major + improvements to the beam_makeops scripts used when + building the run time system and BEAM compiler. There + is also new for documentation for beam_makeops that + describes how new BEAM instructions and loader + transformations can be implemented. The documentation + is found in here in a source directory or git + repository: erts/emulator/internal_doc/beam_makeops.md. + An online version can be found here: + https://github.com/erlang/otp/blob/master/erts/emulator/internal_doc/beam_makeops.md + + + OTP-14637 Application(s): erts + Related Id(s): ERL-327, PR-1524 + + file:read_file has been changed to read the content of + files that report a size of 0 even when data can be + read from them. An example of such a file is + /proc/cpuinfo on Linux. + + + OTP-14651 Application(s): erts + + It is no longer possible to disable the temp_alloc + allocator. Disabling it caused serious performance + degradations and was never what was wanted. + + + OTP-14667 Application(s): erts + + The reduction cost of sending messages is now constant. + It will no longer scale according to the length of the + receiving process' message queue. + + + OTP-14680 Application(s): erts + + Improved loading of modules with -on_load directive, to + no longer block all schedulers when the load operation + is completed. + + + OTP-14682 Application(s): erts + + On platforms with real-time signals available, + SIGRTMIN+1 is now used as the internal scheduler + suspend signal instead of SIGUSR2. + + + OTP-14683 Application(s): compiler, erts + + When the value returned from a 'catch' expression is + ignored, no stacktrace will be built if an exception is + caught. That will save time and produce less garbage. + There are also some minor optimizations of 'try/catch' + both in the compiler and run-time system. + + + OTP-14687 Application(s): erts + + The guarantees and non-guarantees of + erlang:get_stacktrace/0 are now documented. + + + OTP-14692 Application(s): compiler, erts + + *** HIGHLIGHT *** + + There is a new syntax in 'try/catch' for retrieving the + stacktrace without calling 'erlang:get_stacktrace/0'. + See the reference manual for a description of the new + syntax. The 'erlang:get_stacktrace/0' BIF is now + deprecated. + + + OTP-14780 Application(s): erts + + New 'used' option for binary_to_term/2 that will also + return number of bytes actually read from the binary. + This enables easy access to any extra data in the + binary located directly after the returned term. + + + OTP-14795 Application(s): erts + Related Id(s): ERL-88 + + Added more statistics for + erlang:system_info({allocator,A}) in the mbcs_pool + section. + + + OTP-14797 Application(s): erts + + Added enif_ioq_peek_head to retrieve Erlang terms from + NIF IO queues without having to resort to copying. + + + OTP-14830 Application(s): compiler, erts + + There is a new option 'makedep_side_effect' for the + compiler and -MMD for 'erlc' that generates + dependencies and continues to compile as normal. + + + OTP-14884 Application(s): erts, stdlib + + Added ets:whereis/1 for retrieving the table identifier + of a named table. + + + OTP-14899 Application(s): erts, kernel + + *** HIGHLIGHT *** + + seq_trace labels may now be any erlang term. + + + OTP-14901 Application(s): erts + + Optimized the common case of monitor followed by send + to the same local process. The monitor signal is now + delayed in order to be piggybacked with the sent + message and thereby only get one lock operation on the + message queue of the receiver. A delayed monitor signal + is flushed if no send has been done at the latest when + the process is scheduled out. + + + OTP-14903 Application(s): erts, hipe + + Make hipe compiled code work on x86_64 (amd64) with OS + security feature PIE, where executable code can be + loaded into a random location. Old behavior, if hipe + was enabled, was to disable PIE build options for the + VM. + + + OTP-14928 Application(s): erts + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The number of driver async threads will now default to + 1 as the standard drivers do not use them anymore. + Users that changed this value to tweak the file driver + should replace +A with +SDio since it now uses dirty IO + schedulers instead of async threads. + + + OTP-14934 Application(s): erts + Related Id(s): PR-1708 + + Optimize == and /= for binaries with different sizes to + be constant in time instead of proportional to the size + of their common prefix. + + + OTP-14948 Application(s): erts + + Refactorings making some internal process flags + available for other usage. + + + OTP-14951 Application(s): erts + + Removed need for HiPE to allocate native executable + memory in low 2GB address space on x86_64. Command line + option +MXscs is thereby obsolete and ignored. + + + OTP-14954 Application(s): erts + + Added enif_make_map_from_arrays for creating a + populated map, analogous to enif_make_list_from_array. + + + OTP-14959 Application(s): erts + + Added configuration switches for busy-wait and wake up + thresholds for dirty schedulers, and changing these + settings for normal schedulers will no longer affect + dirty schedulers. + + Refer to the documentation for details. The new + switches are +sbwtdcpu, +sbwtdio, +swtdcpu, and + +swtdio. + + The default busy wait threshold for dirty scheduler + threads has also been lowered to short. + + + OTP-14960 Application(s): erts + + The list of "taints" now also includes dynamic loaded + drivers in addition to NIF libraries. Statically linked + drivers and NIF libraries that are part of erts are not + included. The "taints" are returned by + system_info(taints) and printed in the header of + erl_crash.dump files. + + + OTP-14961 Application(s): erts, tools + + *** POTENTIAL INCOMPATIBILITY *** + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + OTP-14964 Application(s): erts + Related Id(s): OTP-14589 + + *** POTENTIAL INCOMPATIBILITY *** + + The process suspend functionality used by the + erlang:suspend_process/2 BIF has been reimplemented + using the newly introduced true asynchronous signaling + between processes. This mainly to reduce memory usage + in the process control block of all processes, but also + in order to simplify the implementation. + + WARNING: You can easily create deadlocks if processes + suspends each other (directly or in circles). In ERTS + versions prior to ERTS version 10.0, the runtime system + prevented such deadlocks, but this prevention has now + been removed due to performance reasons. + + Other ERTS internal functionality that used the + previous process suspend functionality have also been + reimplemented to use asynchronous signaling instead. + + + OTP-14965 Application(s): erts + + Added the nifs option to ?MODULE:module_info/1 for + listing a module's installed NIF functions. + + + OTP-14966 Application(s): erts + + New implementation of erlang:process_info/[1,2]. + + In the general case when inspecting another process, + the new implementation sends an asynchronous + process-info request signal to the other process and + waits for the result instead of locking the other + process and reading the result directly. In some + special cases where no conflicts occur, signal order + wont be violated, and the amount of data requested is + guaranteed to be small, the inspected process may be + inspected directly. + + Appropriate amount of reductions are now also bumped + when inspecting a process. + + + OTP-14975 Application(s): erts + Related Id(s): PR-1597 + + Removed process start time from crash dump in order to + save memory in process control block. + + + OTP-14976 Application(s): erts + + Optimize erlang:put/2 when updating existing key with a + new immediate value (atom, small integer, pid, port). + + + OTP-14986 Application(s): erts + Related Id(s): PR-1745 + + *** POTENTIAL INCOMPATIBILITY *** + + erlang:process_info/1 has been changed to no longer + include messages by default. Instead + erlang:process_info/2 should be used. + + + OTP-14987 Application(s): erts + + New erlang:system_info(ets_count) to get total number + of ets tables existing at the local node. + + + OTP-14994 Application(s): erts + + New NIF functions: enif_mutex_name, enif_cond_name, + enif_rwlock_name, enif_thread_name, enif_vfprintf, + enif_vsnprintf. + + + OTP-15026 Application(s): erts + + When erlang:system_flag(backtrace_depth, 0) has been + called, all exceptions will now contain the entry for + *one* function (despite the zero). It used to be that a + hand-made stack backtrace passed to erlang:raise/3 + would be be truncated to an empty list. + + + OTP-15031 Application(s): erts + + Fixed bug for named ets tables which could cause + unexpected results from matchspec iteration functions + (ets:select* and ets:match*) if the table was deleted + and recreated with the same name during the iteration. + The iteration could incorrectly continue through the + recreated table. The expected correct behavior is now + for the iteration call to fail with a badarg exception + if the table is deleted before the iteration has + completed. + + + OTP-15037 Application(s): compiler, erts + Related Id(s): PR-1784, PR-1802 + + *** HIGHLIGHT *** + + Two new guards BIFs operating on maps have been added: + map_get/2 and is_map_key/2. They do the same as + maps:get/2 and maps:is_key/2, respectively, except that + they are allowed to be used in guards. + + + OTP-15081 Application(s): erts + + Release run-queue lock while cleaning up terminated + dirty process. + + + OTP-15086 Application(s): erts, kernel + Related Id(s): PR-1694 + + The callback module passed as -epmd_module to erl has + been expanded to be able to do name and port resolving. + + Documentation has also been added in the erl_epmd + reference manual and ERTS User's Guide How to Implement + an Alternative Service Discovery for Erlang + Distribution. + + + Full runtime dependencies of erts-10.0: kernel-6.0, sasl-3.0.1, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- et-1.6.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of et-1.6.2: erts-9.0, kernel-5.3, + runtime_tools-1.10, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- eunit-2.3.6 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of eunit-2.3.6: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ftp-1.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of ftp-1.0: erts-7.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- hipe-3.18 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14785 Application(s): hipe + Related Id(s): PR-1632 + + Optimize receive statements that are only waiting for + messages containing a reference created before the + receive. All messages that existed in the queue when + the reference was created will be bypassed, as they + cannot possibly contain the reference. This + optimization has existed for vanilla BEAM since OTP + R14. + + + OTP-14900 Application(s): hipe + Related Id(s): PR-1621, PR-1685 + + Add validation pass to hipe compiler to detect internal + errors causing primop calls that may trigger an unsafe + GC at run-time. The pass can be disabled with option + no_verify_gcsafe. + + + OTP-14903 Application(s): erts, hipe + + Make hipe compiled code work on x86_64 (amd64) with OS + security feature PIE, where executable code can be + loaded into a random location. Old behavior, if hipe + was enabled, was to disable PIE build options for the + VM. + + + OTP-14941 Application(s): hipe + Related Id(s): PR-1718 + + Inline more type test BIFs; is_number, is_bitstring, + is_map. + + + Full runtime dependencies of hipe-3.18: compiler-5.0, erts-9.3, + kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-7.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14726 Application(s): inets + + Fixed HTTP content injection bug in httpc (ERL-456). + + + OTP-14729 Application(s): inets + + Fixed support for URI-references in HTTP 'Location' + header (ERL-333). + + + OTP-15006 Application(s): inets + + Fix broken 'Content-Type' handling in httpc (ERL-536). + + + OTP-15021 Application(s): inets + + Fix handling of relative paths in the script_alias + property of httpd (ERL-574). + + + OTP-15025 Application(s): inets + + Fix httpd:reload_config/2 with path() as the first + argument (ERL-578). + + + OTP-15042 Application(s): inets + + Improved gracefulness. + + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of inets-7.0: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.9 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14844 Application(s): jinterface + + Add module package name for Java 9 + + + --------------------------------------------------------------------- + --- kernel-6.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-10551 Application(s): kernel + + Clarify the documentation of rpc:multicall/5. + + + OTP-13133 Application(s): kernel + Related Id(s): PR-1557 + + The DNS resolver when getting econnrefused from a + server retained an invalid socket so look up towards + the next server(s) also failed. + + + OTP-13761 Application(s): kernel + Related Id(s): ERL-503 + + *** POTENTIAL INCOMPATIBILITY *** + + No resolver backend returns V4Mapped IPv6 addresses any + more. This was inconsistent before, some did, some did + not. To facilitate working with such addresses a new + function inet:ipv4_mapped_ipv6_address/1 has been + added. + + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14501 Application(s): kernel + + Fix name resolving in IPv6 only environments when doing + the initial distributed connection. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14666 Application(s): erts, kernel + + *** POTENTIAL INCOMPATIBILITY *** + + os:putenv and os:getenv no longer access the process + environment directly and instead work on a thread-safe + emulation. The only observable difference is that it's + *not* kept in sync with libc getenv(3) / putenv(3), so + those who relied on that behavior in drivers or NIFs + will need to add manual synchronization. + + On Windows this means that you can no longer resolve + DLL dependencies by modifying the PATH just before + loading the driver/NIF. To make this less of a problem, + the emulator now adds the target DLL's folder to the + DLL search path. + + + OTP-14681 Application(s): kernel + + Fixed connection tick toward primitive hidden nodes + (erl_interface) that could cause faulty tick timeout in + rare cases when payload data is sent to hidden node but + not received. + + + OTP-14991 Application(s): kernel + Related Id(s): PR1705 + + Make group react immediately on an EXIT-signal from + shell in e.g ssh. + + + OTP-15001 Application(s): erts, kernel + + Calls to gen_tcp:send/2 on closed sockets now returns + {error, closed} instead of {error,enotconn}. + + + OTP-15071 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The included_applications key are no longer duplicated + as application environment variable. Earlier, the + included applications could be read both with + application:get[_all]_env(...) and + application:get[_all]_key(...) functions. Now, it can + only be read with application:get[_all]_key(...). + + + OTP-15118 Application(s): erts, kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Owner and group changes through file:write_file_info, + file:change_owner, and file:change_group will no longer + report success on permission errors. + + + --- Improvements and New Features --- + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled by setting the primary log level to info, for + example with the Kernel configuration parameter + logger_level. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + Since Logger is new in Erlang/OTP 21.0, we do reserve + the right to introduce changes to the Logger API and + functionality in patches following this release. These + changes might or might not be backwards compatible with + the initial version. + + + OTP-13713 Application(s): kernel + Related Id(s): PR-1645 + + The function inet:i/0 has been documented. + + + OTP-14359 Application(s): kernel + Related Id(s): PR-1816 + + Typespecs for netns and bind_to_device options have + been added to gen_tcp, gen_udp and gen_sctp functions. + + + OTP-14459 Application(s): erts, kernel + + *** HIGHLIGHT *** + + New functionality for implementation of alternative + carriers for the Erlang distribution has been + introduced. This mainly consists of support for usage + of distribution controller processes (previously only + ports could be used as distribution controllers). For + more information see ERTS User's Guide ➜ How to + implement an Alternative Carrier for the Erlang + Distribution ➜ Distribution Module. + + + OTP-14899 Application(s): erts, kernel + + *** HIGHLIGHT *** + + seq_trace labels may now be any erlang term. + + + OTP-14969 Application(s): kernel, ssl + Related Id(s): ERL-598, OTP-14465 + + The SSL distribution protocol -proto inet_tls has + stopped setting the SSL option server_name_indication. + New verify funs for client and server in inet_tls_dist + has been added, not documented yet, that checks node + name if present in peer certificate. Usage is still + also yet to be documented. + + + OTP-15009 Application(s): kernel + Related Id(s): ERL-601 + + Changed timeout of gen_server calls to auth server from + default 5 seconds to infinity. + + + OTP-15086 Application(s): erts, kernel + Related Id(s): PR-1694 + + The callback module passed as -epmd_module to erl has + been expanded to be able to do name and port resolving. + + Documentation has also been added in the erl_epmd + reference manual and ERTS User's Guide How to Implement + an Alternative Service Discovery for Erlang + Distribution. + + + OTP-15137 Application(s): kernel + Related Id(s): PR-1838 + + Included config file specified with relative path in + sys.config are now first searched for relative to the + directory of sys.config itself. If not found, it is + also searched for relative to the current working + directory. The latter is for backwards compatibility. + + + Full runtime dependencies of kernel-6.0: erts-10.0, sasl-3.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- mnesia-4.15.4 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of mnesia-4.15.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.8 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14993 Application(s): observer + Related Id(s): PR-1666 + + Added possibility to garbage collect selected processes + and fixed a crash when the saved config file contained + bad data. + + + --- Improvements and New Features --- + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + Full runtime dependencies of observer-2.8: erts-7.0, et-1.5, + kernel-3.0, runtime_tools-1.8.14, stdlib-3.5, wx-1.2 + + + --------------------------------------------------------------------- + --- os_mon-2.4.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14513 Application(s): os_mon + + Fix disksup to handle mount paths with spaces in them. + + + Full runtime dependencies of os_mon-2.4.5: erts-6.0, kernel-3.0, + mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- otp_mibs-1.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15141 Application(s): otp_mibs + + The otp_mibs application has been deprecated and will + be removed in a future release. + + + Full runtime dependencies of otp_mibs-1.2: erts-6.0, kernel-3.0, + mnesia-4.12, snmp-4.25.1, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.1.7 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of parsetools-2.1.7: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.6 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14788 Application(s): public_key + Related Id(s): OTP-14624 + + Update calls to the base64 module to conform to that + module's type specifications. + + + --- Improvements and New Features --- + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + OTP-14962 Application(s): public_key + Related Id(s): ERL-542, OTP-15102 + + A new function - + public_key:pkix_verify_hostname_match_fun/1 - returns a + fun to be given as option match_fun to + public_key:pkix_verify_hostname/3 or via ssl. + + The fun makes the verify hostname matching according to + the specific rules for the protocol in the argument. + Presently only https is supported. + + + OTP-15093 Application(s): public_key + + Compleate PKCS-8 encoding support and enhance the + decoding of 'PrivateKeyInfo' to conform to the rest of + Erlang public_key API. + + + OTP-15113 Application(s): public_key, ssh + + A new moduli file is generated. This file is used for + the recommended diffie-hellman-group-exchange-sha256 + key exchange algorithm in SSH. + + + Full runtime dependencies of public_key-1.6: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-0.7.6 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14861 Application(s): et, eunit, mnesia, parsetools, reltool + + Calls to erlang:get_stacktrace() are removed. + + + Full runtime dependencies of reltool-0.7.6: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.13 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14904 Application(s): runtime_tools + + New utility module scheduler which makes it easier to + measure scheduler utilization. + + + Full runtime dependencies of runtime_tools-1.13: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --- sasl-3.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled by setting the primary log level to info, for + example with the Kernel configuration parameter + logger_level. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + Since Logger is new in Erlang/OTP 21.0, we do reserve + the right to introduce changes to the Logger API and + functionality in patches following this release. These + changes might or might not be backwards compatible with + the initial version. + + + OTP-14469 Application(s): sasl + + *** POTENTIAL INCOMPATIBILITY *** + + The old and outdated "Status Inspection" tool (modules + si and si_sasl_sup) is removed. + + + OTP-14950 Application(s): sasl + Related Id(s): PR-1560 + + When creating the release tar file, systools now + includes sys.config.src if it exists in the + $ROOT/releases/<vsn>/ directory. This is to allow + adjustments, e.g. resolving environment variables, + after unpacking the release, but before installing it. + This functionality requires a custom tool which uses + sys.config.src as input and creates a correct + sys.config file. + + + Full runtime dependencies of sasl-3.2: erts-9.0, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- ssh-4.7 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14955 Application(s): ssh + + If the daemon port listener is restarted, it could + potentially fail with eaddrinuse if the timing is + unlucky. It will now retry and exponentially back off + the listener restart a few times before failing. + + + OTP-15084 Application(s): ssh + + A channel callback module always got the module name as + reason in a call to terminate. Now it will get the + proper Reason, usually 'normal'. + + + --- Improvements and New Features --- + + OTP-14851 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The option exec has new option values defined to make + it much more easy to implement an own exec server. + + An option called exec for daemons implementing the + handling of 'exec' requests has existed a long time but + has been undocumented. The old undocumented value - as + well as its behavior - is kept for compatibility EXCEPT + that error messages are changed and are sent as + "stderror" text. + + + OTP-14880 Application(s): ssh + + Updated ssh_connection:shell/2 documentation. + + + OTP-14896 Application(s): ssh + + The experimental ssh_dbg module is completely + re-written. Its purpose is to make tracing and + debugging easier on deployed systems. + + + OTP-14988 Application(s): ssh + + The SSH supervisor structure has been slightly changed. + This makes stopping the ssh application considerably + faster if there are open connections. This is important + in for example restarts. + + + OTP-15002 Application(s): ssh + Related Id(s): OTP-15030 + + *** POTENTIAL INCOMPATIBILITY *** + + The type specifications in SSH are completly reworked + and the following types are renamed: + + ssh:ssh_connection_ref() is changed to + ssh:connection_ref(), + + ssh:ssh_daemon_ref() is changed to ssh:daemon_ref(), + + ssh:ssh_channel_id() is changed to ssh:channel_id(). + + + OTP-15019 Application(s): ssh + + The internal timer handling in SSH is now based on the + gen_statem timers. + + + OTP-15028 Application(s): ssh + + Removed the undocumented and unused modules + ssh_client_key.erl and ssh_server_key.erl. + + + OTP-15030 Application(s): ssh + Related Id(s): OTP-15002 + + The Reference Manual pages are partly updated. + + The ssh page is now generated from specs and types, is + restructured and is partly rephrased. + + The ssh_channel, ssh_connection, ssh_client_key_api, + ssh_server_key_api and ssh_sftp pages are updated with + links, correct type names and some minor changes. + + + OTP-15041 Application(s): ssh + + The behaviors ssh_channel and ssh_daemon_channel are + renamed to ssh_client_channel and ssh_server_channel + respectively. + + The old modules are kept for compatibility but should + preferably be replaced when updating callback modules + referring them. + + + OTP-15051 Application(s): ssh + + New test suite for channels. + + + OTP-15069 Application(s): ssh + Related Id(s): ERL-617 + + The rekey_limit option could now set the max time as + well as the previously max data amount. + + + OTP-15082 Application(s): ssh + + Changed process exit supervision from links to + monitors. + + + OTP-15083 Application(s): ssh + + Better handling of misbehaving channel callback + modules. + + + OTP-15113 Application(s): public_key, ssh + + A new moduli file is generated. This file is used for + the recommended diffie-hellman-group-exchange-sha256 + key exchange algorithm in SSH. + + + Full runtime dependencies of ssh-4.7: crypto-4.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --- ssl-9.0 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14974 Application(s): ssl + + Correct handling of ECDH suites. + + + OTP-15050 Application(s): ssl + + Proper handling of clients that choose to send an empty + answer to a certificate request + + + --- Improvements and New Features --- + + OTP-14465 Application(s): ssl + + Distribution over SSL (inet_tls) has, to improve + performance, been rewritten to not use intermediate + processes and ports. + + + OTP-14547 Application(s): ssl + + Add suport for ECDHE_PSK cipher suites + + + OTP-14768 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + For security reasons no longer support 3-DES cipher + suites by default + + + OTP-14769 Application(s): ssl + + *** INCOMPATIBILITY with possible *** + + For security reasons RSA-key exchange cipher suites are + no longer supported by default + + + OTP-14789 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + The interoperability option to fallback to insecure + renegotiation now has to be explicitly turned on. + + + OTP-14824 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Drop support for SSLv2 enabled clients. SSLv2 has been + broken for decades and never supported by the Erlang + SSL/TLS implementation. This option was by default + disabled and enabling it has proved to sometimes break + connections not using SSLv2 enabled clients. + + + OTP-14882 Application(s): ssl + + *** INCOMPATIBILITY with possibly *** + + Remove CHACHA20_POLY1305 ciphers form default for now. + We have discovered interoperability problems, ERL-538, + that we believe needs to be solved in crypto. + + + OTP-14888 Application(s): ssl + + Generalize DTLS packet multiplexing to make it easier + to add future DTLS features and uses. + + + OTP-14902 Application(s): common_test, observer, public_key, ssl + + Use uri_string module instead of http_uri. + + + OTP-14969 Application(s): kernel, ssl + Related Id(s): ERL-598, OTP-14465 + + The SSL distribution protocol -proto inet_tls has + stopped setting the SSL option server_name_indication. + New verify funs for client and server in inet_tls_dist + has been added, not documented yet, that checks node + name if present in peer certificate. Usage is still + also yet to be documented. + + + OTP-15056 Application(s): ssl + + Deprecate ssl:ssl_accept/[1,2,3] in favour of + ssl:handshake/[1,2,3] + + + OTP-15102 Application(s): ssl + Related Id(s): ERL-542, OTP-14962 + + Customizes the hostname verification of the peer + certificate, as different protocols that use TLS such + as HTTP or LDAP may want to do it differently + + + OTP-15106 Application(s): ssl + + Add utility function for converting erlang cipher + suites to a string represenation (ERL-600). + + + OTP-15142 Application(s): ssl + + *** HIGHLIGHT *** + + First version with support for DTLS + + + Full runtime dependencies of ssl-9.0: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14015 Application(s): stdlib + + gen_statem improvements. + + When using an exception that is valid but not allowed + in a state enter call, the reason has been changed from + {bad_action_from_state_function,Action} to + {bad_state_enter_action_from_state_function,Action}. + + Timer parsing has been improved. Many erroneous timeout + tuples was not handled correctly. + + The documentation has been updated, in particular the + User's Guide and the pointer to it from the Reference + Manual is much more obvious. + + + OTP-14019 Application(s): erts, kernel, stdlib + Related Id(s): ERL-550 + + The type specifications for file:posix/0 and + inet:posix/0 have been updated according to which + errors file and socket operations should be able to + return. + + + OTP-14543 Application(s): erts, kernel, stdlib + Related Id(s): ERL-370 + + *** POTENTIAL INCOMPATIBILITY *** + + File operations used to accept filenames containing + null characters (integer value zero). This caused the + name to be truncated and in some cases arguments to + primitive operations to be mixed up. Filenames + containing null characters inside the filename are now + *rejected* and will cause primitive file operations to + fail. + + Also environment variable operations used to accept + names and values of environment variables containing + null characters (integer value zero). This caused + operations to silently produce erroneous results. + Environment variable names and values containing null + characters inside the name or value are now *rejected* + and will cause environment variable operations to fail. + + Primitive environment variable operations also used to + accept the $= character in environment variable names + causing various problems. $= characters in environment + variable names are now also *rejected*. + + Also os:cmd/1 now reject null characters inside its + command. + + erlang:open_port/2 will also reject null characters + inside the port name from now on. + + + OTP-14958 Application(s): stdlib + Related Id(s): PR-1735 + + Make io_lib:unscan_format/1 work with pad char and + default precision. + + + OTP-14971 Application(s): stdlib + Related Id(s): PR-1743 + + The control sequence modifiers t and l can be used + together in the same control sequence which makes it + possible to have Unicode atoms and no detection of + printable character lists at the same time. + + + OTP-15035 Application(s): stdlib + Related Id(s): ERL-613 + + Fix a bug in the Erlang code linter: the check of guard + expressions no longer returns false if the map syntax + is used. The bug affected the Erlang shell, the + Debugger, and other modules evaluating abstract code. + + + OTP-15049 Application(s): stdlib + + A sys debug fun of type {Fun,State} should not be + possible to install twice. This was, however, possible + if the current State was 'undefined', which was + mistaken for non-existing fun. This has been corrected. + + + OTP-15101 Application(s): stdlib + + Fix io:putchars/2 stacktrace rewriting at errors to + point to a valid function. + + + --- Improvements and New Features --- + + OTP-13019 Application(s): stdlib + Related Id(s): PR-1490 + + The gen_server has gotten a new callback + handle_continue/2 for check pointing the state. This is + useful at least when implementing behaviours on top of + gen_server and for some start up scenarios. + + + OTP-13073 Application(s): stdlib + Related Id(s): PR-1595 + + *** POTENTIAL INCOMPATIBILITY *** + + The semantics of timeout parameter + {clean_timeout,infinity} to gen_statem:call/3 has been + changed to use a proxy process for the call. With this + change clean_timeout implicates a proxy process with no + exceptions. This may be a hard to observe + incompatibility: in the presence of network problems a + late reply could arrive in the caller's message queue + when catching errors. That will not happen after this + correction. + + The semantics of timeout parameter infinity has not + been changed. + + + OTP-13295 Application(s): erts, kernel, sasl, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + A new logging API is added to Erlang/OTP, see the + logger(3) manual page, and section Logging in the + Kernel User's Guide. + + Calls to error_logger are automatically redirected to + the new API, and legacy error logger event handlers can + still be used. It is, however, recommended to use the + Logger API directly when writing new code. + + Notice the following potential incompatibilities: + + -- Kernel configuration parameters error_logger still + works, but is overruled if the default handler's output + destination is configured with Kernel configuration + parameter logger. + + In general, parameters for configuring error logger are + overwritten by new parameters for configuring Logger. + + -- The concept of SASL error logging is deprecated, + meaning that by default the SASL application does not + affect which log events are logged. + + By default, supervisor reports and crash reports are + logged by the default Logger handler started by Kernel, + and end up at the same destination (terminal or file) + as other standard log event from Erlang/OTP. + + Progress reports are not logged by default, but can be + enabled by setting the primary log level to info, for + example with the Kernel configuration parameter + logger_level. + + To obtain backwards compatibility with the SASL error + logging functionality from earlier releases, set Kernel + configuration parameter logger_sasl_compatible to true. + This prevents the default Logger handler from logging + any supervisor-, crash-, or progress reports. Instead, + SASL adds a separate Logger handler during application + start, which takes care of these log events. The SASL + configuration parameters sasl_error_logger and + sasl_errlog_type specify the destination (terminal or + file) and severity level to log for these events. + + Since Logger is new in Erlang/OTP 21.0, we do reserve + the right to introduce changes to the Logger API and + functionality in patches following this release. These + changes might or might not be backwards compatible with + the initial version. + + + OTP-13413 Application(s): stdlib + + Add functions calendar:system_time_to_local_time/2 and + calendar:system_time_to_universal_time/2. + + + OTP-13764 Application(s): stdlib + Related Id(s): PR-1574 + + Functions rand:uniform_real/0 and rand:uniform_real_s/1 + have been added. They produce uniformly distributed + numbers in the range 0.0 =< X < 1.0 that are as close + to random real numbers as Normalized IEEE 754 Double + Precision allows. Because the random real number + exactly 0.0 is infinitely improbable they will never + return exactly 0.0. + + These properties are useful when you need to call for + example math:log(X) or 1 / X on a random value X, since + that will never fail with a number from these new + functions. + + + OTP-14012 Application(s): stdlib + + Added maps:iterator/0 and maps:next/1 to be used for + iterating over the key-value associations in a map. + + + OTP-14439 Application(s): compiler, dialyzer, erts, stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Changed the default behaviour of .erlang loading: + .erlang is no longer loaded from the current directory. + c:erlangrc(PathList) can be used to search and load an + .erlang file from user specified directories. + + escript, erlc, dialyzer and typer no longer load an + .erlang at all. + + + OTP-14496 Application(s): stdlib + + Added new uri_string module to stdlib for handling URIs + (RFC 3986). + + + OTP-14503 Application(s): stdlib + + Update Unicode specification to version 10.0. + + + OTP-14577 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + filelib:wildcard() now allows characters with a special + meaning to be escaped using backslashes. + + This is an incompatible change, but note that the use + of backslashes in wildcards would already work + differently on Windows and Unix. Existing calls to + filelib:wildcard() needs to be updated. On Windows, + directory separators must always be written as a slash. + + + OTP-14586 Application(s): stdlib + + The supervisor now stores its child specifications in a + map instead of a list. This causes a significant + improvement when starting many children under a + non-simple_one_for_one supervisor. + + + OTP-14624 Application(s): stdlib + Related Id(s): PR-1565 + + The base64 module is optimized. + + Note that the functions encode/1, decode/1, and + mime_decode/1 fail unless called with an argument of + the documented type. They used to accept any iodata(). + + + OTP-14675 Application(s): stdlib + Related Id(s): PR-102 + + Add function lists:search/2. + + + OTP-14747 Application(s): stdlib + + uri_string module extended with functions for handling + application/x-www-form-urlencoded query strings based + on the HTML5 specification. + + + OTP-14764 Application(s): stdlib + + Add functions calendar:rfc3339_to_system_time/1,2 and + calendar:system_time_to_rfc3339/1,2. + + + OTP-14826 Application(s): stdlib + Related Id(s): 1540, PR + + The stack traces returned by the functions of the + erl_eval module more accurately reflect where the + exception occurred. + + + OTP-14834 Application(s): stdlib + Related Id(s): 1608, PR + + Add options atime, mtime, ctime, uid, and gid to the + erl_tar:add/3,4 functions. + + + OTP-14884 Application(s): erts, stdlib + + Added ets:whereis/1 for retrieving the table identifier + of a named table. + + + OTP-14910 Application(s): stdlib + + Improved URI normalization functions in the uri_string + module. + + + OTP-14983 Application(s): stdlib + + The new functions io_lib:fwrite/3 and io_lib:format/3 + take a third argument, an option list. The only option + is chars_limit, which is used for limiting the number + of returned characters. The limit is soft, which means + that the number of returned characters exceeds the + limit with at most a smallish amount. If the limit is + set, the functions format/3 and fwrite/3 try to + distribute the number of characters evenly over the + control sequences pPswW. Furthermore, the control + sequences pPwP try to distribute the number of + characters evenly over substructures. + + A modification of the control sequences pPwW is that + even if there is no limit on the number of returned + characters, all associations of a map are printed to + the same depth. The aim is to give a more consistent + output as the order of map keys is not defined. As + before, if the depth is less than the number of + associations of a map, the selection of associations to + print is arbitrary. + + + OTP-14996 Application(s): stdlib + Related Id(s): ERL-557, PR-1703 + + Add functions ordsets:is_empty/1 and sets:is_empty/1. + + + OTP-14998 Application(s): stdlib + + Improve performance of string:uppercase/1, + string:lowercase/1 and string:casefold/1 when handling + ASCII characters. + + + OTP-15003 Application(s): compiler, stdlib + + External funs with literal values for module, name, and + arity (e.g. erlang:abs/1) are now treated as literals. + That means more efficient code that produces less + garbage on the heap. + + + OTP-15047 Application(s): stdlib + + sys:statistics(Pid,get) did not report 'out' messages + from gen_server. This is now corrected. + + + OTP-15048 Application(s): stdlib + + A sys debug function can now have the format + {Id,Fun,State} in addition to the old {Fun,State}. This + allows installing multiple instances of a debug fun. + + + OTP-15072 Application(s): stdlib + Related Id(s): 1786, OTP-15114, PR + + *** POTENTIAL INCOMPATIBILITY *** + + The lib module is removed: + + -- lib:error_message/2 is removed. + + -- lib:flush_receive/0 is removed. + + -- lib:nonl/1 is removed. + + -- lib:progname/0 is replaced by ct:get_progname/0. + + -- lib:send/2 is removed. + + -- lib:sendw/2 is removed. + + + OTP-15078 Application(s): stdlib + + Function ets:delete_all_objects/1 now yields the + scheduler thread for large tables that take significant + time to clear. This to improve real time + characteristics of other runnable processes. + + + OTP-15103 Application(s): stdlib + Related Id(s): ERL-607 + + *** POTENTIAL INCOMPATIBILITY *** + + In control sequences of the functions io:fwrite/2,3 and + io_lib:fwrite/2,3 containing p or P, a field width of + value 0 means that no line breaks are inserted. This is + in contrast to the old behaviour, where 0 used to + insert line breaks after every subterm. To insert line + breaks after every subterm, a field width of value 1 + can be used. + + + Full runtime dependencies of stdlib-3.5: compiler-5.0, crypto-3.3, + erts-10.0, kernel-6.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.1.5 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15098 Application(s): syntax_tools + Related Id(s): ERIERL-177 + + Fix a bug regarding reverting map types. + + + --- Improvements and New Features --- + + OTP-15036 Application(s): asn1, edoc, eldap, syntax_tools + + Update to use the new string api instead of the old. + + + Full runtime dependencies of syntax_tools-2.1.5: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tftp-1.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14113 Application(s): inets + + Split inets and create separate ftp and tftp apps. + + + Full runtime dependencies of tftp-1.0: kernel-6.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- tools-3.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14961 Application(s): erts, tools + + *** POTENTIAL INCOMPATIBILITY *** + + Added instrument:allocations and instrument:carriers + for retrieving information about memory utilization and + fragmentation. + + The old instrument interface has been removed, as have + the related options +Mim and +Mis. + + + Full runtime dependencies of tools-3.0: compiler-5.0, erts-9.1, + kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-1.8.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15027 Application(s): wx + + Changed implementation so wx can now be built towards + wxWidgets-3.1.1. + + + Full runtime dependencies of wx-1.8.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.17 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15039 Application(s): xmerl + + Fix typos in documentation. + + + Full runtime dependencies of xmerl-1.3.17: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + |