aboutsummaryrefslogtreecommitdiffstats
path: root/release-notes/OTP-19.0.README.txt
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2018-06-26 14:30:24 +0200
committerLoïc Hoguin <[email protected]>2018-06-26 14:30:24 +0200
commit4f4b441446afeadd251025d636902fa2cfa86542 (patch)
tree46d3a010d378351e61c9ed7df013b896e8bacf16 /release-notes/OTP-19.0.README.txt
parentd934f92715a8b8fbacbf262ea21d8c5b540d96a5 (diff)
downloadci.erlang.mk-4f4b441446afeadd251025d636902fa2cfa86542.tar.gz
ci.erlang.mk-4f4b441446afeadd251025d636902fa2cfa86542.tar.bz2
ci.erlang.mk-4f4b441446afeadd251025d636902fa2cfa86542.zip
Add release notes for OTP-18.0+
The version 18.3.4.3 is missing and seems to have had no announcement or README, I do not know why.
Diffstat (limited to 'release-notes/OTP-19.0.README.txt')
-rw-r--r--release-notes/OTP-19.0.README.txt3134
1 files changed, 3134 insertions, 0 deletions
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
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+