From d7ce2d9b68ba83e46100a97aaf56c0ca09899525 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?=
Support wide characters in the shell through wcwidth().
- Thanks to Anthony Ramine. Reported by Loïc Hoguin.
Own Id: OTP-11088
@@ -342,7 +342,7 @@Remove 'query' from the list of reserved words in docs. - Thanks to Matthias Endler and Loïc Hoguin.
+ Thanks to Matthias Endler and Loïc Hoguin.Own Id: OTP-11158
Fix typo in supervisor behaviour doc (Thanks to Ricardo - Catalinas Jiménez)
+ Catalinas Jiménez)Own Id: OTP-9924
Fixes module erlang doc style: option description (Thanks - to Ricardo Catalinas Jiménez)
+ to Ricardo Catalinas Jiménez)Own Id: OTP-9697
Fix typos in the epmd documentation (Thanks to Holger - Weiß )
+ Weiß )Own Id: OTP-9387
Fix non-existing function (erlang:disconnect/1) in - distributed reference manual (Thanks to Fabian Król)
+ distributed reference manual (Thanks to Fabian Król)Own Id: OTP-9504
The same applies to epmd's -address option.(Thanks to - Holger Weiß)
+ Holger Weiß)Own Id: OTP-9525
@@ -2951,7 +2951,7 @@Add support for querying the number of configured and online processors on SGI systems running IRIX.(Thanks to - Holger Weiß)
+ Holger Weiß)Own Id: OTP-9531
@@ -3061,7 +3061,7 @@ using a comma-separated list. If the loopback address is not in this list, it will be added implicitly, so that the daemon can be queried by an interactive epmd - process.(Thanks to Holger Weiß) + process.(Thanks to Holger Weiß)Own Id: OTP-9213
@@ -3096,7 +3096,7 @@ value over to dbg_gen_printf(). This fixes the problem that errno had been reset to zero by the time it was used (to print the corresponding error message) in the - dbg_gen_printf() function. (Thanks to Holger Weiß) + dbg_gen_printf() function. (Thanks to Holger Weiß)Own Id: OTP-9223
@@ -3482,7 +3482,7 @@ Mention that "-detached" implies "-noinput"Clarify that specifying "-noinput" is unnecessary if the - "-detached" flag is given. (thanks to Holger Weiß)
+ "-detached" flag is given. (thanks to Holger Weiß)Own Id: OTP-9086
@@ -4988,7 +4988,7 @@ failed to detect gcc C compilers with other command line names than gcc. `configure' now substitute GCC into the makefiles. If CC is a gcc C compiler, GCC will have the - value yes. (Thanks to Jean-Sébastien Pédron) + value yes. (Thanks to Jean-Sébastien Pédron)Own Id: OTP-8373
@@ -7358,7 +7358,7 @@IPv6 name resolving has now been fixed to use getaddrinfo() patch (thoroughly reworked) courtesy of Love - Hörnquist-Åstrand submitted by Fredrik Thulin. It also + Hörnquist-Ã…strand submitted by Fredrik Thulin. It also can use gethostname2() patch (also reworked) courtesy of Mikael Magnusson for debian submitted by Sergei Golovan.
--
cgit v1.2.3
From 20641fe0f2ea745873fc7557448d3a7deb1bd639 Mon Sep 17 00:00:00 2001
From: Erlang/OTP This document describes the changes made to the ERTS application. The documentation of predefined types and built-in
+ types has been corrected.
+ Own Id: OTP-11090
+ Fix changing terminal parameters in to_erl
+ Change the behaviour of to_erl to use TCSADRAIN instead
+ of TCSANOW when changing terminal parameters. This makes
+ the serial driver wait for the output queues to be empty
+ before applying the terminal parameter change. Thanks to
+ Stefan Zegenhagen.
+ Own Id: OTP-11206
+ The default value of {flush, boolean()} in erlang:halt/2
+ is documented to be 'true' if the status is an integer.
+ The implementation behaviour was reversed. The
+ Implementation is now corrected to adhere to the
+ documentation. Thanks to Jose Valim for reporting the
+ error.
+ *** POTENTIAL INCOMPATIBILITY ***
+ Own Id: OTP-11218
+ Fix serious race bug in R16B01 that could cause PID
+ mix-ups when a lot of processes were spawned and
+ terminated in a very rapid pace on an SMP emulator with
+ at least two scheduler threads.
+ Own Id: OTP-11225
+ Validating a trace pattern with the option silent no
+ longer incorrectly enables/disables the silent option of
+ the calling process.
+ Own Id: OTP-11232
+ Fixed a bug where GCC 4.8 and later use a more aggressive
+ loop optimization algorithm that broke some previously
+ working code in the efile driver. Thanks to Tomas
+ Abrahamsson for reporting this issue.
+ Own Id: OTP-11246
+ Fixed bug when printing memory allocator acul option in
+ crash dump.
+ Own Id: OTP-11264
+ Opening a new compressed file on Windows could in rare
+ (random) cases result in {error,eisdir} or other error
+ codes although it should have succeeded. This is now
+ corrected.
+ Own Id: OTP-11265
+ Fixed a race condition when closing a trace port that
+ would cause the emulator to crash.
+ Own Id: OTP-11290
+ There is a new somewhat experimental socket option
+ 'netns' that can set the network namespace for a socket
+ on Linux:es where it is supported. See the documentation.
+ Own Id: OTP-11157
+ New allocator strategy
+ Own Id: OTP-11174
+ Introduced functionality for inspection of system and
+ build configuration.
+ Own Id: OTP-11196
+ Fix matching of floating point middle-endian machines.
+ Thanks to Johannes Weissl.
+ Own Id: OTP-11201
+ Fix compile error on ARM and GCC versions greater than
+ 4.1.0. Thanks to Johannes Weissl.
+ Own Id: OTP-11214
+ run_erl: Redirect standard streams to /dev/null. Thanks
+ to Johannes Weissl.
+ Own Id: OTP-11215
+ Misc. corrections in documentation for erl_driver. Thanks
+ to Giacomo Olgeni.
+ Own Id: OTP-11227
+ Fix documentation regarding binary_part.
+ Own Id: OTP-11239
+ Make edlin understand a few important control keys.
+ Thanks to Stefan Zegenhagen.
+ Own Id: OTP-11251
+ Export type zlib:zstream/0. Thanks to Loic Hoguin.
+ Own Id: OTP-11278
+ Add erl option to set schedulers by percentages.
+ For applications where measurements show enhanced
+ performance from the use of a non-default number of
+ emulator scheduler threads, having to accurately set the
+ right number of scheduler threads across multiple hosts
+ each with different numbers of logical processors is
+ difficult because the erl +S option requires absolute
+ numbers of scheduler threads and scheduler threads online
+ to be specified.
+ To address this issue, add a +SP option to erl, similar
+ to the existing +S option but allowing the number of
+ scheduler threads and scheduler threads online to be set
+ as percentages of logical processors configured and
+ logical processors available, respectively. For example,
+ "+SP 50:25" sets the number of scheduler threads to 50%
+ of the logical processors configured, and the number of
+ scheduler threads online to 25% of the logical processors
+ available. The +SP option also interacts with any
+ settings specified with the +S option, such that the
+ combination of options "+S 4:4 +SP 50:50" (in either
+ order) results in 2 scheduler threads and 2 scheduler
+ threads online.
+ Thanks to Steve Vinoski
+ Own Id: OTP-11282
+ Extend erl_driver interface with lock names
+ Lock and thread names are already a feature in the driver
+ interface. This extension will let developers read these
+ names which eases debugging.
+ Own Id: OTP-11303
+ Fix incorrect values returned by integer_to_binary/2.
+ Thanks to Juan Jose Comellas.
+ Own Id: OTP-11311
+ Fix system_flag scheduling_statistics - disable . Thanks
+ to Steve Vinoski.
+ Own Id: OTP-11317 The documentation of predefined types has been
+ corrected Thanks to Kostis Sagonas.
+ Own Id: OTP-11321 This document describes the changes made to the ERTS application.
+ Memory allocators will be able to create
+ Windows systems will create carriers using
+
+ Own Id: OTP-11318 This document describes the changes made to the ERTS application.
+ When normalizing paths, erl_prim_loader would always
+ convert backslash to forward slash. This is correct on
+ Windows, but not on other operating systems.
+ erl_prim_loader now checks which OS is running before
+ performing this conversion.
+ Own Id: OTP-11170
+ Fixed syslog defines and defined LOG_ERR for systems
+ without syslog.h. Thanks to Matt Lewandowsky.
+ Own Id: OTP-11349
+ Check all pattern arguments passed to binary:matches/2.
+ Thanks to Mike Sassak.
+ Own Id: OTP-11350
+ Fix two small silent rules omissions. Thanks to Anthony
+ Ramine.
+ Own Id: OTP-11351
+ Teach configure to detect if posix_memalign cannot align
+ to more than the system page size.
+ For cross-compiled systems a new environment variable
+ called erl_xcomp_posix_memalign has been introduced to
+ indicate whether posix_memalign should be used.
+ Own Id: OTP-11371
+ Fix bsr bug occurring when shifting a huge number a huge
+ number of bits to the right. Thanks to Lars Hesel
+ Christensen.
+ Own Id: OTP-11381
+ Fix memory leak for distributed monitors
+ Own Id: OTP-11410
+ Fix various typos in erts, kernel and ssh. Thanks to
+ Martin Hässler.
+ Own Id: OTP-11414
+ Crashdumps initiated by out-of-memory on process spawn
+ could cause the beam to segfault during crashdump writing
+ due to invalid pointers.
+ The pointers are invalid since the process creation never
+ finished. This fix removes these processes from the
+ printouts. Reported by Richard Carlsson.
+ Own Id: OTP-11420
+ Crash dumps from 64-bit Erlang machines would have all
+ memory addresses truncated to 32 bits, which could cause
+ trouble inspecting processes message queues and stacks in
+ the crashdump viewer.
+ Own Id: OTP-11450
+ Threads other than schedulers threads could make thread
+ unsafe accesses when support for migration of memory
+ carriers had been enabled, i.e., when the
+ This bug was introduced in erts-5.10.2 when the support
+ for migration of memory carriers was introduced.
+ Own Id: OTP-11456 Aux Id: OTP-10279
+ Fix bug in
+ Own Id: OTP-11479
+ Under rare circumstances a process calling
+ Own Id: OTP-11491
+ Fix bug that could cause a 32-bit emulator to always
+ crash at start (since R16B01) depending on the alignment
+ of static data in the beam executable.
+ Own Id: OTP-11496
+ Fix benign bugs regarding bitstring compare. Only a
+ nuisance for debug and valgrind VM.
+ Own Id: OTP-11501
+ Silence warnings (Thanks to Anthony Ramine)
+ Own Id: OTP-11517
+ The default wordsize of the emulator (beam) is now
+ determined by compiler default on Mac OSX (Darwin). This
+ was previously forced to 32bits by the configure script
+ unless otherwise specified.
+ Own Id: OTP-11521
+ A new memory allocation feature called "super carrier"
+ has been introduced. The super carrier feature can be
+ used in different ways. It can for example be used for
+ pre-allocation of all memory that the runtime system
+ should be able to use.
+ By default the super carrier is disabled. It is enabled
+ by passing the
+ Since it is disabled by default there should be no impact
+ on system characteristics if not used.
+ This change has been marked as a potential
+ incompatibility since the returned list when calling
+
+ *** POTENTIAL INCOMPATIBILITY ***
+ Own Id: OTP-11149
+ Added erlang:system_info(ets_limit) to provide a way to
+ retrieve the runtime's maximum number of ETS tables.
+ Thanks to Steve Vinoski
+ Own Id: OTP-11362
+ Add new BIF os:unsetenv/1 which deletes an environment
+ variable. Thanks to Martin Hässler.
+ Own Id: OTP-11446 Introduced a new guarantee regarding exit signals
+ from ports: If the process calling one of the
+ synchronous port BIFs listed below is linked to the port
+ identified by the first argument, and the port exits
+ before sending the result of the port operation, the exit
+ signal issued due to this link will be received by the
+ processes before the BIF returns, or fail with an
+ exception due to the port not being open. The
+ synchronous port BIFs are: Note that some ports under certain
+ circumstances unlink themselves from the calling process
+ before exiting, i.e. even though the process linked
+ itself to the port there might be no link triggering an
+ exit signal. Characteristics impact: The return
+ or exception from the synchronous port BIF will be
+ delayed if the port simultaneously exit due to some issue
+ unrelated to the outstanding synchronous port BIF call.
+ In all other cases characteristics are unchanged.
+ Own Id: OTP-11489
+
+
+
+
+
+
+
+
+
+
The synchronous port BIFs are:
This document describes the changes made to the ERTS application.
++ The option dupnames did not work as intended in re. When + looking for names with {capture, [Name, ...]}, re:run + returned a random instance of the match for that name, + instead of the leftmost matching instance, which was what + the documentation stated. This is now corrected to adhere + to the documentation. The option {capture,all_names} + along with a re:inspect/2 function is also added to + further help in using named subpatterns.
++ Own Id: OTP-11205
++ Allow loading of NIF library with unicode path name
++ Own Id: OTP-11408
++ Allow loading of driver with unicode path name
++ Own Id: OTP-11549
++ Fixed a bug where starting Erlang without having an open + stdin on fd 0 would sometimes deadlock the emulator when + terminating.
++ Own Id: OTP-11558
++ The option '-names' in epmd now works on Windows (Thanks + to Johannes Weißl)
++ Own Id: OTP-11565
++ Correction of the examples in escript documentation. + (Thanks to Pierre Fenoll).
++ Own Id: OTP-11577
++ Fix bs_get_integer instruction
++ The instruction bs_get_integer could unnecessarily + trigger a garbage collection in failure cases which is + unwanted or outright dangerous.
++ Ex:
++ <<X:Sz,_/bits>> = <<"some + binary">>
++ Previously, if Sz induced X to a bignum it would reserved + memory size this on the heap via a garbage collection + before checking if the size could actually match.
++ It will now check the binary size before triggering a + collection.
++ Own Id: OTP-11581
+
+ Remove heap space overestimation in
+ Own Id: OTP-11585
++ Add support for detecting the separate tinfo library from + ncurses (Thanks to Dirkjan Ochtman)
++ Own Id: OTP-11590
++ Deprecation warning for system_flag(cpu_topology) has + been extended for removal in OTP 18 (Thanks to Steve + Vinoski for the update)
++ Own Id: OTP-11602
++ Documentation improvement regarding some awkward wording + around the +spp flag. (Thanks to Brian L. Troutwine )
++ Own Id: OTP-11607
++ Fixed bug where sendfile would return the wrong error + code for a remotely closed socket if the socket was in + passive mode. (Thanks to Vincent Siliakus for reporting + the bug.)
++ Own Id: OTP-11614
++ Increase garbage collection tenure rate
+The garbage collector tries to maintain the previous + heap block size during a minor gc, i.e. 'need' is not + utilized in determining the size of the new heap, instead + it relies on tenure and garbage to be sufficiently + large.
+In instances during intense growing with exclusively + live data on the heap coupled with delayed tenure, + fullsweeps would be triggered directly after a minor gc + to make room for 'need' since the new heap would be + full.
+To remedy this, the tenure of terms on the minor heap + will always happen (if it is below the high watermark) + instead of every other minor gc.
+Characteristics Impact: Reduced CPU-time spent in + garbage collection but may infer delays in collecting + garbage from the heap. Tweak 'fullsweep_after' options to + increase gc pressure if needed.
++ Own Id: OTP-11617
++ Fix bug when comparing integers with floats larger than + 2^992. The bug could potentially cause memory corruption + on 32-bit emulators.
++ Own Id: OTP-11618
++ Cross-compilation fixes for TileraMDE-3.0.1.125620
++ Own Id: OTP-11635
++ sendfile no longer uses async threads by default
++ This has been done because a slow client attack is + possible if the async thread pool is used. The scenario + is:
++ Client does a request for a file and then slowly receives + the file one byte at a time. This will eventually fill + the async thread pool with blocking sendfile operations + and thus starving the vm of all file operations.
++ If you still want to use the async threads pool for + sendfile an option to enable it has been introduced.
++ Thanks to Christopher Faulet for identifying this + vulnerability.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11639
+
+ Do proper rollback of calls to
+
+ Own Id: OTP-11722
+
+ Changed the default configuration when configuring with
+
+ Previously floating point exceptions got enabled by
+ default on Linux when HiPE was enabled when configuring
+ with
+ For more information see
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11723
++ A comment in erl_db_tree.c no longer differ from the + code. (Thanks to Cobus Carstens)
++ Own Id: OTP-11793
++ Fix epmd debug functionality for VxWorks (Thanks to Jay + True)
++ Own Id: OTP-11808
++ Use closefrom/2 when available in child_setup (Thanks to + Rick Reed and Anthony Ramine)
++ Own Id: OTP-11809
++ Fix dtrace/systemtap bug where the probe arguments would + be concatenated due to faulty length calculation.
++ Thanks to Michal Ptaszek and Scott Lystig Fritchie
++ Own Id: OTP-11816
+
+ It is now better documented that the
+ Own Id: OTP-11818
++ Options to set match_limit and match_limit_recursion are + added to re:run. The option report_errors is also added + to get more information when re:run fails due to limits + or compilation errors.
++ Own Id: OTP-10285
+ Dialyzer's
+ Own Id: OTP-10908
+
+ A common case is to wrap an argument to
+
+ Impact: May cause incompatibility since a single binary
+ is no longer copied. Use
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11082
++ Make erlang:open_port/2 spawn and spawn_executable handle + unicode.
++ Own Id: OTP-11105
++ Handle unicode (widestring) in erl, erlc, heart, etc on + windows.
++ Own Id: OTP-11135
++ The version of the PCRE library Used by Erlang's re + module is raised to 8.33 from 7.6. This means, among + other things, better Unicode and Unicode Character + Properties support. New options connected to PCRE 8.33 + are also added to the re module (ucd, notempty_atstart, + no_start_optimize). PCRE has extended the regular + expression syntax between 7.6 and 8.33, why this imposes + a potential incompatibility. Only very complicated + regular expressions may be affected, but if you know you + are using obscure features, please test run your regular + expressions and verify that their behavior has not + changed.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11204
+Filenames containing UTF-8 encoded characters can now + be handled by erlc.
+If you have set the
+ Own Id: OTP-11248
++ By giving --enable-static-{nifs,drivers} to configure it + is now possible to statically linking of nifs and drivers + to the main Erlang VM binary. At the moment only the asn1 + and crypto nifs of the Erlang/OTP nifs and drivers have + been prepared to be statically linked. For more details + see the Installation Guide in the System documentation.
++ Own Id: OTP-11258
+
+ Erlang/OTP has been ported to the realtime operating
+ system OSE. The port supports both smp and non-smp
+ emulator. For details around the port and how to started
+ see the User's Guide in the
+ Note that not all parts of Erlang/OTP has been ported.
++ Notable things that work are: non-smp and smp emulators, + OSE signal interaction, crypto, asn1, run_erl/to_erl, + tcp, epmd, distribution and most if not all non-os + specific functionality of Erlang.
++ Notable things that does not work are: udp/sctp, os_mon, + erl_interface, binding of schedulers.
++ Own Id: OTP-11334
++ Add the {active,N} socket option for TCP, UDP, and SCTP, + where N is an integer in the range -32768..32767, to + allow a caller to specify the number of data messages to + be delivered to the controlling process. Once the + socket's delivered message count either reaches 0 or is + explicitly set to 0 with inet:setopts/2 or by including + {active,0} as an option when the socket is created, the + socket transitions to passive ({active, false}) mode and + the socket's controlling process receives a message to + inform it of the transition. TCP sockets receive + {tcp_passive,Socket}, UDP sockets receive + {udp_passive,Socket} and SCTP sockets receive + {sctp_passive,Socket}.
++ The socket's delivered message counter defaults to 0, but + it can be set using {active,N} via any gen_tcp, gen_udp, + or gen_sctp function that takes socket options as + arguments, or via inet:setopts/2. New N values are added + to the socket's current counter value, and negative + numbers can be used to reduce the counter value. + Specifying a number that would cause the socket's counter + value to go above 32767 causes an einval error. If a + negative number is specified such that the counter value + would become negative, the socket's counter value is set + to 0 and the socket transitions to passive mode. If the + counter value is already 0 and inet:setopts(Socket, + [{active,0}]) is specified, the counter value remains at + 0 but the appropriate passive mode transition message is + generated for the socket.
++ Thanks to Steve Vinoski
++ Own Id: OTP-11368
+
+ A new optional scheduler utilization balancing mechanism
+ has been introduced. For more information see the
+
+ Characteristics impact: None, when not enabled. When + enabled, changed timing in the system, normally a small + overhead due to measuring of utilization and calculating + balancing information. On some systems, such as old + Windows systems, the overhead can be quite substantial. + This time measurement overhead highly depend on the + underlying primitives provided by the OS.
++ Own Id: OTP-11385
+
+ A call to either the
+ The
+
+ Characteristics impact: A call to the
+
+ Own Id: OTP-11388 Aux Id: OTP-11535, OTP-11648
++ Cleanup 'Buckets' and 'Time left' fields in crashdump to + ease parsing.
++ Own Id: OTP-11419
++ Add sync option to file:open/2.
++ The sync option adds the POSIX O_SYNC flag to the open + system call on platforms that support the flag or its + equivalent, e.g., FILE_FLAG_WRITE_THROUGH on Windows. For + platforms that don't support it, file:open/2 returns + {error, enotsup} if the sync option is passed in. Thank + to Steve Vinoski and Joseph Blomstedt
++ Own Id: OTP-11498
++ erlang:binary_to_term will now cost an appropriate amount + of reductions and will interrupt (yield) for reschedule + if the term is big. This avoids too long schedules when + binary_to_term is used. (Thanks to Svante Karlsson for + the original patch)
++ Impact: Programs running binary_to_term on large binaries + will run more smoothly, but rescheduling will impact the + single process performance of the BIF. Single threaded + benchmarks might show degraded performance of the BIF, + while general system behaviour will be improved.
++ Own Id: OTP-11535 Aux Id: OTP-11388
++ Added high resolution icon for windows. (Thanks to Daniel + Goertz for the inspiration.)
++ Own Id: OTP-11560
+
+ Migration of memory carriers has been enabled by default
+ on all ERTS internal memory allocators based on the
+
+ By passing
+ Characteristics impact: Improved memory characteristics + with a smaller memory footprint at the expense of a quite + small performance cost.
++ Own Id: OTP-11604 Aux Id: OTP-10279
+A clarification has been added to the documentation of
+
+ Own Id: OTP-11611
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11612
++ EEP43: New data type - Maps
+
+ With Maps you may for instance:
+ For information on how to use Maps please see the
+
+ The current implementation is without the following
+ features:
+ Note that Maps is experimental during OTP 17.0.
++ Own Id: OTP-11616
+
+ The previously deprecated driver API function
+
+ Thanks to Steve Vinoski.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11628
+
+ Experimental "dirty scheduler" functionality has been
+ introduced. In order to try the functionality out, you
+ need to pass the command line argument
+
+ Dirty schedulers can currently only be used by NIFs on a
+ system with SMP support. More information can be found in
+ the
+ Note that the functionality is experimental, and + not supported. This functionality will + be subject to backward incompatible changes. You should + not enable the dirty scheduler functionality on + production systems. It is only provided for testing.
++ Thanks to Steve Vinoski.
++ Own Id: OTP-11629
+
+ Improve reduction cost and yielding of
+
+ Impact: Improves system responsiveness when
+
+ Own Id: OTP-11648 Aux Id: OTP-11388
+
+ By default, the system's version of zlib will be used,
+ provided its version is 1.2.4 or higher; otherwise the
+ built-in zlib will be used. The built-in version of zlib
+ has been bumped to 1.2.8. (Use the
+
+ Own Id: OTP-11669
++ The default float encoding in binary_to_term and + external_size has been changed to use minor_mode 1 + instead of 0.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11738
+
+ Introduced the
+ Own Id: OTP-11742
++ Halfword emulator is marked as deprecated. It still works + as before but is planned to be removed in a future major + release.
++ Own Id: OTP-11777
++ The external format for Maps has changed in a way that is + not compatible with the format used in OTP 17.0-rc1 and + OTP 17.0-rc2.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11782
++ Fixed faulty make dependency that would make some make + versions fail while building gen_git_version.mk.
++ Own Id: OTP-11784
+
+ Introduced functionality for allowing old drivers and NIF
+ libraries to be loaded during a transition period. For
+ more information see
+ Own Id: OTP-11799
+
+ Support file paths longer than 259 characters on Windows.
+ Long absolute paths are automatically converted to UNC
+ format with a
+ Own Id: OTP-11813
++ Document that escript:create/2 also accepts a 3-elements + tuple containing files and zip:create/3 options to build + a zip file.
++ Thanks to Pierre Fenoll
++ Own Id: OTP-11827
++ Add systemd socket activation for epmd.
++ Thanks to Matwey V. Kornilov
++ Own Id: OTP-11829
+This document describes the changes made to the ERTS application.
+
+ Fix broken system monitoring of
+ Own Id: OTP-11852
+
+ Fixed type spec of
+ Own Id: OTP-11859 Aux Id: OTP-11615
+
- For information on how to use Maps please see the
-
The current implementation is without the following
features:
The
@@ -5433,7 +5433,7 @@
platforms than before. If
--
cgit v1.2.3
From 77da984614ae462912a1896ba1bb73c798ffd4f8 Mon Sep 17 00:00:00 2001
From: Erlang/OTP This document describes the changes made to the ERTS application. The documentation for
+ Own Id: OTP-11849
+ Fix broken system monitoring of
+ Own Id: OTP-11852
+ The emulator without SMP support crashed when passing a
+ message to a process without enough heap space for the
+ message. This bug was introduced in
+ Own Id: OTP-11887 Aux Id: OTP-11388
+ Fix race between ETS table deletion and unfixation that
+ could cause VM crash. The race could happen between a
+ terminating process that does not own the table but has a
+ fixation on it and another process that deletes the table
+ (maybe the owner terminating) at the same time. Bug
+ existed since R15B02.
+ Own Id: OTP-11892 The string following the That bug would cause the build of Erlang/OTP to fail
+ when building in a directory whose pathname contained
+ non-US ASCII characters encoded in UTF-8. (Thanks to Eric
+ Pailleau for reporting this bug.)
+ Own Id: OTP-11916
+ Fix erts_debug:size/1 to handle Map sizes
+ Own Id: OTP-11923
+ Removed
+ Own Id: OTP-11942
+ Fixed compilation using mingw-w64 on Windows.
+ Thanks to Jani Hakala.
+ Own Id: OTP-11945
+ The git sha is no longer printed in the shell start
+ header when erlang is built from a tagged git release.
+ Own Id: OTP-11961
+ Fixed a bug where
+ Own Id: OTP-11968 The following native functions now bump an appropriate
+ amount of reductions and yield when out of
+ reductions: Characteristics impact:
+ Own Id: OTP-11888
+ The systemd features of epmd have been removed from epmd
+ by default. To enable them you have to build erlang with
+ the configure option --enable-systemd.
+ Own Id: OTP-11921
+ Removed Erlang wrapper code used when calling
+
+ Own Id: OTP-11931
+ Add erlang:system_info(tolerant_timeofday), an API to
+ check whether compensation for sudden changes of system
+ time is enabled or not.
+ Own Id: OTP-11970 This document describes the changes made to the ERTS application.
+ Fixed ETHR_FORCE_INLINE which caused the build to break
+ on some platforms without adequate thread support
+ (VxWorks).
+ Own Id: OTP-12010 This document describes the changes made to the ERTS application.
+ OTP-11850 fixed filelib:wildcard/1 to work with broken
+ symlinks. This correction, however, introduced problems
+ since symlinks were no longer followed for functions like
+ filelib:ensure_dir/1, filelib:is_dir/1,
+ filelib:file_size/1, etc. This is now corrected.
+ Own Id: OTP-12054 Aux Id: seq12660 This document describes the changes made to the ERTS application.
+ When using gen_tcp:connect and the
+ Own Id: OTP-12061
Own Id: OTP-11829
+
+
+
+
+
+
+
+
+
+
+
+
This document describes the changes made to the ERTS application.
++ General documentation updates.
++ Own Id: OTP-12052
+A bug in the VM code implementing sending of signals
+ to ports could cause the receiving port queue to remain
+ in a busy state forever. When this state had been
+ reached, processes sending command signals to the port
+ either got suspended forever, or, if the
In order for this bug to be triggered on a port, one
+ had to at least once utilize the
Thanks Vasily Demidenok for reporting the issue, and + Sergey Kudryashov for providing a testcase.
++ Own Id: OTP-12082 Aux Id: OTP-10336
++ Fix size overflow bug at memory allocation. A memory + allocation call, with an insane size close to the entire + address space, could return successfully as if it had + allocated just a few bytes. (Thanks to Don A. Bailey for + reporting)
++ Own Id: OTP-12091
++ Fix various issues where negating a signed integer would + trigger undefined behaviour. This fixes issues in the + enif_make_int64 interface and some edge cases inside the + erlang runtime system.
++ Own Id: OTP-12097
+
+ The documentation erroneously listed the
+ Own Id: OTP-12102 Aux Id: OTP-10994
+
+ Profiling messages could be delivered out of order when
+ profiling on
+ Own Id: OTP-12105 Aux Id: OTP-10336
+
+ Various logging fixes, including: Add run queue index to
+ the process dump in crash dumps.
Add thread index to
+ enomem slogan when crashing.
Remove error logger
+ message for sending messages to old instances of the same
+ node.
+ Own Id: OTP-12115
++ Fix compiler warnings reported by LLVM
++ Own Id: OTP-12138
+
+ Correct conversion of
+ Own Id: OTP-12140
+
+ Fix bug in
+ Own Id: OTP-12141
++ Real_path method used while prim loading archive files + was not taking into account the fact that windows + directory symlinks can be across different drives.
++ Own Id: OTP-12155
++ Add log2 histogram to lcnt for lock wait time
++ Own Id: OTP-12059
+
+ Introduced
+ The
+ The
+ See the
+ Thanks to Steve Vinoski.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12128
+This document describes the changes made to the ERTS application.
++ Fix bug when an migrated empty memory carrier is reused + just before it should be destroyed by the thread that + created it.
++ Own Id: OTP-12249
++ Repair run_erl terminal window size adjustment sent from + to_erl. This was broken in OTP 17.0 which could lead to + strange cursor behaviour in the to_erl shell.
++ Own Id: OTP-12275 Aux Id: seq12739
+This document describes the changes made to the ERTS application.
++ Fix HiPE debug lock checking on OS X 64bit
++ Position-independent code is mandatory on OS X. We use + r11 as an intermediate register to fill + BIF_P->hipe.bif_callee. This fixes the following error + when doing `make debug FLAVOR=smp`:
++ clang -cc1as: fatal error: error in backend: 32-bit + absolute addressing is not supported in 64-bit mode
++ Own Id: OTP-12188
+
+ Fix race bug that could cause VM crash in
+
+ Own Id: OTP-12208
++ Correct make variable SSL_DED_LD_RUNTIME_LIBRARY_PATH + when erl_xcomp_sysroot ends with a slash.
++ Own Id: OTP-12216 Aux Id: seq12700
++ Fix two cases of unreachable code caused by false use of + assigment operators.
++ Own Id: OTP-12222
++ Fix bug when hipe compiled code makes tail call to a BIF + that disables GC while trapping (sush as binary_to_list, + list_to_binary, binary_to_term, term_to_binary).
++ Own Id: OTP-12231
++ Fix bug when a migrated empty memory carrier is reused + just before it should be destroyed by the thread that + created it.
++ Own Id: OTP-12249
++ Prevents compile-time errors in NIFs, when the compiler + is instructed to treat missing field initializers as + errors, by adding an initializer for the new options + field which was added to ErlNifEntry for 17.3.
++ Own Id: OTP-12266
++ Fixed CPU topology detection on FreeBSD systems where + Erlang/OTP is compiled by new C compilers (including, but + possibly not limited to, gcc 4.9 and clang).
++ Own Id: OTP-12267
++ Use C99 function isfinite() instead of finite() when + available on non GCC compilers.
++ Own Id: OTP-12268
++ Fix bug on windows where an incorrect number of links + could be returned when doing file:read_file_info on a + directory.
++ Own Id: OTP-12269
++ Fix rare bug when purging module on VM started with + +Meamin.
++ Own Id: OTP-12273
++ Repair run_erl terminal window size adjustment sent from + to_erl. This was broken in OTP 17.0 which could lead to + strange cursor behaviour in the to_erl shell.
++ Own Id: OTP-12275 Aux Id: seq12739
++ Fixed bug on windows causing gen_tcp/udp to return an + error when given an fd to work with.
++ Own Id: OTP-12289
++ Fix various internal erts issues where negating a signed + integer in C would trigger undefined behavior. This fixes + issues when dividing with bignums and list_to_integer.
++ Own Id: OTP-12290
++ When flushing output to stdout on windows, the emulator + could sometimes hang indefinitely waiting for the flush + to complete. This has been fixed.
++ Own Id: OTP-12291
++ Fix so that non-smp emulators with dirty scheduler + support shows the correct number of dirty schedulers when + calling erlang:system_info(system_version).
++ Own Id: OTP-12295
+
+ Add
+ Own Id: OTP-12298
++ Fix bug that could cause the return value from dirty NIF + with zero arity to be treated as garbage, leading to VM + crash.
++ Own Id: OTP-12300
++ Improve allocation carrier migration search logic. This + will reduce the risk of failed migrations that could lead + to excess memory consumption. It will also improve smp + performance due to reduced memory contention on the + migration pool.
++ Own Id: OTP-12323
+Introduced support for eager check I/O.
+By default eager check I/O will be disabled, but this + will most likely be changed in OTP 18. When eager check + I/O is enabled, schedulers will more frequently check for + I/O work. Outstanding I/O operations will however not be + prioritized to the same extent as when eager check I/O is + disabled.
+Eager check I/O can be enabled using the
Characteristics impact when enabled:
+ Own Id: OTP-12117
++ Fix erts .app-file
++ Own Id: OTP-12189
++ Add configure option --with-ssl-incl=PATH to support + OpenSSL installations with headers and libraries at + different places.
++ Own Id: OTP-12215 Aux Id: seq12700
++ Optimization of atomic memory operations with release + barrier semantics on 32-bit PowerPC when using the + implementation included in OTP.
++ Own Id: OTP-12250
++ Minor adjustment of scheduler activation code making sure + that an activation of a scheduler is not prevented by its + run-queue being non-empty. (Thanks to Songlu Cai)
++ Own Id: OTP-12287
+
+ Improved support for atomic memory operations provided by
+ the
+ The
+ Own Id: OTP-12302
++ Add configure option --with-ssl-rpath to control which + runtime library path to use for dynamic linkage toward + OpenSSL.
++ Own Id: OTP-12316 Aux Id: seq12753
++ Added systemd notify support to epmd
++ Own Id: OTP-12321
+This document describes the changes made to the ERTS application.
++ Fix getifaddrs realloc pointer error
++ When a buffer was exhausted and subsequently reallocated, + we could get an unsafe pointer pointing to faulty memory.
++ For this to occur we would need to have a large number of + interfaces and a reallocation of memory to a lower + addresses.
++ The symptom would be garbage returned from + erlang:port_control(Port, 25, []) + (prim_inet:getifaddrs(Port) resulting in a badarg) or a + segmentation fault.
++ Own Id: OTP-12445
++ Don't close all file descriptors twice in child_setup
++ The commit c2b4eab25c907f453a394d382c04cd04e6c06b49 + introduced an error in which child_setup erroneously + tried to close all file descriptors twice.
++ Use closefrom() if available when closing all file + descriptors.
++ The function closefrom() was only used in the vfork() + case before but is now also used in the fork() case if + available.
++ Own Id: OTP-12446
++ During a crashdump all file descriptors are closed to + ensure the closing of the epmd port and to reserve a file + descriptor for the crashdump file.
++ If a driver (third party library) cannot handle closing + of sockets this could result in a segmentation fault in + which case a crashdump would not be produced. This is now + fixed by only closing inets sockets via an emergency + close callback to the driver and thus closing the epmd + socket.
++ Own Id: OTP-12447
+This document describes the changes made to the ERTS application.
+
+ Fix missing quotation in the
+ Own Id: OTP-12388
++ Fix erroneous printout of monitors in crashdump file.
++ Own Id: OTP-12537
+
+ The runtime system without SMP support could crash in the
+ BIF
+ Own Id: OTP-12544 Aux Id: Seq12777
++ Avoid corrupt oversized integer to be created from binary + matching. Instead throw system_limit exception which is + the correct behavior. A peculiar symptom of this bug was + that bitwise operations (band, bor, bxor) on such + oversized integers could return the empty list []. + Credit: Mikael Pettersson, Nico Kruber
++ Own Id: OTP-12556
+
+ A race condition when calling
+ Own Id: OTP-12587
++ Fix comparison of exact terms. An overflow that could + cause faulty comparisons has been fixed. Comparison of + exact terms is exclusively used within Maps.
++ Own Id: OTP-12623
+
+ Fix bug in
+ Own Id: OTP-12624
++ Introduced a runtime system internal 64-bit API for + atomic memory operations.
++ Own Id: OTP-12351
++ Add command line argument option for the initial size of + process dictionaries.
++ Use '+hpds <size>' to set initial process + dictionary size for spawned processes.
++ Own Id: OTP-12535 Aux Id: seq12809
++ Fix documentation on $char for Unicode
++ Own Id: OTP-12545
+This document describes the changes made to the ERTS application.
++ The VTS mode in Common Test has been modified to use a + private version of the Webtool application (ct_webtool).
++ Own Id: OTP-12704 Aux Id: OTP-10922
+This document describes the changes made to the ERTS application.
++ Fix issuing with spaces and quoting in the arguments when + using erlang:open_port spawn_executable on windows. The + behavior now mimics how unix works. This change implies a + backwards incompatibility for how spawn_executable works + on windows.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11905
++ Fix global call trace when hipe compiled code call beam + compiled functions. Tracing of beam functions should now + alway work regardless who the caller is.
++ Own Id: OTP-11939
+
+ Correct cache alignment for ETS
+ Own Id: OTP-11974
++ All possibly blocking operations in the fd/spawn and + terminal driver have been converted to non-blocking + operations. Before this fix it was possible for the VM to + be blocked for a long time if the entity consuming + stdout/stderr did not consume it fast enough.
++ Own Id: OTP-12239
+
+ Add missing overhead for offheap binaries created from
+ external format. This fix can improve the garbage
+ collection of large binaries originating from
+
+ Own Id: OTP-12554
++ Ensure hashing of zero is consistent
+Erlang treats positive and negative zero as + equal:
+
+
However, Erlangs hash functions: hash, phash and + phash2 did not reflect this behaviour. The hash values + produced by the different hash functions would not be + identical for positive and negative zero.
This + change ensures that hash value of positive zero is always + produced regardless of the signedness of the zero float, + i.e.,
+
+
+ Own Id: OTP-12641
++ Ensure NIF term creation disallows illegal floating point + values and too long atoms. Such values will cause a NIF + to throw badarg exception when it returns.
++ Own Id: OTP-12655
++ Fixed building of Map results from match_specs
++ A faulty "box-value" entered into the heap which could + cause a segmentation fault in the garbage collector if it + was written on a heap fragment.
++ Own Id: OTP-12656
++ Fix hipe bug when matching a "writable" binary. The bug + has been seen to sometimes cause a failed binary matching + of a correct utf8 character, but other symptoms are also + possible.
++ Own Id: OTP-12667
++ Keep dirty schedulers from waking other schedulers.
++ Own Id: OTP-12685
++ Disable floating point exceptions if the VM is compiled + by clang/llvm. This is a known long-standing problem in + clang/llvm.
++ Own Id: OTP-12717
+
+ Fix bug in
+ Own Id: OTP-12720
++ Fix the broken Android support in erl_child_setup.c
++ Own Id: OTP-12751
+
+ Faulty statistics reported by the
+ Own Id: OTP-12766
++ Fix two erts_snprintf() calls to correct sizes.
++ - run_erl.c (ose): Use the size of the signal type, not + its pointer. - erl_node_tables.c: Use the size of the + _BUFFER in erts_snprintf() to make sure we can use the + full space.
++ Own Id: OTP-12771
++ Delayed memory allocations could be delayed an + unnecessarily long time.
++ Own Id: OTP-12812
++ Make sure that timeouts on a pool of acceptors are + released in the correct order.
++ Own Id: OTP-12817
++ Fix segmentation fault in module_info for deleted modules
++ Own Id: OTP-12820
+Fix garbage collection of literals in code purge
+During code purging and check_process_code, the + checking of the binary reference embedded in the match + binary state was omitted for the tracing tests. This + would cause the binary match state to reference + deallocated memory.
++ Own Id: OTP-12821
++ A bug has been corrected for gen_tcp:close so when + {linger,{true,0}} is in effect it does not wait for data + in the driver queue to transfer out before closing the + port. Bug fix by Rory Byrne.
++ Own Id: OTP-12840
+
+ The documentation of the driver callback
+ Own Id: OTP-12855
+
+ Add
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-11940
+
+ Debug function
+ Own Id: OTP-11941
+The time functionality of Erlang has been extended.
+ This both includes a
Besides the API changes and time warp modes a lot of + scalability and performance improvements regarding time + management has been made internally in the runtime + system. Examples of such improvements are scheduler + specific timer wheels, scheduler specific BIF timer + management, parallel retrieval of monotonic time and + system time on systems with primitives that are not + buggy.
++ Own Id: OTP-11997
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12099
+
+ New BIF:
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12151 Aux Id: seq12521
++ Make distributed send of large messages yield to improve + real-time characteristics.
++ Own Id: OTP-12232
++ Use high accuracy poll timeouts
++ Where available, use poll/select API's that can handle + time resolutions less than 1ms. In the cases where such + API's are not available the timeout is rounded up to the + nearest ms.
++ Own Id: OTP-12236
++ The internal group to user_drv protocol has been changed + to be synchronous in order to guarantee that output sent + to a process implementing the user_drv protocol is + printed before replying. This protocol is used by the + standard_output device and the ssh application when + acting as a client.
++ This change changes the previous unlimited buffer when + printing to standard_io and other devices that end up in + user_drv to 1KB.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12240
+The previously introduced "eager check I/O" feature is + now enabled by default.
+Eager check I/O can be disabled using the
Characteristics impact compared to previous + default:
+ Own Id: OTP-12254 Aux Id: OTP-12117
++ Properly support maps in match_specs
++ Own Id: OTP-12270
++ The notice that a crashdump has been written has been + moved to be printed before the crashdump is generated + instead of afterwords. The wording of the notice has also + been changed.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12292
+
+ New function
+ Own Id: OTP-12309
++ Tracing with cpu_timestamp option has been enabled on + Linux.
++ Own Id: OTP-12366
++ ets:info/1,2 now contains information about whether + write_concurrency or read_concurrency is enabled.
++ Own Id: OTP-12376
+
+ Improved usage of
+ The largest improvement will be seen when compiling with
+ a
+ For more information see the "
+ Own Id: OTP-12383
+
+ Introduce
+ Own Id: OTP-12411
+The documentation of the Abstract Format (in the ERTS + User's Guide) has been updated with types and + specification. (Thanks to Anthony Ramine.)
The
+ explicit representation of parentheses used in types of
+ the abstract format has been removed. Instead the new
+ functions
+ Own Id: OTP-12492
++ Remove perfctr support
++ Development of perfctr in the linux kernel ceased in + 2010. The perfctr support code in the Erlang VM is thus + effectively dead code and therefor removed.
++ Own Id: OTP-12508
++ Own Id: OTP-12548
++ Use linear search for small select_val arrays
++ Own Id: OTP-12555
++ New BIF ets:update_counter/4 with a default object as + argument, which will be inserted in the table if the key + was not found.
++ Own Id: OTP-12563
++ Export missing types from zlib module
++ Own Id: OTP-12584
++ Use persistent hashmaps for large Maps
Maps will use a + persistent hashmap implementation when the number of + pairs in a Map becomes sufficiently large. The change + will occur when a Map reaches 33 pairs in size but this + limit might change in the future.
+The most significant impact for the user by this
+ change is speed, and to a lesser degree memory
+ consumption and introspection of Maps. Memory consumption
+ size is probalistic but lesser than
Semantics of Maps have changed in two incompatible + ways compared to the experimental implementation in OTP + 17:
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12585
+
+ Scalability improvement for
+ Previous implementation generated a strictly + monotonically increasing sequence of references + corresponding to creation time on the runtime system + instance. This is not the case with current + implementation. You can only expect reference to be + unique. The Erlang/OTP documentation has never mentioned + anything else but the uniqueness property, so this change + is fully compatible. The only reason we've + marked this as a potential incompatibility is since an + early draft for an Erlang specification mentions strict + monotonicity as a property.
+
+ If you need to create data with a strict monotonicity
+ property use
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12610
++ Enable different abort signal from heart
+By using environment variable HEART_KILL_SIGNAL, heart + can now use a different signal to kill the old running + Erlang.
+By default the signal is SIGKILL but SIGABRT may also + be used by setting environment variable: + HEART_KILL_SIGNAL=SIGABRT
++ Own Id: OTP-12613 Aux Id: seq12826
++ Update autconf to latest version 2015-03-04
++ Own Id: OTP-12646
+
+ Optimization of timers internally in the VM. This include
+ process timers (
+ Each scheduler thread now has its own lock-free timer + service instead of one locked central service. This + dramatically improves performance of timer management on + systems with a large amount of schedulers and timers.
++ The timer service internal data structure has also been + optimized to be able to handle more timers than before. + That is, each timer service is by its self able to handle + more timers without dramatic performance loss than the + old centralized timer service.
+
+ The API of BIF timers has also been extended. Timeout
+ values are for example no longer limited to 32-bit
+ integers. For more information see the documentation of
+
+ Characteristics impact: Calls to the synchronous versions
+ of
+ Own Id: OTP-12650 Aux Id: OTP-11997
++ Specialize instructions from common assembler patterns
+Specialize common instructions of
Specialize move patterns from x-registers to the stack
+ with a new
+ Own Id: OTP-12690
++ Fix cross compilation for Android.
++ Own Id: OTP-12693
++ Fix incorrect use of autoconf macro AC_EGREP_CPP, which + could cause faulty configuration if run from a path + containing the string 'yes'.
++ Own Id: OTP-12706
++ Minimal Java version is now 1.6
++ Own Id: OTP-12715
++ Send format and args on process exit to error_logger
+
+ Previously, the emulator would generate a whole string
+ with values and call the error_logger passing
+
+ Own Id: OTP-12735
++ Map error logger warnings to warning messages by default.
++ Own Id: OTP-12755
++ Configure architecture ppc64le architecture as a ppc64
++ Own Id: OTP-12761
+
+ Add function
+ Own Id: OTP-12770
++ Optimized node table statistics retrieval.
++ Own Id: OTP-12777
++ Map beam error logger warnings to warning messages by + default. Previously these messages were mapped to the + error channel by default.
++ Own Id: OTP-12781
++ gen_tcp:shutdown/2 is now asynchronous
++ This solves the following problems with the old + implementation:
++ It doesn't block when the TCP peer is idle or slow. This + is the expected behaviour when shutdown() is called: the + caller needs to be able to continue reading from the + socket, not be prevented from doing so.
++ It doesn't truncate the output. The current version of + gen_tcp:shutdown/2 will truncate any outbound data in the + driver queue after about 10 seconds if the TCP peer is + idle of slow. Worse yet, it doesn't even inform anyone + that the data has been truncated: 'ok' is returned to the + caller; and a FIN rather than an RST is sent to the TCP + peer.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12797
+
+ Introduced delayed node table GC. This in order to avoid
+ oscillation of entries in and out of the tables. The
+ oscillation caused unnecessary lock contention on the
+ table locks. The delay length can be set by passing the
+
+ Characteristics impact: The tables can grow to very large
+ sizes with unused entries if the node is get huge amounts
+ of short lived connections from other nodes. This problem
+ can be alleviated by shortening the length of the delay
+ using the
+ Own Id: OTP-12802
+Improved implementation of
Characteristics impact: The actual call to
+
+ Own Id: OTP-12842
++ There are many cases where user code needs to be able to + distinguish between a socket that was closed normally and + one that was aborted. Setting the option + {show_econnreset, true} enables the user to receive + ECONNRESET errors on both active and passive sockets.
++ Own Id: OTP-12843
++ Do not preallocate too large event pool
++ A default pool size of 4000 is too excessive for the + common case. This corresponds directly to the number of + threads in the system. Change + ERTS_TS_EV_ALLOC_DEFAULT_POOL_SIZE to 2048. Change + ERTS_TS_EV_ALLOC_POOL_SIZE to 32.
++ Own Id: OTP-12849
+This document describes the changes made to the ERTS application.
+Fix garbage collection of literals in code purge
+During code purging and check_process_code, the + checking of the binary reference embedded in the match + binary state was omitted for the tracing tests. This + would cause the binary match state to reference + deallocated memory.
++ Own Id: OTP-12821
++ Fix a rare hanging of the VM seen to happen just after + emulator start. Bug exists since R14.
++ Own Id: OTP-12859 Aux Id: seq12882
+This document describes the changes made to the ERTS application.
++ Fix a rare hanging of the VM seen to happen just after + emulator start. Bug exists since R14.
++ Own Id: OTP-12859 Aux Id: seq12882
+This document describes the changes made to the ERTS application.
++ A process could end up in an inconsistent half exited + state in the runtime system without SMP support. This + could occur if the processes was traced by a port that it + also was linked to, and the port terminated abnormally + while handling a trace message for the process.
++ This bug has always existed in the runtime system without + SMP support, but never in the runtime system with SMP + support.
++ Own Id: OTP-12889 Aux Id: seq12885
+This document describes the changes made to the ERTS application.
++ A process could end up in an inconsistent half exited + state in the runtime system without SMP support. This + could occur if the processes was traced by a port that it + also was linked to, and the port terminated abnormally + while handling a trace message for the process.
++ This bug has always existed in the runtime system without + SMP support, but never in the runtime system with SMP + support.
++ Own Id: OTP-12889 Aux Id: seq12885
++ Removed unnecessary copying of data when retrieving + corrected Erlang monotonic time.
++ Own Id: OTP-12894
++ Changed default OS monotonic clock source chosen at build + time. This in order to improve performance. The behavior + will now on most systems be that (both OS and Erlang) + monotonic time stops when the system is suspended.
+
+ If you prefer that monotonic time elapse during suspend
+ of the machine, you can pass the command line argument
+
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-12895
+
+
+ Own Id: OTP-12896
+
+ The
+ Own Id: OTP-12892
+This document describes the changes made to the ERTS application.
++ Fixed a binary memory leak when printing to shell using + the tty driver (i.e. not -oldshell).
++ Own Id: OTP-12941
++ Fix a bug where the standard error port sometimes crashes + with eagain as the reason.
++ Own Id: OTP-12942
+This document describes the changes made to the ERTS application.
+
+ When tracing with
+ Own Id: OTP-12968
+This document describes the changes made to the ERTS application.
+
+ Fix bug in ETS that could cause stray objects marked for
+ deletion to occasionally be missed by the cleanup done by
+
+ Own Id: OTP-12870
++ Fixed VM crash that could occur if a trace port was + linked to a process, and the trace port terminated + abnormally while handling a trace message. This bug has + always existed in the runtime system with SMP support.
++ Own Id: OTP-12901
++ Instead of aborting, the vm now creates a crash dump when + a system process is terminated.
++ Own Id: OTP-12934
++ Fixed a rare emulator dead lock that occurred when + erlang:process_flag(priority,...) was called by a process + that was also scheduled for an internal system activity.
++ Own Id: OTP-12943
++ The runtime system on various posix platforms (except for + Linux and Solaris) could crash when large amounts of + file-descriptors were in use.
++ Own Id: OTP-12954
++ A beam file compiled by hipe for an incompatible runtime + system was sometimes not rejected by the loader, which + could lead to vm crash. This fix will also allow the same + hipe compiler to be used by both normal and debug-built + vm.
++ Own Id: OTP-12962
+
+ Fix bug in
+ Own Id: OTP-12965
+
+ When tracing with
+ Own Id: OTP-12968
++ Fixed possible output deadlock in tty driver when hitting + "CTRL-C" in a non-smp emulator shell on unix.
++ Own Id: OTP-12987 Aux Id: Seq12947
+
+ Fix
+ Own Id: OTP-12988
++ Suppress warning of unused argument when using macro + enif_make_pid.
++ Own Id: OTP-12989
+
+ Changed default clock source used for OS system time on
+ MacOS X to
+ Own Id: OTP-12945 Aux Id: OTP-12892
+
+ Added the
+ Own Id: OTP-12971
+- Use persistent hashmaps for large Maps
Maps will use a + Use persistent hashmaps for large Maps
+Maps will use a persistent hashmap implementation when the number of pairs in a Map becomes sufficiently large. The change will occur when a Map reaches 33 pairs in size but this - limit might change in the future.
-The most significant impact for the user by this + limit might change in the future.
+The most significant impact for the user by this
change is speed, and to a lesser degree memory
consumption and introspection of Maps. Memory consumption
size is probalistic but lesser than
Semantics of Maps have changed in two incompatible +
Semantics of Maps have changed in two incompatible ways compared to the experimental implementation in OTP 17:
Improved support for atomic memory operations provided by
the
EEP43: New data type - Maps
- With Maps you may for instance:
For information on how to use Maps please see Map Expressions in the
The current implementation is without the following
- features:
Note that Maps is experimental during OTP 17.0.
@@ -4510,8 +4517,7 @@
Fix erl_prim_loader errors in handling of primary archive. The following errors have been corrected:
-
-
Thanks to Tuncer Ayaz and Shunichi Shinohara for reporting and co-authoring corrections.
@@ -6969,12 +6976,12 @@ Own Id: OTP-8726 Aux Id: seq11617Fix libm linking with --as-needed flag +
Fix libm linking with --as-needed flag
When building with "--as-needed" linker flags on Linux the build will fail. This has now been fixed.
- (Thanks to Christian Faulhammer)
+ (Thanks to Christian Faulhammer)Own Id: OTP-8728
This document describes the changes made to the ERTS application.
++ The 'raw' socket option could not be used multiple times + in one call to any e.g gen_tcp function because only one + of the occurrences were used. This bug has been fixed, + and also a small bug concerning propagating error codes + from within inet:setopts/2.
++ Own Id: OTP-11482 Aux Id: seq12872
+This document describes the changes made to the ERTS application.
++ Fixed a bug that could cause a crash dump to become + almost empty.
++ Own Id: OTP-13150
+This document describes the changes made to the ERTS application.
++ Small documentation fixes
++ Own Id: OTP-13017
++ Fix memory corruption bug caused by disabling + distribution and then re-enable distribution with a node + name that has previously been used by a remote node.
++ Own Id: OTP-13076 Aux Id: seq12959
++ Renamed variables with name bool as Visual Studio 2015 + now treats this is a keyword.
++ Own Id: OTP-13079
++ Own Id: OTP-13102
++ Fixed compilation of erts together with libc versions + that do not define __uint32_t.
++ Own Id: OTP-13105
++ erl -make now returns non-zero exit codes on failure
++ Own Id: OTP-13107
++ Fix crash on init:restart in embedded mode caused by + on_load handler process not being relaunched leading to + load failure for modules such as crypto and asn1rt_nif + that need it to be present for correct NIF loading.
++ Own Id: OTP-13115
++ Fix maps decode in erlang:binary_to_term/1
+Decoding a term with a large (HAMT) map in an small + (FLAT) map could cause a critical error if the external + format was not produced by beam.
++ Own Id: OTP-13125
++ Fix very rare bug in GC when big maps with a lot of hash + collisions from a remote node are waiting in inner + message queue.
++ Own Id: OTP-13146
++ Fixed a bug that could cause a crash dump to become + almost empty.
++ Own Id: OTP-13150
+ Updated the xmllint target to just check the xml
+ files with real documentation content.
Corrected
+ some errors and added some missing target in the DTD's.
+
+ Own Id: OTP-13026
++ Add function enif_getenv to read OS environment variables + in a portable way from NIFs.
++ Own Id: OTP-13147
+This document describes the changes made to the ERTS application.
++ Revert "Fix erroneous splitting of emulator path"
++ Own Id: OTP-13202
++ Fix HiPE enabled emulator for FreeBSD.
++ Own Id: OTP-13204 Aux Id: pr926
+This document describes the changes made to the ERTS application.
++ The '-path' flag to 'erl' has been documented. This flag + replaces the path specified in the boot script. It has + always existed, but was earlier only documented in SASL + (script).
++ Own Id: OTP-13060
+
+ The
+ This functionality now use Erlang monotonic time in order + to measure time. Besides fixing the erroneous results due + to OS system time being used, the results are often also + better since Erlang monotonic time often has better + accuracy and precision.
++ Own Id: OTP-13216
++ Fix behaviour of -delay_write command line switch of + epmd, which is used for debugging - in some cases epmd + was sleeping twice the requested amount of time.
++ Own Id: OTP-13220
++ Fix race between timeout and exit signal that could cause + a process to ignore the exit signal and continue + execution. Bug exist since OTP 18.0.
++ Own Id: OTP-13245
+
+ Fix bug in
+ Own Id: OTP-13251 Aux Id: ERL-49
+
+
+ Own Id: OTP-13254 Aux Id: OTP-11997, OTP-13222
++ Fix faulty error handling when writing to a compressed + file.
++ Own Id: OTP-13270
++ Fix sendfile usage for large files on FreeBSD
++ Own Id: OTP-13271
+
+ Fix bug that could cause
+
+ Own Id: OTP-13282 Aux Id: ERL-79
++ Out of memory errors have been changed to cause an exit + instead of abort.
++ Own Id: OTP-13292
+
+ When calling
+ Own Id: OTP-13298 Aux Id: OTP-11388
+
+ A workaround for an issue with older gcc versions (less
+ than 5) and inline assembly on 32-bit x86 caused an
+ emulator crash when it had been compiled with a newer gcc
+ version. An improved
+ Own Id: OTP-13326 Aux Id: ERL-80
+Introduced new statistics functionality in order to + more efficiently retrieve information about run able and + active processes and ports. For more information see:
++ Own Id: OTP-13201
++ Time warp safety improvements.
+
+ Introduced the options
+ Introduced the option
+ Own Id: OTP-13222 Aux Id: OTP-11997
++ Fix a register race where down nodes goes undetected in + epmd
++ Own Id: OTP-13301
++ Improved the gcc inline assembly implementing double word + atomic compare and exchange on x86/x86_64 so that it also + can be used when compiling with clang.
++ Own Id: OTP-13336
++ An optimization preventing a long wait for a scheduler + thread looking up information about a process executing + on another scheduler thread had unintentionally been lost + in erts-5.10 (OTP R16A). This optimization has now been + reintroduced.
++ Own Id: OTP-13365 Aux Id: OTP-9892
+This document describes the changes made to the ERTS application.
+
+
+ Own Id: OTP-13418
++ Make sure to create a crash dump when running out of + memory. This was accidentally removed in the erts-7.3 + release.
++ Own Id: OTP-13419
++ Schedulers could be woken by a premature timeout on + Linux. This premature wakeup was however harmless.
++ Own Id: OTP-13420
+
+ A process communicating with a port via one of the
+
+ This bug was introduced in erts version 5.10 (OTP R16A).
++ Own Id: OTP-13424 Aux Id: OTP-10336
++ The reference count of a process structure could under + rare circumstances be erroneously managed. When this + happened invalid memory accesses occurred.
++ Own Id: OTP-13446
+
+ Fix race between
+ A process could terminate due to exit signal even though
+
+ Own Id: OTP-13452
+This document describes the changes made to the ERTS application.
+The handling of
+ Own Id: OTP-12593
++ Own Id: OTP-13034
+
+ Fix
+ Own Id: OTP-13288 Aux Id: PR913
++ Cleanup hipe signal handling code for x86 and make it + more portable.
++ Own Id: OTP-13341 Aux Id: PR951
++ Use fsync instead of fdatasync on Mac OSX.
++ Own Id: OTP-13411
++ Make sure to create a crash dump when running out of + memory. This was accidentally removed in the erts-7.3 + release.
++ Own Id: OTP-13419
++ 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.
++ Own Id: OTP-13425
+
+ Fix race between
+ A process could terminate due to exit signal even though
+
+ Own Id: OTP-13452
+Don't search for non-existing Map keys twice
+For
+ Own Id: OTP-13459
++ When a abnormally large distribution message is about to + be sent, the VM has been changed to create a crash dump + instead of a core dump.
++ Own Id: OTP-13474
+
+ Fix
+ Own Id: OTP-13485 Aux Id: ERL-123
+
+ Fix bug in
+ Own Id: OTP-13489 Aux Id: ERL-127
+
+ Don't crash on terminating processes with
+
+ Own Id: OTP-13494 Aux Id: ERL-126
++ Fixed bugs where the reduction counter was not handled + correct.
++ Own Id: OTP-13512
+
+ Fixed typo in description of the
+ Own Id: OTP-13517
++ Fixed a bug where a process flagged as sensitive would + sometimes record its save_calls when it shouldn't.
++ Own Id: OTP-13540
++ Update configure scripts to not use hardcoded path for + /bin/pwd and /bin/rm.
++ Own Id: OTP-13562
+
+ The tracing support has been extended to allow a
+ With the introduction of this feature,
+
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-10267
++ Introduce LTTng tracing of Erlang Runtime System
+
+ For LTTng to be enabled OTP needs to be built with
+ configure option
+ This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool.
+ For a list of all tracepoints, see
+ Own Id: OTP-10282 Aux Id: kunagi-14 [14]
++ Add microstate accounting
++ Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage area + is to pin point performance bottlenecks by checking which + states the threads are in and then from there figuring + out why and where to optimize.
++ Since checking whether microstate accounting is on or off + is relatively expensive only a few of the states are + enabled by default and more states can be enabled through + configure.
++ There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting.
+
+ For more information see
+ Own Id: OTP-12345
++ The port of Erlang/OTP to the realtime operating system + OSE has been removed.
++ Own Id: OTP-12573
++ Sharing preserved copy for messages and exit signals
+
+ Enable sharing preserved copy with configure option
+
+ Own Id: OTP-12590 Aux Id: OTP-10251
++ Halfword BEAM has been removed.
++ Own Id: OTP-12883
+
+ Added
+ 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.
++ Own Id: OTP-12908
++ 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.
++ Own Id: OTP-13047
++ 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.
++ Own Id: OTP-13086
+
+ Erlang linked-in drivers can now set their own pid's as
+ seen in
+ Own Id: OTP-13087
+
+ The functionality behind
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13088
+Improved yielding strategy in the implementation of + the following native functions:
This + in order to improve performance of these functions.
++ Own Id: OTP-13096
++ 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.
++ Own Id: OTP-13097
+New functions that can load multiple functions at once
+ have been added to the '
+ Own Id: OTP-13111
+The function
The undocumented and unsupported function
+
+ Own Id: OTP-13112
+
+ Low level BIF
+ Own Id: OTP-13122
+
+ Improved dirty scheduler implementation. For more
+ information see the
+ Note that support for determining whether dirty NIF
+ support exist or not at compile time using the C
+ preprocessor macro
+ Own Id: OTP-13123
++ Various optimizations done to process dictionary access.
++ Own Id: OTP-13167
++ Added max_heap_size process flag. See erlang:process_flag + for more details.
++ Own Id: OTP-13174
+
+ Allow dynamic drivers and NIF libraries to be built with
+ gcc option
+ Own Id: OTP-13227
+
+ Add
+ Own Id: OTP-13265
+
+ The functions
+ Own Id: OTP-13293
++ 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
+ Own Id: OTP-13366 Aux Id: OTP-13047
++ Processes now yield when scanning large message queues + and not finding a matching message. This in order to + improve real time characteristics.
++ Own Id: OTP-13401
++ 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.
++ Own Id: OTP-13440
++ Add the following NIF API functions:
+
+
+ for details of what each function does, see the erl_nif + documentation.
++ Own Id: OTP-13442
+
+ Optimize
+ Own Id: OTP-13487
++ 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).
++ Own Id: OTP-13488
++ Don't send unasked for systemd notifications in epmd
++ Own Id: OTP-13493 Aux Id: PR-999
++ The enif_send API has been extended to allow NULL to be + used as the message environment. When used this way, a + message environent is implicitly created and the given + term is copied into that environment before sending. This + can be an optimization if many small messages are being + sent by the nif.
++ Own Id: OTP-13495
++ 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
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13496
+
+ When the
+ This new trace event is marked as an incompatabiliy + because tools that expect certain trace events when + enabling 'procs' will have to updated.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13497
+
+ Add the
+ Own Id: OTP-13501
++ The erts internal tracing support has been changed to + have much less overhead and be more scalable.
++ This rewrite does not break any backwards + incompatabilities, but it does change the ordering of + some trace messages when compared to previous releases. + It should be noted that this only applies to trace + messages sent to processes or ports, it does not apply to + the new tracer module. However in future releases they + may also be effected by this.
+
+ Trace messages are only guaranteed to be ordered from one
+ traced process or port. In previous releases this was not
+ visible as a
+ Own Id: OTP-13503
+
+ Add possibility to filter
+ Own Id: OTP-13507
+
+ Add
+ Own Id: OTP-13522 Aux Id: PR-1025
++ Introduce LTTng tracing via Erlang tracing.
+
+ For LTTng to be enabled OTP needs to be built with
+ configure option
The dynamic trace module
This feature also introduces an incompatible change in
+ trace tags. The trace tags
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13532
++ Print heap pointers for garbing processes during + crashdump
++ Own Id: OTP-13541 Aux Id: PR-1026
+
+ Changed and improved low level memory statistics returned
+ by
+ Own Id: OTP-13560
+This document describes the changes made to the ERTS application.
-The handling of
- Own Id: OTP-12593
-- Own Id: OTP-13034
-
- Fix
- Own Id: OTP-13288 Aux Id: PR913
-- Cleanup hipe signal handling code for x86 and make it - more portable.
-- Own Id: OTP-13341 Aux Id: PR951
-- Use fsync instead of fdatasync on Mac OSX.
-- Own Id: OTP-13411
-- Make sure to create a crash dump when running out of - memory. This was accidentally removed in the erts-7.3 - release.
-- Own Id: OTP-13419
-- 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.
-- Own Id: OTP-13425
-
- Fix race between
- A process could terminate due to exit signal even though
-
- Own Id: OTP-13452
-Don't search for non-existing Map keys twice
-For
- Own Id: OTP-13459
-- When a abnormally large distribution message is about to - be sent, the VM has been changed to create a crash dump - instead of a core dump.
-- Own Id: OTP-13474
-
- Fix
- Own Id: OTP-13485 Aux Id: ERL-123
-
- Fix bug in
- Own Id: OTP-13489 Aux Id: ERL-127
-
- Don't crash on terminating processes with
-
- Own Id: OTP-13494 Aux Id: ERL-126
-- Fixed bugs where the reduction counter was not handled - correct.
-- Own Id: OTP-13512
-
- Fixed typo in description of the
- Own Id: OTP-13517
-- Fixed a bug where a process flagged as sensitive would - sometimes record its save_calls when it shouldn't.
-- Own Id: OTP-13540
-- Update configure scripts to not use hardcoded path for - /bin/pwd and /bin/rm.
-- Own Id: OTP-13562
-
- The tracing support has been extended to allow a
- With the introduction of this feature,
-
- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-10267
-- Introduce LTTng tracing of Erlang Runtime System
-
- For LTTng to be enabled OTP needs to be built with
- configure option
- This feature introduces tracepoints for schedulers, - drivers, memory carriers, memory and async thread pool.
- For a list of all tracepoints, see
- Own Id: OTP-10282 Aux Id: kunagi-14 [14]
-- Add microstate accounting
-- Microstate accounting is a way to track which state the - different threads within ERTS are in. The main usage area - is to pin point performance bottlenecks by checking which - states the threads are in and then from there figuring - out why and where to optimize.
-- Since checking whether microstate accounting is on or off - is relatively expensive only a few of the states are - enabled by default and more states can be enabled through - configure.
-- There is a convinence module called msacc that has been - added to runtime_tools that can assist in gathering and - interpreting the data from Microstate accounting.
-
- For more information see
- Own Id: OTP-12345
-- The port of Erlang/OTP to the realtime operating system - OSE has been removed.
-- Own Id: OTP-12573
-- Sharing preserved copy for messages and exit signals
-
- Enable sharing preserved copy with configure option
-
- Own Id: OTP-12590 Aux Id: OTP-10251
-- Halfword BEAM has been removed.
-- Own Id: OTP-12883
-
- Added
- 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.
-- Own Id: OTP-12908
-- 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.
-- Own Id: OTP-13047
-- 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.
-- Own Id: OTP-13086
-
- Erlang linked-in drivers can now set their own pid's as
- seen in
- Own Id: OTP-13087
-
- The functionality behind
- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-13088
-Improved yielding strategy in the implementation of - the following native functions:
This - in order to improve performance of these functions.
-- Own Id: OTP-13096
-- 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.
-- Own Id: OTP-13097
-New functions that can load multiple functions at once
- have been added to the '
- Own Id: OTP-13111
-The function
The undocumented and unsupported function
-
- Own Id: OTP-13112
-
- Low level BIF
- Own Id: OTP-13122
-
- Improved dirty scheduler implementation. For more
- information see the
- Note that support for determining whether dirty NIF
- support exist or not at compile time using the C
- preprocessor macro
- Own Id: OTP-13123
-- Various optimizations done to process dictionary access.
-- Own Id: OTP-13167
-- Added max_heap_size process flag. See erlang:process_flag - for more details.
-- Own Id: OTP-13174
-
- Allow dynamic drivers and NIF libraries to be built with
- gcc option
- Own Id: OTP-13227
-
- Add
- Own Id: OTP-13265
-
- The functions
- Own Id: OTP-13293
-- 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
- Own Id: OTP-13366 Aux Id: OTP-13047
-- Processes now yield when scanning large message queues - and not finding a matching message. This in order to - improve real time characteristics.
-- Own Id: OTP-13401
-- 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.
-- Own Id: OTP-13440
-- Add the following NIF API functions:
-
-
- for details of what each function does, see the erl_nif - documentation.
-- Own Id: OTP-13442
-
- Optimize
- Own Id: OTP-13487
-- 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).
-- Own Id: OTP-13488
-- Don't send unasked for systemd notifications in epmd
-- Own Id: OTP-13493 Aux Id: PR-999
-- The enif_send API has been extended to allow NULL to be - used as the message environment. When used this way, a - message environent is implicitly created and the given - term is copied into that environment before sending. This - can be an optimization if many small messages are being - sent by the nif.
-- Own Id: OTP-13495
-- 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
- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-13496
-
- When the
- This new trace event is marked as an incompatabiliy - because tools that expect certain trace events when - enabling 'procs' will have to updated.
-- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-13497
-
- Add the
- Own Id: OTP-13501
-- The erts internal tracing support has been changed to - have much less overhead and be more scalable.
-- This rewrite does not break any backwards - incompatabilities, but it does change the ordering of - some trace messages when compared to previous releases. - It should be noted that this only applies to trace - messages sent to processes or ports, it does not apply to - the new tracer module. However in future releases they - may also be effected by this.
-
- Trace messages are only guaranteed to be ordered from one
- traced process or port. In previous releases this was not
- visible as a
- Own Id: OTP-13503
-
- Add possibility to filter
- Own Id: OTP-13507
-
- Add
- Own Id: OTP-13522 Aux Id: PR-1025
-- Introduce LTTng tracing via Erlang tracing.
-
- For LTTng to be enabled OTP needs to be built with
- configure option
The dynamic trace module
This feature also introduces an incompatible change in
- trace tags. The trace tags
- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-13532
-- Print heap pointers for garbing processes during - crashdump
-- Own Id: OTP-13541 Aux Id: PR-1026
-
- Changed and improved low level memory statistics returned
- by
- Own Id: OTP-13560
-This document describes the changes made to the ERTS application.
+The handling of
+ Own Id: OTP-12593
++ Own Id: OTP-13034
+
+ Fix
+ Own Id: OTP-13288 Aux Id: PR913
++ Cleanup hipe signal handling code for x86 and make it + more portable.
++ Own Id: OTP-13341 Aux Id: PR951
++ Use fsync instead of fdatasync on Mac OSX.
++ Own Id: OTP-13411
++ Make sure to create a crash dump when running out of + memory. This was accidentally removed in the erts-7.3 + release.
++ Own Id: OTP-13419
++ 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.
++ Own Id: OTP-13425
+
+ Fix race between
+ A process could terminate due to exit signal even though
+
+ Own Id: OTP-13452
+Don't search for non-existing Map keys twice
+For
+ Own Id: OTP-13459
++ When a abnormally large distribution message is about to + be sent, the VM has been changed to create a crash dump + instead of a core dump.
++ Own Id: OTP-13474
+
+ Fix
+ Own Id: OTP-13485 Aux Id: ERL-123
+
+ Fix bug in
+ Own Id: OTP-13489 Aux Id: ERL-127
+
+ Don't crash on terminating processes with
+
+ Own Id: OTP-13494 Aux Id: ERL-126
++ Fixed bugs where the reduction counter was not handled + correct.
++ Own Id: OTP-13512
+
+ Fixed typo in description of the
+ Own Id: OTP-13517
++ Fixed a bug where a process flagged as sensitive would + sometimes record its save_calls when it shouldn't.
++ Own Id: OTP-13540
++ Update configure scripts to not use hardcoded path for + /bin/pwd and /bin/rm.
++ Own Id: OTP-13562
++ When passing a larger binary than the outputv callback of + a linked-in driver can handle in one io vector slot, the + binary is now split into multiple slots in the io vector. + This change only effects system where the max size of an + io vector slot is smaller then the word size of the + system (e.g. Windows).
++ This change means that it is now possible on Windows to + send binaries that are larger than 4GB to port_comnmand, + which is what is used for file:write, gen_tcp:send etc.
++ Own Id: OTP-13628
+
+ The tracing support has been extended to allow a
+ With the introduction of this feature,
+
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-10267
++ Introduce LTTng tracing of Erlang Runtime System
+
+ For LTTng to be enabled OTP needs to be built with
+ configure option
+ This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool.
+ For a list of all tracepoints, see
+ Own Id: OTP-10282
++ Add microstate accounting
++ Microstate accounting is a way to track which state the + different threads within ERTS are in. The main usage area + is to pin point performance bottlenecks by checking which + states the threads are in and then from there figuring + out why and where to optimize.
++ Since checking whether microstate accounting is on or off + is relatively expensive only a few of the states are + enabled by default and more states can be enabled through + configure.
++ There is a convinence module called msacc that has been + added to runtime_tools that can assist in gathering and + interpreting the data from Microstate accounting.
+
+ For more information see
+ Own Id: OTP-12345
++ The port of Erlang/OTP to the realtime operating system + OSE has been removed.
++ Own Id: OTP-12573
++ Sharing preserved copy for messages and exit signals
+
+ Enable sharing preserved copy with configure option
+
+ Own Id: OTP-12590 Aux Id: OTP-10251
++ Halfword BEAM has been removed.
++ Own Id: OTP-12883
+
+ Added
+ 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.
++ Own Id: OTP-12908
++ 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.
++ Own Id: OTP-13047
++ 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.
++ Own Id: OTP-13086
+
+ Erlang linked-in drivers can now set their own pid's as
+ seen in
+ Own Id: OTP-13087
+
+ The functionality behind
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13088
+Improved yielding strategy in the implementation of + the following native functions:
This + in order to improve performance of these functions.
++ Own Id: OTP-13096
++ 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.
++ Own Id: OTP-13097
+New functions that can load multiple functions at once
+ have been added to the '
+ Own Id: OTP-13111
+The
The function
The undocumented and unsupported function
+
+ Own Id: OTP-13112
+
+ Low level BIF
+ Own Id: OTP-13122
+
+ Improved dirty scheduler implementation. For more
+ information see the
+ Note that support for determining whether dirty NIF
+ support exist or not at compile time using the C
+ preprocessor macro
+ Own Id: OTP-13123
++ Various optimizations done to process dictionary access.
++ Own Id: OTP-13167
++ Added max_heap_size process flag. See erlang:process_flag + for more details.
++ Own Id: OTP-13174
+
+ Allow dynamic drivers and NIF libraries to be built with
+ gcc option
+ Own Id: OTP-13227
+
+ Add
+ Own Id: OTP-13265
+
+ The functions
+ Own Id: OTP-13293
+
+ 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
+ Own Id: OTP-13359
++ 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
+ Own Id: OTP-13366 Aux Id: OTP-13047
++ Processes now yield when scanning large message queues + and not finding a matching message. This in order to + improve real time characteristics.
++ Own Id: OTP-13401
++ 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.
++ Own Id: OTP-13440
++ Add the following NIF API functions:
+
+
+ for details of what each function does, see the erl_nif + documentation.
++ Own Id: OTP-13442
+
+ Optimize
+ Own Id: OTP-13487
++ 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).
++ Own Id: OTP-13488
++ Don't send unasked for systemd notifications in epmd
++ Own Id: OTP-13493 Aux Id: PR-999
++ The enif_send API has been extended to allow NULL to be + used as the message environment. When used this way, a + message environent is implicitly created and the given + term is copied into that environment before sending. This + can be an optimization if many small messages are being + sent by the nif.
++ Own Id: OTP-13495
++ 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
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13496
+
+ When the
+ This new trace event is marked as an incompatabiliy + because tools that expect certain trace events when + enabling 'procs' will have to updated.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13497
+
+ Add the
+ Own Id: OTP-13501
++ The erts internal tracing support has been changed to + have much less overhead and be more scalable.
++ This rewrite does not break any backwards + incompatabilities, but it does change the ordering of + some trace messages when compared to previous releases. + It should be noted that this only applies to trace + messages sent to processes or ports, it does not apply to + the new tracer module. However in future releases they + may also be effected by this.
+
+ Trace messages are only guaranteed to be ordered from one
+ traced process or port. In previous releases this was not
+ visible as a
+ Own Id: OTP-13503
+
+ Add possibility to filter
+ Own Id: OTP-13507
+
+ Add
+ Own Id: OTP-13522 Aux Id: PR-1025
++ Introduce LTTng tracing via Erlang tracing.
+
+ For LTTng to be enabled OTP needs to be built with
+ configure option
The dynamic trace module
This feature also introduces an incompatible change in
+ trace tags. The trace tags
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13532
++ Print heap pointers for garbing processes during + crashdump
++ Own Id: OTP-13541 Aux Id: PR-1026
+
+ Changed and improved low level memory statistics returned
+ by
+ Own Id: OTP-13560
++ Add enif_snprintf to the NIF API
+
+ The fucntion
+ Own Id: OTP-13580
+The warning in the documentation for
+
+ Own Id: OTP-13599
+
+ Add
+ Add
+ Own Id: OTP-13627
+
+
+ Own Id: OTP-13630
+This document describes the changes made to the ERTS application.
-The handling of
- Own Id: OTP-12593
-- Own Id: OTP-13034
-
- Fix
- Own Id: OTP-13288 Aux Id: PR913
-- Cleanup hipe signal handling code for x86 and make it - more portable.
-- Own Id: OTP-13341 Aux Id: PR951
-- Use fsync instead of fdatasync on Mac OSX.
-- Own Id: OTP-13411
-- Make sure to create a crash dump when running out of - memory. This was accidentally removed in the erts-7.3 - release.
-- Own Id: OTP-13419
-- 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.
-- Own Id: OTP-13425
-
- Fix race between
- A process could terminate due to exit signal even though
-
- Own Id: OTP-13452
-Don't search for non-existing Map keys twice
-For
- Own Id: OTP-13459
-- When a abnormally large distribution message is about to - be sent, the VM has been changed to create a crash dump - instead of a core dump.
-- Own Id: OTP-13474
-
- Fix
- Own Id: OTP-13485 Aux Id: ERL-123
-
- Fix bug in
- Own Id: OTP-13489 Aux Id: ERL-127
-
- Don't crash on terminating processes with
-
- Own Id: OTP-13494 Aux Id: ERL-126
-- Fixed bugs where the reduction counter was not handled - correct.
-- Own Id: OTP-13512
-
- Fixed typo in description of the
- Own Id: OTP-13517
-- Fixed a bug where a process flagged as sensitive would - sometimes record its save_calls when it shouldn't.
-- Own Id: OTP-13540
-- Update configure scripts to not use hardcoded path for - /bin/pwd and /bin/rm.
-- Own Id: OTP-13562
-- When passing a larger binary than the outputv callback of - a linked-in driver can handle in one io vector slot, the - binary is now split into multiple slots in the io vector. - This change only effects system where the max size of an - io vector slot is smaller then the word size of the - system (e.g. Windows).
-- This change means that it is now possible on Windows to - send binaries that are larger than 4GB to port_comnmand, - which is what is used for file:write, gen_tcp:send etc.
-- Own Id: OTP-13628
-
- The tracing support has been extended to allow a
- With the introduction of this feature,
-
- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-10267
-- Introduce LTTng tracing of Erlang Runtime System
-
- For LTTng to be enabled OTP needs to be built with
- configure option
- This feature introduces tracepoints for schedulers, - drivers, memory carriers, memory and async thread pool.
- For a list of all tracepoints, see
- Own Id: OTP-10282
-- Add microstate accounting
-- Microstate accounting is a way to track which state the - different threads within ERTS are in. The main usage area - is to pin point performance bottlenecks by checking which - states the threads are in and then from there figuring - out why and where to optimize.
-- Since checking whether microstate accounting is on or off - is relatively expensive only a few of the states are - enabled by default and more states can be enabled through - configure.
-- There is a convinence module called msacc that has been - added to runtime_tools that can assist in gathering and - interpreting the data from Microstate accounting.
-
- For more information see
- Own Id: OTP-12345
-- The port of Erlang/OTP to the realtime operating system - OSE has been removed.
-- Own Id: OTP-12573
-- Sharing preserved copy for messages and exit signals
-
- Enable sharing preserved copy with configure option
-
- Own Id: OTP-12590 Aux Id: OTP-10251
-- Halfword BEAM has been removed.
-- Own Id: OTP-12883
-
- Added
- 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.
-- Own Id: OTP-12908
-- 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.
-- Own Id: OTP-13047
-- 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.
-- Own Id: OTP-13086
-
- Erlang linked-in drivers can now set their own pid's as
- seen in
- Own Id: OTP-13087
-
- The functionality behind
- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-13088
-Improved yielding strategy in the implementation of - the following native functions:
This - in order to improve performance of these functions.
-- Own Id: OTP-13096
-- 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.
-- Own Id: OTP-13097
-New functions that can load multiple functions at once
- have been added to the '
- Own Id: OTP-13111
-The
The function
The undocumented and unsupported function
-
- Own Id: OTP-13112
-
- Low level BIF
- Own Id: OTP-13122
-
- Improved dirty scheduler implementation. For more
- information see the
- Note that support for determining whether dirty NIF
- support exist or not at compile time using the C
- preprocessor macro
- Own Id: OTP-13123
-- Various optimizations done to process dictionary access.
-- Own Id: OTP-13167
-- Added max_heap_size process flag. See erlang:process_flag - for more details.
-- Own Id: OTP-13174
-
- Allow dynamic drivers and NIF libraries to be built with
- gcc option
- Own Id: OTP-13227
-
- Add
- Own Id: OTP-13265
-
- The functions
- Own Id: OTP-13293
-
- 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
- Own Id: OTP-13359
-- 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
- Own Id: OTP-13366 Aux Id: OTP-13047
-- Processes now yield when scanning large message queues - and not finding a matching message. This in order to - improve real time characteristics.
-- Own Id: OTP-13401
-- 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.
-- Own Id: OTP-13440
-- Add the following NIF API functions:
-
-
- for details of what each function does, see the erl_nif - documentation.
-- Own Id: OTP-13442
-
- Optimize
- Own Id: OTP-13487
-- 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).
-- Own Id: OTP-13488
-- Don't send unasked for systemd notifications in epmd
-- Own Id: OTP-13493 Aux Id: PR-999
-- The enif_send API has been extended to allow NULL to be - used as the message environment. When used this way, a - message environent is implicitly created and the given - term is copied into that environment before sending. This - can be an optimization if many small messages are being - sent by the nif.
-- Own Id: OTP-13495
-- 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
- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-13496
-
- When the
- This new trace event is marked as an incompatabiliy - because tools that expect certain trace events when - enabling 'procs' will have to updated.
-- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-13497
-
- Add the
- Own Id: OTP-13501
-- The erts internal tracing support has been changed to - have much less overhead and be more scalable.
-- This rewrite does not break any backwards - incompatabilities, but it does change the ordering of - some trace messages when compared to previous releases. - It should be noted that this only applies to trace - messages sent to processes or ports, it does not apply to - the new tracer module. However in future releases they - may also be effected by this.
-
- Trace messages are only guaranteed to be ordered from one
- traced process or port. In previous releases this was not
- visible as a
- Own Id: OTP-13503
-
- Add possibility to filter
- Own Id: OTP-13507
-
- Add
- Own Id: OTP-13522 Aux Id: PR-1025
-- Introduce LTTng tracing via Erlang tracing.
-
- For LTTng to be enabled OTP needs to be built with
- configure option
The dynamic trace module
This feature also introduces an incompatible change in
- trace tags. The trace tags
- *** POTENTIAL INCOMPATIBILITY ***
-- Own Id: OTP-13532
-- Print heap pointers for garbing processes during - crashdump
-- Own Id: OTP-13541 Aux Id: PR-1026
-
- Changed and improved low level memory statistics returned
- by
- Own Id: OTP-13560
-- Add enif_snprintf to the NIF API
-
- The fucntion
- Own Id: OTP-13580
-The warning in the documentation for
-
- Own Id: OTP-13599
-
- Add
- Add
- Own Id: OTP-13627
-
-
- Own Id: OTP-13630
-This document describes the changes made to the ERTS application.
+The handling of
+ Own Id: OTP-12593
++ Own Id: OTP-13034
+
+ Fix
+ Own Id: OTP-13288 Aux Id: PR913
++ Cleanup hipe signal handling code for x86 and make it + more portable.
++ Own Id: OTP-13341 Aux Id: PR951
++ Make file:datasync use fsync instead of fdatasync on Mac + OSX.
++ Own Id: OTP-13411
++ Make sure to create a crash dump when running out of + memory. This was accidentally removed in the erts-7.3 + release.
++ Own Id: OTP-13419
++ 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.
++ Own Id: OTP-13425
+
+ Fix race between
+ A process could terminate due to exit signal even though
+
+ Own Id: OTP-13452
+Don't search for non-existing Map keys twice
+For
+ Own Id: OTP-13459
++ 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.
++ Own Id: OTP-13474
+
+ Fix
+ Own Id: OTP-13485 Aux Id: ERL-123
+
+ Fix bug in
+ Own Id: OTP-13489 Aux Id: ERL-127
+
+ Fixed a race-condition bug where the emulator could crash
+ when
+ Own Id: OTP-13494 Aux Id: ERL-126
++ Fixed bugs where the reduction counter was not handled + correct.
++ Own Id: OTP-13512
+
+ Fixed typo in description of the
+ Own Id: OTP-13517
++ Fixed a bug where a process flagged as sensitive would + sometimes record its save_calls when it shouldn't.
++ Own Id: OTP-13540
++ Update configure scripts to not use hard-coded path for + /bin/pwd and /bin/rm.
++ Own Id: OTP-13562
++ 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.
++ Own Id: OTP-13628
++ Workaround of Maps output in crashdumps. Currently the + atom 'undefined' is generated instead of Map data if a + Map type is encountered during crash.
++ Own Id: OTP-13657
+
+ The tracing support has been extended to allow a
+ With the introduction of this feature,
+
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-10267
++ Introduce LTTng tracing of Erlang Runtime System
+
+ For LTTng to be enabled OTP needs to be built with
+ configure option
+ This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool.
+ For a list of all tracepoints, see
+ Own Id: OTP-10282
+
+ Make it possible to monitor/demonitor ports using the
+
+ Own Id: OTP-11384
++ 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
+ Own Id: OTP-12345
++ The port of Erlang/OTP to the real-time operating system + OSE has been removed.
++ Own Id: OTP-12573
++ Sharing preserved copy for messages and exit signals
+
+ Enable sharing preserved copy with configure option
+
+ Own Id: OTP-12590 Aux Id: OTP-10251
++ Halfword BEAM has been removed.
++ Own Id: OTP-12883
+
+ Added
+ 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.
++ Own Id: OTP-12908
++ 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.
++ Own Id: OTP-13047
++ 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.
++ Own Id: OTP-13086
+
+ Erlang linked-in drivers can now set their own pids as
+ seen in
+ Own Id: OTP-13087
+
+ The functionality behind
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13088
+Improved yielding strategy in the implementation of + the following native functions:
This + in order to improve performance of these functions.
++ Own Id: OTP-13096
++ 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.
++ Own Id: OTP-13097
+New functions that can load multiple modules at once
+ have been added to the '
+ Own Id: OTP-13111
+The
The function
The undocumented and unsupported function
+
+ Own Id: OTP-13112
+
+ Low level BIF
+ Own Id: OTP-13122
+Improved dirty scheduler implementation. For more
+ information see the
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
+
The
+
+ Own Id: OTP-13123
++ Various optimizations done to process dictionary access.
++ Own Id: OTP-13167
+
+ Added max_heap_size process flag. max_heap_size allows
+ the user to limit the maximum heap used by a process. See
+
+ Own Id: OTP-13174
+
+ Allow dynamic drivers and NIF libraries to be built with
+ gcc option
+ Own Id: OTP-13227
+
+ Add
+ Own Id: OTP-13265
+
+ The functions
+ Own Id: OTP-13293
+
+ 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
+ Own Id: OTP-13359
++ 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
+ Own Id: OTP-13366 Aux Id: OTP-13047
++ Processes now yield when scanning large message queues + and not finding a matching message. This in order to + improve real time characteristics.
++ Own Id: OTP-13401
++ 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.
++ Own Id: OTP-13440
++ Add the following NIF API functions:
+
+
+ for details of what each function does, see the erl_nif + documentation.
++ Own Id: OTP-13442
+
+ Optimize
+ Own Id: OTP-13487
++ 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).
++ Own Id: OTP-13488
++ Don't send unasked for systemd notifications in epmd
++ Own Id: OTP-13493 Aux Id: PR-999
++ 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.
++ Own Id: OTP-13495
++ 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
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13496
+
+ When the
+ This new trace event is marked as an incompatibility + because tools that expect certain trace events when + enabling 'procs' will have to updated.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13497
+
+ Add the
+ Own Id: OTP-13501
++ 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
+ Own Id: OTP-13503
+
+ Add possibility to filter
+ Own Id: OTP-13507
+
+ Add
+ Own Id: OTP-13522 Aux Id: PR-1025
++ Introduce LTTng tracing via Erlang tracing.
+
+ For LTTng to be enabled OTP needs to be built with
+ configure option
The dynamic trace module
This feature also introduces an incompatible change in
+ trace tags. The trace tags
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-13532
++ Print heap pointers for garbing processes during + crashdump
++ Own Id: OTP-13541 Aux Id: PR-1026
+
+ Changed and improved low level memory statistics returned
+ by
+ Own Id: OTP-13560
++ Add enif_snprintf to the NIF API
+
+ The function
+ Own Id: OTP-13580
+The warning in the documentation for
+
+ Own Id: OTP-13599
++ 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.
++ Own Id: OTP-13606
+
+ Add
+ Add
+ Own Id: OTP-13627
+
+
+ Own Id: OTP-13630
++ Fix possible race in poller wake up on windows
++ Own Id: OTP-13634
+