From d7ce2d9b68ba83e46100a97aaf56c0ca09899525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= Date: Fri, 6 Sep 2013 10:03:56 +0200 Subject: Convert some notes.xml files from latin-1 to utf-8 In the master branch, the encoding for most xml files have been changed from latin-1 to utf-8. The problem is, that the corresponding files in the maint branch still are encoded in latin-1, and that a merge from maint to master may bring in characters encoded in latin-1 into a notes.xml file declared to be in utf-8. To fix the problem once and for all (for the files involved), we'll need to re-encode the files files utf-8 in maint, and then merge to master. Noticed-by: Magnus Henoch --- erts/doc/src/notes.xml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index f94d71ee3d..822aceff08 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -1,4 +1,4 @@ - + @@ -321,7 +321,7 @@

Support wide characters in the shell through wcwidth(). - Thanks to Anthony Ramine. Reported by Loïc Hoguin.

+ 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

@@ -1961,7 +1961,7 @@

Fix typo in supervisor behaviour doc (Thanks to Ricardo - Catalinas Jiménez)

+ Catalinas Jiménez)

Own Id: OTP-9924

@@ -2225,7 +2225,7 @@

Fixes module erlang doc style: option description (Thanks - to Ricardo Catalinas Jiménez)

+ to Ricardo Catalinas Jiménez)

Own Id: OTP-9697

@@ -2674,7 +2674,7 @@

Fix typos in the epmd documentation (Thanks to Holger - Weiß )

+ Weiß )

Own Id: OTP-9387

@@ -2779,7 +2779,7 @@

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

@@ -2807,7 +2807,7 @@ only separator characters (comma and space).

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 Date: Mon, 16 Sep 2013 20:11:53 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 226 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 226 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 822aceff08..77ffeefd04 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,232 @@

This document describes the changes made to the ERTS application.

+
Erts 5.10.3 + +
Fixed Bugs and Malfunctions + + +

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

+
+
+
+ + +
Improvements and New Features + + +

+ 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 aoffcbf (address order + first fit carrier best fit). Supports carrier migration + but with better CPU performance than aoffcaobf.

+

+ 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

+
+
+
+ +
+
Erts 5.10.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From abac2eda110a33d8310c0f9cc152d91de37f731d Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 27 Sep 2013 17:16:02 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 77ffeefd04..b25e4ccbec 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,30 @@

This document describes the changes made to the ERTS application.

+
Erts 5.10.3.1 + +
Improvements and New Features + + +

+ Memory allocators will be able to create sys_alloc + carriers as fallback, if mseg_alloc cannot create + more carriers, on systems with posix_memalign() + support. This is similar to how it worked in pre-R16 + releases.

+

+ Windows systems will create carriers using + _aligned_malloc() and can by this use the new + optimized allocator header scheme introduced in R16 on + other platforms.

+

+ Own Id: OTP-11318

+
+
+
+ +
+
Erts 5.10.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 25237481ccccd3ddfa74582dc267632ad618ba30 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 9 Dec 2013 20:12:33 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 259 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 259 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index b25e4ccbec..8c008c493e 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,265 @@

This document describes the changes made to the ERTS application.

+
Erts 5.10.4 + +
Fixed Bugs and Malfunctions + + +

+ 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 +M<S>acul + command line flag had been passed to erl. This could cause + corruption of the VMs internal state.

+

+ 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 binary_to_term for invalid bitstrings + and very large binaries (>2Gb).

+

+ Own Id: OTP-11479

+
+ +

+ Under rare circumstances a process calling inet:close/1, + gen_tcp:close/1, + gen_udp:close/1, + or gen_sctp:close/1 + could hang in the call indefinitely.

+

+ 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

+
+
+
+ + +
Improvements and New Features + + +

+ 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 +MMscs <size in + MB> command line argument. For more + information see the documentation of the +MMsco, + +MMscrfsd, + +MMscrpm, + +MMscs, + +MMusac, + and, +Mlpm + command line arguments in the erts_alloc(3) + documentation.

+

+ 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 + erlang:system_info({allocator, + mseg_alloc}) now also include an + {erts_mmap, _} tuple as one element in the list.

+

+ *** 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:

port_close/1 + port_command/2 + port_command/3 + port_connect/2 + port_control/3 + erlang:port_call/3 + erlang:port_info/1 + erlang:port_info/2 +

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

+
+
+
+ +
+
Erts 5.10.3.1
Improvements and New Features -- cgit v1.2.3 From 302954c0641ba679fb33a003c0a665b7b4a79a0e Mon Sep 17 00:00:00 2001 From: Lukas Larsson Date: Mon, 27 Jan 2014 16:14:10 +0100 Subject: 17.0 anchor and broken links fixes --- erts/doc/src/notes.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 8c008c493e..b4ebef72f4 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -257,7 +257,7 @@ processes before the BIF returns, or fail with an exception due to the port not being open.

The synchronous port BIFs are:

port_close/1 + marker="erlang#port_close/1">port_close/1 port_command/2 Date: Mon, 7 Apr 2014 19:52:48 +0200 Subject: Update release notes --- erts/doc/src/notes.xml | 709 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 709 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index b4ebef72f4..eba4cdf06f 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,715 @@

This document describes the changes made to the ERTS application.

+
Erts 6.0 + +
Fixed Bugs and Malfunctions + + +

+ 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 binary_to_term + (and remote message reception) for integers in the + intervals [-2147483648,-1] and [256,2147483647] on 64-bit + emulators.

+

+ 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 + enif_open_resource_type when load/upgrade + callbacks of NIF library return failure.

+

+ Own Id: OTP-11722

+
+ +

+ Changed the default configuration when configuring with + $ERL_TOP/configure to be the same as when + configuring with $ERL_TOP/otp_build configure.

+

+ Previously floating point exceptions got enabled by + default on Linux when HiPE was enabled when configuring + with $ERL_TOP/configure, but not when configuring + with $ERL_TOP/otp_build configure. The default is + now in both cases not to use floating point exceptions + since there still exist unresolved issues with floating + point exceptions on Linux.

+

+ For more information see $ERL_TOP/HOWTO/INSTALL.md.

+

+ *** 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 +fn* flags to + erl also affect how command line parameters and + environment variables are read. (Thanks to Vlad + Dumitrescu)

+

+ Own Id: OTP-11818

+
+
+
+ + +
Improvements and New Features + + +

+ 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 unmatched_return warnings have been + corrected.

+

+ Own Id: OTP-10908

+
+ +

+ A common case is to wrap an argument to + list_to_binary/1 in a list to ensure conversion + can happen even though the argument may already be a + binary. Take special care of this case and do not copy + binary.

+

+ Impact: May cause incompatibility since a single binary + is no longer copied. Use binary:copy/1,2 instead.

+

+ *** 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 ERLC_EMULATOR environment + variable, note that erlc in OTP 17 will only work + with erl in OTP 17 since the protocol between the + erlc program and the erl_compile module has + changed.

+

+ 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 ose application.

+

+ 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 + +sub command + line argument.

+

+ 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 garbage_collect/1 BIF or the + check_process_code/2 BIF may trigger garbage + collection of another processes than the process calling + the BIF. The previous implementations performed these + kinds of garbage collections without considering the + internal state of the process being garbage collected. In + order to be able to more easily and more efficiently + implement yielding native code, these types of garbage + collections have been rewritten. A garbage collection + like this is now triggered by an asynchronous request + signal, the actual garbage collection is performed by the + process being garbage collected itself, and finalized by + a reply signal to the process issuing the request. Using + this approach processes can disable garbage collection + and yield without having to set up the heap in a state + that can be garbage collected.

+

+ The garbage_collect/2, + and check_process_code/3 + BIFs have been introduced. Both taking an option list as + last argument. Using these, one can issue asynchronous + requests.

+

+ code:purge/1 and code:soft_purge/1 have + been rewritten to utilize asynchronous + check_process_code requests in order to + parallelize work.

+

+ Characteristics impact: A call to the + garbage_collect/1 BIF or the + check_process_code/2 BIF will normally take longer + time to complete while the system as a whole wont be as + much negatively effected by the operation as before. A + call to code:purge/1 and code:soft_purge/1 + may complete faster or slower depending on the state of + the system while the system as a whole wont be as much + negatively effected by the operation as before.

+

+ 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 + alloc_util + framework except for temp_alloc. That is, +M<S>acul + de is default for these allocators. Note + that this also implies changed allocation strategies for + all of these allocators. They will all now use the + "address order first fit carrier best fit" strategy.

+

+ By passing +Muacul 0 on the command line, all + configuration changes made by this change will be + reverted.

+

+ 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 + -on_load() in the Reference Manual that it is only + recommended for loading NIF libraries.

+

+ Own Id: OTP-11611

+
+ +

+fnaw is now default when starting the + emulator; it used to be +fnl.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-11612

+
+ +

+ EEP43: New data type - Maps

+

+ With Maps you may for instance: M0 = + #{ a => 1, b => 2}, % create + associations M1 = M0#{ a := 10 }, % + update values M2 = M1#{ "hi" => + "hello"}, % add new associations #{ + "hi" := V1, a := V2, b := V3} = M2. % match keys with + values

+

+ For information on how to use Maps please see the + Reference + Manual.

+

+ The current implementation is without the following + features: No variable keys + No single value access No map + comprehensions

+

+ Note that Maps is experimental during OTP 17.0.

+

+ Own Id: OTP-11616

+
+ +

+ The previously deprecated driver API function + driver_async_cancel() has been removed. Due to + this, the driver API version has been bumped to 3.0.

+

+ 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 + --enable-dirty-schedulers to configure when + building the system.

+

+ Dirty schedulers can currently only be used by NIFs on a + system with SMP support. More information can be found in + the erl_nif(3) + documentation, the erl(1) documentation, and + in the git commit comment of commit + 'c1c03ae4ee50e58b7669ea88ec4d29c6b2b67c7b'.

+

+ 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 + term_to_binary. The reduction cost is increased + and garbage collection is disabled during yield.

+

+ Impact: Improves system responsiveness when + term_to_binary is called with large terms without + significant degradation of single threaded performance.

+

+ 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 + --enable-builtin-zlib option to configure + to force the use of the built-in zlib.)

+

+ 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 configure option + --with-assumed-cache-line-size=SIZE. For more + information see $ERL_TOP/HOWTO/INSTALL.md.

+

+ 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 the version + management section in the erl_driver(3) + documentation and the version + management section in the erl_nif(3) + documentation.

+

+ Own Id: OTP-11799

+
+ +

+ Support file paths longer than 259 characters on Windows. + Long absolute paths are automatically converted to UNC + format with a \\?\ prefix which is the only way to + represent long paths. The 259 character limit still + applies for individual file names, relative paths and the + current working directory.

+

+ 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

+
+
+
+ +
+
Erts 5.10.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From c6237ad7b6b485990f915daa2b1cf0a9095f129d Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 10 Apr 2014 04:46:19 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index eba4cdf06f..68feaa027a 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,29 @@

This document describes the changes made to the ERTS application.

+
Erts 6.0.1 + +
Fixed Bugs and Malfunctions + + +

+ Fix broken system monitoring of large_heap for + non-smp VM. No message for large_heap was ever + sent on non-smp VM. Bug exist since R16B.

+

+ Own Id: OTP-11852

+
+ +

+ Fixed type spec of erlang:system_info/1.

+

+ Own Id: OTP-11859 Aux Id: OTP-11615

+
+
+
+ +
+
Erts 6.0
Fixed Bugs and Malfunctions -- cgit v1.2.3 From f47320f43c3fb39f78054834e60ae9424ac79f35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Tue, 17 Jun 2014 16:26:50 +0200 Subject: doc: Fix broken links --- erts/doc/src/notes.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 68feaa027a..fbbaf1c674 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -595,9 +595,9 @@ "hi" := V1, a := V2, b := V3} = M2. % match keys with values

- For information on how to use Maps please see the - Reference - Manual.

+ For information on how to use Maps please see Map Expressions in the + + Reference Manual.

The current implementation is without the following features: No variable keys -- cgit v1.2.3 From 139825694c587b0f543224bf083170fad0e1ad75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn-Egil=20Dahlberg?= Date: Tue, 17 Jun 2014 16:56:09 +0200 Subject: doc: Fix broken links in Installation Guide --- erts/doc/src/notes.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index fbbaf1c674..6b3e41c1f2 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -4854,7 +4854,7 @@

The configure command line argument --enable-ethread-pre-pentium4-compatibility + marker="doc/installation_guide:INSTALL#Advanced-configuration-and-build-of-ErlangOTP">--enable-ethread-pre-pentium4-compatibility had no effect. This option is now also automatically enabled if required on the build machine.

@@ -5433,7 +5433,7 @@ platforms than before. If configure warns about no atomic implementation available, try using the libatomic_ops library. Use the --with-libatomic_ops=PATH + marker="doc/installation_guide:INSTALL#Advanced-configuration-and-build-of-ErlangOTP">--with-libatomic_ops=PATH configure command line argument when specifying where the libatomic_ops installation is located. The libatomic_ops library can be downloaded from: @@ -5451,7 +5451,7 @@ the pentium 4 processor. If you want the runtime system to be compatible with older processors (back to 486) you need to pass the --enable-ethread-pre-pentium4-compatibility + marker="doc/installation_guide:INSTALL#Advanced-configuration-and-build-of-ErlangOTP">--enable-ethread-pre-pentium4-compatibility configure command line argument when configuring the system.

-- cgit v1.2.3 From 77da984614ae462912a1896ba1bb73c798ffd4f8 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 19 Jun 2014 13:47:21 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 148 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 6b3e41c1f2..68875fe56f 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,154 @@

This document describes the changes made to the ERTS application.

+
Erts 6.1 + +
Fixed Bugs and Malfunctions + + +

The documentation for spawn_opt/5 now has a + note mentioning that the monitor option is not + supported.

+

+ Own Id: OTP-11849

+
+ +

+ Fix broken system monitoring of large_heap for + non-smp VM. No message for large_heap was ever + sent on non-smp VM. Bug exist since R16B.

+

+ 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 erts-6.0.

+

+ 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 -eval option when + invoking erl would not be properly translated from + UTF-8 to a list of Unicode characters (as would the + arguments for -run).

+

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 erlang:bitstr_to_list/1 and + erlang:list_to_bitstr/1. They were added by + mistake, and have always raised an undefined + exception when called.

+

+ 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 send trace events were + erroneously dropped when the send was done to a + registered process. This bug was introduced in R16B.

+

+ Own Id: OTP-11968

+
+
+
+ + +
Improvements and New Features + + +

The following native functions now bump an appropriate + amount of reductions and yield when out of + reductions:

+ erlang:binary_to_list/1 + erlang:binary_to_list/3 + erlang:bitstring_to_list/1 + erlang:list_to_binary/1 + erlang:iolist_to_binary/1 + erlang:list_to_bitstring/1 + binary:list_to_bin/1 +

Characteristics impact:

+ Performance The functions converting + from lists got a performance loss for very small lists, + and a performance gain for very large lists. + Priority Previously a process executing + one of these functions effectively got an unfair priority + boost. This priority boost depended on the input size. + The larger the input was, the larger the priority boost + got. This unfair priority boost is now lost. + +

+ 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 + binary_to_term/1, and binary_to_term/2. + This improves the performance of these BIFs especially + when they are called with small binaries as input.

+

+ 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

+
+
+
+ +
+
Erts 6.0.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From dba1d881f3232a939c6620f5fd6b4a97ff454bee Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 1 Jul 2014 13:58:47 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 68875fe56f..5f39822712 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,23 @@

This document describes the changes made to the ERTS application.

+
Erts 6.1.1 + +
Fixed Bugs and Malfunctions + + +

+ Fixed ETHR_FORCE_INLINE which caused the build to break + on some platforms without adequate thread support + (VxWorks).

+

+ Own Id: OTP-12010

+
+
+
+ +
+
Erts 6.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 41d2dc56d5d2a3be1ba59c6999e1003360b1e308 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 10 Jul 2014 10:45:27 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 5f39822712..086d29c668 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,25 @@

This document describes the changes made to the ERTS application.

+
Erts 6.1.2 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+
+
+ +
+
Erts 6.1.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 65e335e255cb76d979f605ed34700e4e02041139 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 22 Jul 2014 18:01:29 +0200 Subject: Update release notes --- erts/doc/src/notes.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 8c008c493e..2fe8879b93 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,27 @@

This document describes the changes made to the ERTS application.

+
Erts 5.10.4.1 + +
Known Bugs and Problems + + +

+ When using gen_tcp:connect and the fd option with + port and/or ip, the port and + ip options were ignored. This has been fixed so + that if port and/or ip is specified + together with fd a bind is requested for that + fd. If port and/or ip is not + specified bind will not be called.

+

+ Own Id: OTP-12061

+
+
+
+ +
+
Erts 5.10.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 62081266545df8f5eda8e2043f33055cfe575126 Mon Sep 17 00:00:00 2001 From: Henrik Nord Date: Fri, 25 Jul 2014 09:11:35 +0200 Subject: fix xml file merge messup --- erts/doc/src/notes.xml | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 50de3c5d4d..5c4bb3ed25 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -940,6 +940,12 @@ Thanks to Matwey V. Kornilov

Own Id: OTP-11829

+ + +
+ +
+
Erts 5.10.4.1
Known Bugs and Problems -- cgit v1.2.3 From 950d808c97a4c5b579f4f1cc16b95f2d419d3505 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 15 Sep 2014 12:02:14 +0200 Subject: Update release notes --- erts/doc/src/notes.xml | 170 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 5c4bb3ed25..743369951f 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,176 @@

This document describes the changes made to the ERTS application.

+
Erts 6.2 + +
Fixed Bugs and Malfunctions + + +

+ 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 nosuspend + feature was used, always failed to send to the port. This + bug was introduced in ERTS version 5.10.

+

In order for this bug to be triggered on a port, one + had to at least once utilize the nosuspend + functionality when passing a signal to the port. This by + either calling

port_command(Port, + Data, [nosuspend | Options]), + erlang:send(Port, {PortOwner, + {command, Data}}, [nosuspend | Options]), + erlang:send_nosuspend(Port, + {PortOwner, {command, Data}}), or + erlang:send_nosuspend(Port, + {PortOwner, {command, Data}}, Options). + +

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 +swct command line + argument under +sws.

+

+ Own Id: OTP-12102 Aux Id: OTP-10994

+
+ +

+ Profiling messages could be delivered out of order when + profiling on runnable_procs and/or + runnable_ports using erlang:system_profile/2. + This bug was introduced in ERTS version 5.10.

+

+ 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 MIN_SMALL by + list_to_integer/1 and binary_to_integer/1. + The bug produced an unnormalized bignum which can cause + strange behavior such as comparing different to a correct + MIN_SMALL integer. The value MIN_SMALL is + -(1 bsl 27) = -134217728 on a 32-bit VM and -(1 + bsl 59) = -576460752303423488 on a 64-bit VM. (Thanks + to Jesper Louis Andersen, Mikael Pettersson and Anthony + Ramine for report, patch and optimization suggestion)

+

+ Own Id: OTP-12140

+
+ +

+ Fix bug in term_to_binary that reallocates binary + with inconsistent size information. Bug has never been + confirmed to be the cause of any faulty behavior.

+

+ 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

+
+
+
+ + +
Improvements and New Features + + +

+ Add log2 histogram to lcnt for lock wait time

+

+ Own Id: OTP-12059

+
+ +

+ Introduced enif_schedule_nif() + to the NIF API.

+

+ The enif_schedule_nif() function allows a + long-running NIF to be broken into separate NIF + invocations without the help of a wrapper function + written in Erlang. The NIF first executes part of the + long-running task, then calls enif_schedule_nif() + to schedule a NIF for later execution to continue the + task. Any number of NIFs can be scheduled in this manner, + one after another. Since the emulator regains control + between invocations, this helps avoid problems caused by + native code tying up scheduler threads for too long.

+

+ The enif_schedule_nif() function also replaces the + enif_schedule_dirty_nif() in the experimental + dirty NIF API. Note that the only incompatible changes + made are in the experimental dirty NIF API.

+

+ See the NIF + documentation for more information.

+

+ Thanks to Steve Vinoski.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-12128

+
+
+
+ +
+
Erts 6.1.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From f482c5cc6dc4c23d39319586c3e1049e859a6f01 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 4 Nov 2014 12:21:27 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 743369951f..7bc39fd351 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,31 @@

This document describes the changes made to the ERTS application.

+
Erts 6.2.1 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+
+
+ +
+
Erts 6.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 7f3486a5ddc02a366f2945dfd009c4a2697a2b98 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 9 Dec 2014 15:21:47 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 252 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 7bc39fd351..c896ee0cae 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,258 @@

This document describes the changes made to the ERTS application.

+
Erts 6.3 + +
Fixed Bugs and Malfunctions + + +

+ 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 + erlang:port_get_data/1 if the port was closed by a + concurrent process. Also fix fatal bug if + port_set_data/2 is called with a non-immediate + data term. Both bugs exist since R16B01.

+

+ 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 nif_version to erlang:system_info/1 in + order to get the NIF API version of the runtime system in + a way similar to driver_version.

+

+ 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

+
+
+
+ + +
Improvements and New Features + + +

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 erl + command line argument: +secio true

+

Characteristics impact when enabled:

+ Lower latency and smoother management of externally + triggered I/O operations. A slightly reduced + priority of externally triggered I/O operations. + +

+ 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 libatomic_ops + library. Most importantly support for use of native + double word atomics when implemented by + libatomic_ops (for example, implemented for ARM).

+

+ The $ERL_TOP/HOWTO/INSTALL.md + document now also more clearly describes when you want to + build together with a libatomic_ops installation.

+

+ 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

+
+
+
+ +
+
Erts 6.2.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From cd450ec99350bff295c42252b191687fee415c7a Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 30 Jan 2015 16:57:04 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index c896ee0cae..af0d4d7377 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,65 @@

This document describes the changes made to the ERTS application.

+
Erts 6.3.1 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+
+
+ +
+
Erts 6.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 62870c998955e1498e71bfc90607885e96ecaa27 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 31 Mar 2015 12:24:04 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index af0d4d7377..a2b4ae49a4 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,98 @@

This document describes the changes made to the ERTS application.

+
Erts 6.4 + +
Fixed Bugs and Malfunctions + + +

+ Fix missing quotation in the LM_FIND_EMU_CC + autoconf macro which could cause build failures.

+

+ 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 port_control/3 if the port that was being + accessed died during the call to 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 port_info/1 could + cause a memory fault has been fixed.

+

+ 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 list_to_integer/1 for very long lists + that could cause VM crash.

+

+ Own Id: OTP-12624

+
+
+
+ + +
Improvements and New Features + + +

+ 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

+
+
+
+ +
+
Erts 6.3.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 512f099b247b17b3145e90293167a4ba373b9471 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 6 May 2015 10:46:46 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index a2b4ae49a4..35e6e55e72 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,22 @@

This document describes the changes made to the ERTS application.

+
Erts 6.4.1 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+
+
+ +
+
Erts 6.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 738c34d4bb8f1a3811acd00af8c6c12107f8315b Mon Sep 17 00:00:00 2001 From: Bruce Yinhe Date: Thu, 18 Jun 2015 11:31:02 +0200 Subject: Change license text to APLv2 --- erts/doc/src/notes.xml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 35e6e55e72..2574d45184 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -8,16 +8,17 @@ Ericsson AB. All Rights Reserved. - The contents of this file are subject to the Erlang Public License, - Version 1.1, (the "License"); you may not use this file except in - compliance with the License. You should have received a copy of the - Erlang Public License along with this software. If not, it can be - retrieved online at http://www.erlang.org/. - - Software distributed under the License is distributed on an "AS IS" - basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See - the License for the specific language governing rights and limitations - under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. -- cgit v1.2.3 From 2955ddebc32837b66d9bacb4e925ad0ed0033168 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 23 Jun 2015 10:24:26 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 703 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 703 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 2574d45184..2d96ed6105 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,709 @@

This document describes the changes made to the ERTS application.

+
Erts 7.0 + +
Fixed Bugs and Malfunctions + + +

+ 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 write_concurrency + locks to improve performance by reduced false sharing. + May increase memory footprint for tables with + write_concurrency.

+

+ 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 + binary_to_term or messages from remote nodes.

+

+ Own Id: OTP-12554

+
+ +

+ Ensure hashing of zero is consistent

+

Erlang treats positive and negative zero as + equal:

+

+ true = 0.0 =:= 0.0/-1

+

However, Erlangs hash functions: hash, phash and + phash2 did not reflect this behaviour. The hash values + produced by the different hash functions would not be + identical for positive and negative zero.

This + change ensures that hash value of positive zero is always + produced regardless of the signedness of the zero float, + i.e.,

+

+ true = erlang:phash2(0.0) =:= + erlang:phash2(0.0/-1)

+

+ 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 file:sendfile for FreeBSD causing not + the entire file to be sent.

+

+ Own Id: OTP-12720

+
+ +

+ Fix the broken Android support in erl_child_setup.c

+

+ Own Id: OTP-12751

+
+ +

+ Faulty statistics reported by the fix_alloc + allocator.

+

+ 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 start() + erroneously stated that a return value of + ERL_DRV_ERROR_ERRNO caused the error value to be + passed via erl_errno when it should have been + errno.

+

+ Own Id: OTP-12855

+
+
+
+ + +
Improvements and New Features + + +

+ Add md5 and module entries to + ?MODULE:module_info/0/1 and remove obsolete entry + 'import'.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-11940

+
+ +

+ Debug function erlang:display/1 shows content of + binaries and bitstrings, not only the length.

+

+ Own Id: OTP-11941

+
+ +

The time functionality of Erlang has been extended. + This both includes a new + API for time, as well as time warp + modes which alters the behavior of the system + when system time changes. You are strongly encouraged + to use the new API instead of the old API based on + erlang:now/0. + erlang:now/0 has been deprecated since it is and + forever will be a scalability bottleneck. For more + information see the Time and Time + Correction chapter of the ERTS User's + Guide.

+

Besides the API changes and time warp modes a lot of + scalability and performance improvements regarding time + management has been made internally in the runtime + system. Examples of such improvements are scheduler + specific timer wheels, scheduler specific BIF timer + management, parallel retrieval of monotonic time and + system time on systems with primitives that are not + buggy.

+

+ Own Id: OTP-11997

+
+ +

erlang:function_exported(M, F, A) will now + return true if M:F/A refers to a BIF.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-12099

+
+ +

+ New BIF: erlang:get_keys/0, lists all keys + associated with the process dictionary. Note: + erlang:get_keys/0 is auto-imported.

+

+ *** 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 erl + command line argument: +secio false

+

Characteristics impact compared to previous + default:

Lower latency and smoother + management of externally triggered I/O operations. + A slightly reduced priority of externally triggered + I/O operations. +

+ 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 ets:take/2. Works the same as + ets:delete/2 but also returns the deleted + object(s).

+

+ 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 gcc's builtins for atomic memory + access. These are used when no other implementation of + atomic memory operations is available. For example, when + compiling for ARM when libatomic_ops is not + available.

+

+ The largest improvement will be seen when compiling with + a gcc with support for the __atomic_* + builtins (using a gcc of at least version 4.7), + but also when only the legacy __sync_* builtins + are available (using a gcc of at least version + 4.1) an improvement can be seen.

+

+ For more information see the "Atomic + Memory Operations and the VM" section of + $ERL_TOP/HOWTO/INSTALL.md.

+

+ Own Id: OTP-12383

+
+ +

+ Introduce math:log2/1 function to math module.

+

+ 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 erl_parse:type_inop_prec() and + erl_parse:type_preop_prec() can be used for + inserting parentheses where needed.

+

+ 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

+
+ +

zlib:inflateChunk/2 has been added. It works + like zlib:inflate/2, but decompresses no more data + than will fit in the buffer configured by + zlib:setBufSize/2.

+

+ 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 gb_trees or + dict for instance. Any other impacts will be + transparent for the user except for the following + changes.

+

Semantics of Maps have changed in two incompatible + ways compared to the experimental implementation in OTP + 17:

Hashing of maps is done different by + erlang:phash2/1,2, erlang:phash/1 and + erlang:hash/2. Comparing two maps + with ==, /=, =<, <, >= and >, is done + different if the keys contain floating point + numbers. +

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-12585

+
+ +

+ Scalability improvement for erlang:make_ref/0, + and other functionality that create references. Each + scheduler now manage its own set of references. By this + no communication at all is needed when creating + references.

+

+ Previous implementation generated a strictly + monotonically increasing sequence of references + corresponding to creation time on the runtime system + instance. This is not the case with current + implementation. You can only expect reference to be + unique. The Erlang/OTP documentation has never mentioned + anything else but the uniqueness property, so this change + is fully compatible. The only reason we've + marked this as a potential incompatibility is since an + early draft for an Erlang specification mentions strict + monotonicity as a property.

+

+ If you need to create data with a strict monotonicity + property use erlang:unique_integer([monotonic]). + Do not use the deprecated erlang:now().

+

+ *** 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 (receive ... after), port timers + (driver_set_timer()) as well as BIF timers + (erlang:send_after()/erlang:start_timer()).

+

+ Each scheduler thread now has its own lock-free timer + service instead of one locked central service. This + dramatically improves performance of timer management on + systems with a large amount of schedulers and timers.

+

+ The timer service internal data structure has also been + optimized to be able to handle more timers than before. + That is, each timer service is by its self able to handle + more timers without dramatic performance loss than the + old centralized timer service.

+

+ The API of BIF timers has also been extended. Timeout + values are for example no longer limited to 32-bit + integers. For more information see the documentation of + erlang:start_timer/4, + erlang:send_after/4, + erlang:cancel_timer/2, + and erlang:read_timer/2.

+

+ Characteristics impact: Calls to the synchronous versions + of erlang:cancel_timer(), and + erlang:read_timer() may take substantially longer + time to complete than before. This occur when the timer + that is accessed is managed by a remote scheduler. You + typically want to use the new asynchronous option in + order to avoid blocking the calling process.

+

+ Own Id: OTP-12650 Aux Id: OTP-11997

+
+ +

+ Specialize instructions from common assembler patterns

+

Specialize common instructions of rem, + band, minus and plus in the beam + loader. This will reduce the number of fetches and thus + lessen the instruction dispatch pressure during runtime + and speed up those operations in some common cases.

+

Specialize move patterns from x-registers to the stack + with a new move_window instruction. This change + will reduce instruction dispatch pressure.

+

+ 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 + "~s~n". This changes it to a format string + containing ~p with the respective values as + arguments.

+

+ 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 enif_raise_exception to allow a NIF + to raise an error exception with any type of reason.

+

+ 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 + +zdntgc + command line argument.

+

+ Characteristics impact: The tables can grow to very large + sizes with unused entries if the node is get huge amounts + of short lived connections from other nodes. This problem + can be alleviated by shortening the length of the delay + using the +zdntgc command line argument.

+

+ Own Id: OTP-12802

+
+ +

Improved implementation of erlang:statistics(io) + in order to reduce contention between schedulers.

+

Characteristics impact: The actual call to + erlang:statistics(io) takes longer time to + complete, but the overall impact on the system is + improved.

+

+ 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

+
+
+
+ +
+
Erts 6.4.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 0dedcdefde3f5601453ab12faf2a65b616118333 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 25 Jun 2015 14:28:54 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 35e6e55e72..adc73ceae0 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,32 @@

This document describes the changes made to the ERTS application.

+
Erts 6.4.1.1 + +
Fixed Bugs and Malfunctions + + +

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

+
+
+
+ +
+
Erts 6.4.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From c97e4fb7f534d4c206e0446ddeeec0f47c57f81c Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 30 Jun 2015 11:53:41 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 2d96ed6105..64de3aa622 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,22 @@

This document describes the changes made to the ERTS application.

+
Erts 7.0.1 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+
+
+ +
+
Erts 7.0
Fixed Bugs and Malfunctions -- cgit v1.2.3 From fb8d80f91ebfc328c3229a5908c3b4d527bfc1e6 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 6 Jul 2015 21:14:34 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index adc73ceae0..5682b9254c 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,29 @@

This document describes the changes made to the ERTS application.

+
Erts 6.4.1.2 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+
+
+ +
+
Erts 6.4.1.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 5d6aea209c3dafa1bfdb35ea559809185b060bfa Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 8 Jul 2015 20:31:29 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 64de3aa622..ab6291614c 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,82 @@

This document describes the changes made to the ERTS application.

+
Erts 7.0.2 + +
Fixed Bugs and Malfunctions + + +

+ 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 + --enable-prefer-elapsed-monotonic-time-during-suspend + to configure when building Erlang/OTP. The + configuration stage will try to find such a clock source, + but might not be able to find it. Note that there might + be a performance penalty associated with such a clock + source.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-12895

+
+ +

+ erlang:system_info(end_time) returned a faulty + value on 32-bit architectures.

+

+ Own Id: OTP-12896

+
+
+
+ + +
Improvements and New Features + + +

+ The configure command line argument + --enable-gettimeofday-as-os-system-time has been + added which force usage of gettimeofday() for OS + system time. This will improve performance of + os:system_time() and os:timestamp() on + MacOS X, at the expense of worse accuracy, resolution and + precision of Erlang monotonic time, Erlang system time, + and OS system time.

+

+ Own Id: OTP-12892

+
+
+
+ +
+
Erts 7.0.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 0dcd7fc911e4c0b6eca255e9bcfb0e58654326bf Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 18 Aug 2015 16:39:13 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index ab6291614c..bed1ac463d 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,29 @@

This document describes the changes made to the ERTS application.

+
Erts 7.0.3 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+
+
+ +
+
Erts 7.0.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From fa30eeeb6f54bb0421a76a321f77b9163dca8de9 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 7 Sep 2015 17:49:29 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 5682b9254c..cc224bee49 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,23 @@

This document describes the changes made to the ERTS application.

+
Erts 6.4.1.3 + +
Fixed Bugs and Malfunctions + + +

+ When tracing with process_dump option, the VM + could abort if there was an ongoing binary match + somewhere in the call stack of the traced process./

+

+ Own Id: OTP-12968

+
+
+
+ +
+
Erts 6.4.1.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 6738d356a279835222b951fd213ed4cf9897eb7e Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 21 Sep 2015 17:09:23 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 123 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index bed1ac463d..e51cf93cf7 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -31,6 +31,129 @@

This document describes the changes made to the ERTS application.

+
Erts 7.1 + +
Fixed Bugs and Malfunctions + + +

+ Fix bug in ETS that could cause stray objects marked for + deletion to occasionally be missed by the cleanup done by + safe_fixtable(_,false).

+

+ 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 maps:merge/2 when called by hipe + compiled code that could cause vm crash. Bug exists since + erts-7.0 (OTP 18.0).

+

+ Own Id: OTP-12965

+
+ +

+ When tracing with process_dump option, the VM + could abort if there was an ongoing binary match + somewhere in the call stack of the traced process.

+

+ 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 binary_to_integer to throw badarg for "+" and + "-" similar to list_to_integer.

+

+ Own Id: OTP-12988

+
+ +

+ Suppress warning of unused argument when using macro + enif_make_pid.

+

+ Own Id: OTP-12989

+
+
+
+ + +
Improvements and New Features + + +

+ Changed default clock source used for OS system time on + MacOS X to gettimeofday() in order to improve + performance. The system can be configured during build to + use the previously used higher resolution clock source by + passing the switch --with-clock-resolution=high + when configuring the build.

+

+ Own Id: OTP-12945 Aux Id: OTP-12892

+
+ +

+ Added the configure option --disable-saved-compile-time + which disables saving of compile date and time in the + emulator binary.

+

+ Own Id: OTP-12971

+
+
+
+ +
+
Erts 7.0.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 5ae78de4e4f6e220e29ad2f54b95a0098da4b365 Mon Sep 17 00:00:00 2001 From: Hans Bolinder Date: Mon, 12 Oct 2015 12:12:27 +0200 Subject: [erts] Correct documentation Fix mistakes found by 'xmllint'. --- erts/doc/src/notes.xml | 49 ++++++++++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 21 deletions(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 3f6d5b1d89..f27e73b9d3 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -4,7 +4,7 @@
- 20042013 + 20042015 Ericsson AB. All Rights Reserved. @@ -708,19 +708,20 @@

- 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 gb_trees or dict for instance. Any other impacts will be transparent for the user except for the following changes.

-

Semantics of Maps have changed in two incompatible +

Semantics of Maps have changed in two incompatible ways compared to the experimental implementation in OTP 17:

Hashing of maps is done different by erlang:phash2/1,2, erlang:phash/1 and @@ -1368,7 +1369,7 @@

Improved support for atomic memory operations provided by the libatomic_ops + href="https://github.com/ivmai/libatomic_ops/">libatomic_ops library. Most importantly support for use of native double word atomics when implemented by libatomic_ops (for example, implemented for ARM).

@@ -2335,22 +2336,28 @@

EEP43: New data type - Maps

- With Maps you may for instance: M0 = - #{ a => 1, b => 2}, % create - associations M1 = M0#{ a := 10 }, % - update values M2 = M1#{ "hi" => - "hello"}, % add new associations #{ - "hi" := V1, a := V2, b := V3} = M2. % match keys with - values

+ With Maps you may for instance:

+ + M0 = #{ a => 1, b => 2}, % create + associations + M1 = M0#{ a := 10 }, % update values + M2 = M1#{ "hi" => + "hello"}, % add new associations + #{ "hi" := V1, a := V2, b := V3} = M2. + % match keys with values +

For information on how to use Maps please see Map Expressions in the Reference Manual.

The current implementation is without the following - features: No variable keys - No single value access No map - comprehensions

+ features:

+ + No variable keys + No single value access + No map comprehensions +

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:

-

- If primary archive was named "xxx", then a + If primary archive was named "xxx", then a file in the same directory named "xxxyyy" would be interpreted as a file named "yyy" inside the archive. erl_prim_loader did not correctly create @@ -4526,7 +4532,8 @@ erl_prim_loader:list_dir/1 would sometimes return an empty string inside the file list. This was a virtual element representing the top directory of the archive. - This has been removed.

+ This has been removed.
+

Thanks to Tuncer Ayaz and Shunichi Shinohara for reporting and co-authoring corrections.

@@ -6969,12 +6976,12 @@ Own Id: OTP-8726 Aux Id: seq11617

-

Fix 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

-- cgit v1.2.3 From ad50eefb67a69d755d46126bf5e436bf85644c8b Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 3 Dec 2015 11:11:17 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index cc224bee49..a64d699cec 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,25 @@

This document describes the changes made to the ERTS application.

+
Erts 6.4.1.4 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+
+
+ +
+
Erts 6.4.1.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 6fd3aba6bc714b779c5c91ed998a7661190ec882 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 4 Dec 2015 15:13:14 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index a64d699cec..9ff2e5de08 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,22 @@

This document describes the changes made to the ERTS application.

+
Erts 6.4.1.5 + +
Fixed Bugs and Malfunctions + + +

+ Fixed a bug that could cause a crash dump to become + almost empty.

+

+ Own Id: OTP-13150

+
+
+
+ +
+
Erts 6.4.1.4
Fixed Bugs and Malfunctions -- cgit v1.2.3 From f4a0ae1736216feac5ae053610644bba2e12ed34 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 15 Dec 2015 09:45:27 +0100 Subject: Update release notes --- erts/doc/src/notes.xml | 105 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 5a65115cb2..5cb9bdb690 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,6 +32,111 @@

This document describes the changes made to the ERTS application.

+
Erts 7.2 + +
Fixed Bugs and Malfunctions + + +

+ 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

+
+ +

erl_prim_loader has not supported custom + loaders for several releases. In the documentation for + erl_prim_loader, all references to custom loaders + have now been removed.

+

+ 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

+
+
+
+ + +
Improvements and New Features + + +

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

+
+
+
+ +
+
Erts 7.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From a96f36890da959bcb134ac4f6d24d5132e7bb5be Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 17 Dec 2015 14:53:04 +0100 Subject: Update release notes --- erts/doc/src/notes.xml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 5cb9bdb690..a726cc7b97 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,6 +32,27 @@

This document describes the changes made to the ERTS application.

+
Erts 7.2.1 + +
Fixed Bugs and Malfunctions + + +

+ Revert "Fix erroneous splitting of emulator path"

+

+ Own Id: OTP-13202

+
+ +

+ Fix HiPE enabled emulator for FreeBSD.

+

+ Own Id: OTP-13204 Aux Id: pr926

+
+
+
+ +
+
Erts 7.2
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 0f8afe80c6582f7affd17f36dc9cb48cc7946713 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 14 Mar 2016 10:46:23 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 186 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index a726cc7b97..acd816a81c 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,6 +32,192 @@

This document describes the changes made to the ERTS application.

+
Erts 7.3 + +
Fixed Bugs and Malfunctions + + +

+ 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 call_time tracing functionality internally + used a time based on OS system time in order to measure + call time which could cause erroneous results if OS + system time was changed during tracing.

+

+ This functionality now use Erlang monotonic time in order + to measure time. Besides fixing the erroneous results due + to OS system time being used, the results are often also + better since Erlang monotonic time often has better + accuracy and precision.

+

+ 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 erlang:halt/1,2 for large exit status + values, causing either badarg (on 32-bit) or exit + with a crash dump and/or core dump (on 64-bit). Make + erlang:halt/1,2 tolerate any non negative integer + as exit status and truncate high order bits if the OS + does not support it.

+

+ Own Id: OTP-13251 Aux Id: ERL-49

+
+ +

+ gen_tcp:accept/2 + was not time + warp safe. This since it used the same time as + returned by erlang:now/0 + when calculating timeout. This has now been fixed.

+

+ 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 + process_info(P,current_location) to crash emulator + for hipe compiled modules.

+

+ 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 garbage_collect/[1,2] or + check_process_code/[2,3] from a process with a + higher priority than the priority of the process operated + on, the run queues could end up in an inconsistent state. + This bug has now been fixed.

+

+ 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 configure test, run when + building OTP, now detects whether the workaround should + be used or not.

+

+ Own Id: OTP-13326 Aux Id: ERL-80

+
+
+
+ + +
Improvements and New Features + + +

Introduced new statistics functionality in order to + more efficiently retrieve information about run able and + active processes and ports. For more information see:

+ statistics(total_run_queue_lengths) + statistics(run_queue_lengths) + statistics(total_active_tasks) + statistics(active_tasks) + +

+ Own Id: OTP-13201

+
+ +

+ Time warp safety improvements.

+

+ Introduced the options monotonic_timestamp, and + strict_monotonic_timestamp to the trace, + sequential trace, and system profile functionality. This + since the already existing timestamp option is not + time warp safe.

+

+ Introduced the option safe_fixed_monotonic_time to + ets:info/2 and dets:info/2. This since the + already existing safe_fixed option is not time + warp safe.

+

+ 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

+
+
+
+ +
+
Erts 7.2.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 6664eed554974336909d3ffe03f20349cc4c38fd Mon Sep 17 00:00:00 2001 From: Henrik Nord Date: Tue, 15 Mar 2016 15:19:56 +0100 Subject: update copyright-year --- erts/doc/src/notes.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index acd816a81c..9e0cf2354f 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -4,7 +4,7 @@
- 20042015 + 20042016 Ericsson AB. All Rights Reserved. -- cgit v1.2.3 From 7765727317721d5de5949a5f39e0211f3b920da7 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Fri, 1 Apr 2016 20:19:12 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index acd816a81c..7ccddf4ff0 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,6 +32,71 @@

This document describes the changes made to the ERTS application.

+
Erts 7.3.1 + +
Fixed Bugs and Malfunctions + + +

+ process_info(Pid, last_calls) did not work for + Pid /= self().

+

+ 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 + erlang:port_* BIFs could potentially end up in an + inconsistent state if the port terminated during the + communication. When this occurred the process could later + block in a receive even though it had messages + matching in its message queue.

+

+ This bug was introduced in erts version 5.10 (OTP R16A).

+

+ 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 process_flag(trap_exit,true) and + a received exit signal.

+

+ A process could terminate due to exit signal even though + process_flag(trap_exit,true) had returned. A very + specific timing between call to process_flag/2 and + exit signal from another scheduler was required for this + to happen.

+

+ Own Id: OTP-13452

+
+
+
+ +
+
Erts 7.3
Fixed Bugs and Malfunctions -- cgit v1.2.3 From bd64ad8e15d66e48b36dbe3584315dd5cfc8b59a Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Wed, 11 May 2016 17:22:23 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 625 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 625 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 7501ccd9ce..7d39461f10 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,6 +32,631 @@

This document describes the changes made to the ERTS application.

+
Erts 8.0 + +
Fixed Bugs and Malfunctions + + +

The handling of on_load functions has been + improved. The major improvement is that if a code upgrade + fails because the on_load function fails, the + previous version of the module will now be retained.

+

+ Own Id: OTP-12593

+
+ +

is_builtin(erlang, apply, 3) will now return + true.

+

+ Own Id: OTP-13034

+
+ +

+ Fix enif_get_list_length to return false if list + is improper or have length larger than UINT_MAX + (did return true and an incorrect length value).

+

+ 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 process_flag(trap_exit,true) and + a received exit signal.

+

+ A process could terminate due to exit signal even though + process_flag(trap_exit,true) had returned. A very + specific timing between call to process_flag/2 and + exit signal from another scheduler was required for this + to happen.

+

+ Own Id: OTP-13452

+
+ +

Don't search for non-existing Map keys twice

+

For maps:get/2,3 and maps:find/2, + searching for an immediate key, e.g. an atom, in a small + map, the search was performed twice if the key did not + exist.

+

+ 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 erlang:process_info/2 type specification

+

+ Own Id: OTP-13485 Aux Id: ERL-123

+
+ +

+ Fix bug in open_port/2 with option {args, + List}. A vm crash could be caused by an improper + List.

+

+ Own Id: OTP-13489 Aux Id: ERL-127

+
+ +

+ Don't crash on terminating processes with + erlang:system_profile/1,2

+

+ 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 EPMD_DUMP_REQ + response.

+

+ 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

+
+
+
+ + +
Improvements and New Features + + +

+ The tracing support has been extended to allow a tracer module to be the + trace event handler instead of a process or port. The + tracer module + makes it possible for trace tools to filter or manipulate + trace event data without the trace event first haing to + be copied from the traced process or port.

+

+ With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns + the tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases.

+

+ *** 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 --with-dynamic-trace=lttng.

+

+ This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool.

+

For a list of all tracepoints, see Runtime Tools User's + Guide .

+

+ 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 erlang:statistics(microstate_accounting, + _) and the msacc module in + runtime_tools.

+

+ 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 + --enable-sharing-preserving. This will preserve + sharing, within the process, when communication with + other processes in the Erlang node. There is a trade-off, + the copy is more costly but this cost can be reclaimed if + there is a lot of sharing in the message. With this + feature enabled literals will not be copied in a send + except during a purge phase of the module where the + literals are located.

+

+ Own Id: OTP-12590 Aux Id: OTP-10251

+
+ +

+ Halfword BEAM has been removed.

+

+ Own Id: OTP-12883

+
+ +

+ Added os:perf_counter/1.

+

+ The perf_counter is a very very cheap and high resolution + timer that can be used to timestamp system events. It + does not have monoticity guarantees, but should on most + OS's expose a monotonous time.

+

+ 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 erlang:port_info/1 by using the + erl_drv_set_pid function. For more details see the + erl_driver documentation.

+

+ Own Id: OTP-13087

+
+ +

+ The functionality behind erlang:open_port/2 when + called with spawn or spawn_executable has been redone so + that the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and does + not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have shown + this approach to be about 3-5 times as fast as the old + approach where the fork/vfork was done by erts. This is a + pure stability and performance fix, however some error + messages may have changed, which is why it is marked as a + backwards incompatible change.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13088

+
+ +

Improved yielding strategy in the implementation of + the following native functions:

+ erlang:binary_to_list/1 + erlang:binary_to_list/3 + erlang:bitstring_to_list/1 + erlang:list_to_binary/1 + erlang:iolist_to_binary/1 + erlang:list_to_bitstring/1 + binary:list_to_bin/1

This + in order to improve performance of these functions.

+

+ 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 'code' module. The + functions are code:atomic_load/1, + code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1.

+

+ Own Id: OTP-13111

+
+ +

The function erl_prim_loader:start/3 has been + removed. Its documentation has also been removed.

+

The undocumented and unsupported function + erl_prim_loader:get_files/2 has been removed.

+

+ Own Id: OTP-13112

+
+ +

+ Low level BIF erlang:purge_module/1 is made more + robust against incorrect use. Lingering processes that + still refer the old code are now killed before the module + is purged to prevent fatal VM behavior.

+

+ Own Id: OTP-13122

+
+ +

+ Improved dirty scheduler implementation. For more + information see the NIF documentation.

+

+ Note that support for determining whether dirty NIF + support exist or not at compile time using the C + preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT + has been removed.

+

+ 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 -fvisibility=hidden for faster loading + and more optimized code.

+

+ Own Id: OTP-13227

+
+ +

+ Add erlang:process_info(Pid, + garbage_collection_info) which returns extended + garbage_collection information. For more details see the + documentation.

+

+ Own Id: OTP-13265

+
+ +

+ The functions erlang:list_to_integer/1 and + string:to_integer/1 have been optimized for large + inputs.

+

+ 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 process_flag(message_queue_data, + MQD).

+

+ 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:

+

+ enif_cpu_time + enif_now_time + enif_make_unique_integer + enif_is_process_alive + enif_is_port_alive + enif_term_to_binary + enif_binary_to_term + enif_port_command +

+

+ for details of what each function does, see the erl_nif + documentation.

+

+ Own Id: OTP-13442

+
+ +

+ Optimize '++' operator and lists:append/2 + by using a single pass to build a new list while checking + for properness.

+

+ 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 erlang:trace/3 has + been extended so that 'all', 'existing' and + 'new' now include both processes and ports. New + Tracee variants, 'all_processes', + 'all_ports', 'existing_processes' etc have + been added to specify only processes or ports.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13496

+
+ +

+ When the 'procs' trace flag is enabled, a + 'spawned' trace event is now also generated by a + newly created process. The previous event 'spawn' + remains, but as it is generated by the process that did + the spawn, it is not guaranteed that it is ordered with + other trace events from the newly spawned process. So + when tracking the lifetime of a process this new event + should be used as the creation event.

+

+ This new trace event is marked as an incompatabiliy + because tools that expect certain trace events when + enabling 'procs' will have to updated.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13497

+
+ +

+ Add the erlang:match_spec_test/3 + function. The functions allows the testing of match + specifications for both tracing and ets tables. It can be + used to test that a match specification does the expected + filtering on specific data. It also returns more verbose + error reasons for incorrectly constructed match + specifications.

+

+ 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 'send' trace message would always + arrive before the corresponding 'receive' trace + message that is no longer always the case. This also + means that timestamped trace messages may seem to arrive + out of order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer.

+

+ Own Id: OTP-13503

+
+ +

+ Add possibility to filter send and receive + trace with match specifications.

+

+ Own Id: OTP-13507

+
+ +

+ Add maps:update_with/3,4 and maps:take/2

+

+ 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 --with-dynamic-trace=lttng.

+

The dynamic trace module dyntrace is now + capable to be used as a LTTng sink for Erlang tracing. + For a list of all tracepoints, see Runtime Tools User's + Guide .

+

This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and + gc_end has been split into gc_minor_start, + gc_minor_end and gc_major_start, + gc_major_end.

+

+ *** 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 erlang:system_info/1. The info for + erts_mmap has been moved from mseg_alloc to + its own section returned by {allocator, + erts_mmap}.

+

+ Own Id: OTP-13560

+
+
+
+ +
+
Erts 7.3.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 663e847459686604ea051f036a0e4caff18cea6f Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 12 May 2016 12:04:14 +0200 Subject: Revert "Prepare release" This reverts commit bd64ad8e15d66e48b36dbe3584315dd5cfc8b59a. --- erts/doc/src/notes.xml | 625 ------------------------------------------------- 1 file changed, 625 deletions(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 7d39461f10..7501ccd9ce 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,631 +32,6 @@

This document describes the changes made to the ERTS application.

-
Erts 8.0 - -
Fixed Bugs and Malfunctions - - -

The handling of on_load functions has been - improved. The major improvement is that if a code upgrade - fails because the on_load function fails, the - previous version of the module will now be retained.

-

- Own Id: OTP-12593

-
- -

is_builtin(erlang, apply, 3) will now return - true.

-

- Own Id: OTP-13034

-
- -

- Fix enif_get_list_length to return false if list - is improper or have length larger than UINT_MAX - (did return true and an incorrect length value).

-

- 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 process_flag(trap_exit,true) and - a received exit signal.

-

- A process could terminate due to exit signal even though - process_flag(trap_exit,true) had returned. A very - specific timing between call to process_flag/2 and - exit signal from another scheduler was required for this - to happen.

-

- Own Id: OTP-13452

-
- -

Don't search for non-existing Map keys twice

-

For maps:get/2,3 and maps:find/2, - searching for an immediate key, e.g. an atom, in a small - map, the search was performed twice if the key did not - exist.

-

- 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 erlang:process_info/2 type specification

-

- Own Id: OTP-13485 Aux Id: ERL-123

-
- -

- Fix bug in open_port/2 with option {args, - List}. A vm crash could be caused by an improper - List.

-

- Own Id: OTP-13489 Aux Id: ERL-127

-
- -

- Don't crash on terminating processes with - erlang:system_profile/1,2

-

- 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 EPMD_DUMP_REQ - response.

-

- 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

-
-
-
- - -
Improvements and New Features - - -

- The tracing support has been extended to allow a tracer module to be the - trace event handler instead of a process or port. The - tracer module - makes it possible for trace tools to filter or manipulate - trace event data without the trace event first haing to - be copied from the traced process or port.

-

- With the introduction of this feature, - erlang:trace(all|existing, _, _) now also returns - the tracer process as part of the number of processes on - which tracing is enabled. The is incompatible with the - previous releases.

-

- *** 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 --with-dynamic-trace=lttng.

-

- This feature introduces tracepoints for schedulers, - drivers, memory carriers, memory and async thread pool.

-

For a list of all tracepoints, see Runtime Tools User's - Guide .

-

- 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 erlang:statistics(microstate_accounting, - _) and the msacc module in - runtime_tools.

-

- 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 - --enable-sharing-preserving. This will preserve - sharing, within the process, when communication with - other processes in the Erlang node. There is a trade-off, - the copy is more costly but this cost can be reclaimed if - there is a lot of sharing in the message. With this - feature enabled literals will not be copied in a send - except during a purge phase of the module where the - literals are located.

-

- Own Id: OTP-12590 Aux Id: OTP-10251

-
- -

- Halfword BEAM has been removed.

-

- Own Id: OTP-12883

-
- -

- Added os:perf_counter/1.

-

- The perf_counter is a very very cheap and high resolution - timer that can be used to timestamp system events. It - does not have monoticity guarantees, but should on most - OS's expose a monotonous time.

-

- 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 erlang:port_info/1 by using the - erl_drv_set_pid function. For more details see the - erl_driver documentation.

-

- Own Id: OTP-13087

-
- -

- The functionality behind erlang:open_port/2 when - called with spawn or spawn_executable has been redone so - that the forking of the new program is done in a separate - process called erl_child_setup. This allows for a much - more robust implementation that uses less memory and does - not block the entire emulator if the program to be - started is on an un-accessible NFS. Benchmarks have shown - this approach to be about 3-5 times as fast as the old - approach where the fork/vfork was done by erts. This is a - pure stability and performance fix, however some error - messages may have changed, which is why it is marked as a - backwards incompatible change.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-13088

-
- -

Improved yielding strategy in the implementation of - the following native functions:

- erlang:binary_to_list/1 - erlang:binary_to_list/3 - erlang:bitstring_to_list/1 - erlang:list_to_binary/1 - erlang:iolist_to_binary/1 - erlang:list_to_bitstring/1 - binary:list_to_bin/1

This - in order to improve performance of these functions.

-

- 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 'code' module. The - functions are code:atomic_load/1, - code:prepare_loading/1, - code:finish_loading/1, and - code:ensure_modules_loaded/1.

-

- Own Id: OTP-13111

-
- -

The function erl_prim_loader:start/3 has been - removed. Its documentation has also been removed.

-

The undocumented and unsupported function - erl_prim_loader:get_files/2 has been removed.

-

- Own Id: OTP-13112

-
- -

- Low level BIF erlang:purge_module/1 is made more - robust against incorrect use. Lingering processes that - still refer the old code are now killed before the module - is purged to prevent fatal VM behavior.

-

- Own Id: OTP-13122

-
- -

- Improved dirty scheduler implementation. For more - information see the NIF documentation.

-

- Note that support for determining whether dirty NIF - support exist or not at compile time using the C - preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT - has been removed.

-

- 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 -fvisibility=hidden for faster loading - and more optimized code.

-

- Own Id: OTP-13227

-
- -

- Add erlang:process_info(Pid, - garbage_collection_info) which returns extended - garbage_collection information. For more details see the - documentation.

-

- Own Id: OTP-13265

-
- -

- The functions erlang:list_to_integer/1 and - string:to_integer/1 have been optimized for large - inputs.

-

- 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 process_flag(message_queue_data, - MQD).

-

- 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:

-

- enif_cpu_time - enif_now_time - enif_make_unique_integer - enif_is_process_alive - enif_is_port_alive - enif_term_to_binary - enif_binary_to_term - enif_port_command -

-

- for details of what each function does, see the erl_nif - documentation.

-

- Own Id: OTP-13442

-
- -

- Optimize '++' operator and lists:append/2 - by using a single pass to build a new list while checking - for properness.

-

- 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 erlang:trace/3 has - been extended so that 'all', 'existing' and - 'new' now include both processes and ports. New - Tracee variants, 'all_processes', - 'all_ports', 'existing_processes' etc have - been added to specify only processes or ports.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-13496

-
- -

- When the 'procs' trace flag is enabled, a - 'spawned' trace event is now also generated by a - newly created process. The previous event 'spawn' - remains, but as it is generated by the process that did - the spawn, it is not guaranteed that it is ordered with - other trace events from the newly spawned process. So - when tracking the lifetime of a process this new event - should be used as the creation event.

-

- This new trace event is marked as an incompatabiliy - because tools that expect certain trace events when - enabling 'procs' will have to updated.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-13497

-
- -

- Add the erlang:match_spec_test/3 - function. The functions allows the testing of match - specifications for both tracing and ets tables. It can be - used to test that a match specification does the expected - filtering on specific data. It also returns more verbose - error reasons for incorrectly constructed match - specifications.

-

- 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 'send' trace message would always - arrive before the corresponding 'receive' trace - message that is no longer always the case. This also - means that timestamped trace messages may seem to arrive - out of order as the timestamp is taken when the event is - triggered and not when it is put in the queue of the - tracer.

-

- Own Id: OTP-13503

-
- -

- Add possibility to filter send and receive - trace with match specifications.

-

- Own Id: OTP-13507

-
- -

- Add maps:update_with/3,4 and maps:take/2

-

- 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 --with-dynamic-trace=lttng.

-

The dynamic trace module dyntrace is now - capable to be used as a LTTng sink for Erlang tracing. - For a list of all tracepoints, see Runtime Tools User's - Guide .

-

This feature also introduces an incompatible change in - trace tags. The trace tags gc_start and - gc_end has been split into gc_minor_start, - gc_minor_end and gc_major_start, - gc_major_end.

-

- *** 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 erlang:system_info/1. The info for - erts_mmap has been moved from mseg_alloc to - its own section returned by {allocator, - erts_mmap}.

-

- Own Id: OTP-13560

-
-
-
- -
-
Erts 7.3.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From e020f75c10410a6943cd055bfa072a2641eab7da Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 2 Jun 2016 10:55:26 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 693 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 693 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 7501ccd9ce..2b2898f0c1 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,6 +32,699 @@

This document describes the changes made to the ERTS application.

+
Erts 8.0 + +
Fixed Bugs and Malfunctions + + +

The handling of on_load functions has been + improved. The major improvement is that if a code upgrade + fails because the on_load function fails, the + previous version of the module will now be retained.

+

+ Own Id: OTP-12593

+
+ +

is_builtin(erlang, apply, 3) will now return + true.

+

+ Own Id: OTP-13034

+
+ +

+ Fix enif_get_list_length to return false if list + is improper or have length larger than UINT_MAX + (did return true and an incorrect length value).

+

+ 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 process_flag(trap_exit,true) and + a received exit signal.

+

+ A process could terminate due to exit signal even though + process_flag(trap_exit,true) had returned. A very + specific timing between call to process_flag/2 and + exit signal from another scheduler was required for this + to happen.

+

+ Own Id: OTP-13452

+
+ +

Don't search for non-existing Map keys twice

+

For maps:get/2,3 and maps:find/2, + searching for an immediate key, e.g. an atom, in a small + map, the search was performed twice if the key did not + exist.

+

+ 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 erlang:process_info/2 type specification

+

+ Own Id: OTP-13485 Aux Id: ERL-123

+
+ +

+ Fix bug in open_port/2 with option {args, + List}. A vm crash could be caused by an improper + List.

+

+ Own Id: OTP-13489 Aux Id: ERL-127

+
+ +

+ Don't crash on terminating processes with + erlang:system_profile/1,2

+

+ 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 EPMD_DUMP_REQ + response.

+

+ 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

+
+
+
+ + +
Improvements and New Features + + +

+ The tracing support has been extended to allow a tracer module to be the + trace event handler instead of a process or port. The + tracer module + makes it possible for trace tools to filter or manipulate + trace event data without the trace event first haing to + be copied from the traced process or port.

+

+ With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns + the tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases.

+

+ *** 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 --with-dynamic-trace=lttng.

+

+ This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool.

+

For a list of all tracepoints, see Runtime Tools User's + Guide .

+

+ 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 erlang:statistics(microstate_accounting, + _) and the msacc module in + runtime_tools.

+

+ 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 + --enable-sharing-preserving. This will preserve + sharing, within the process, when communication with + other processes in the Erlang node. There is a trade-off, + the copy is more costly but this cost can be reclaimed if + there is a lot of sharing in the message. With this + feature enabled literals will not be copied in a send + except during a purge phase of the module where the + literals are located. This feature is considered + experimental in 19.0.

+

+ Own Id: OTP-12590 Aux Id: OTP-10251

+
+ +

+ Halfword BEAM has been removed.

+

+ Own Id: OTP-12883

+
+ +

+ Added os:perf_counter/1.

+

+ The perf_counter is a very very cheap and high resolution + timer that can be used to timestamp system events. It + does not have monoticity guarantees, but should on most + OS's expose a monotonous time.

+

+ 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 erlang:port_info/1 by using the + erl_drv_set_pid function. For more details see the + erl_driver documentation.

+

+ Own Id: OTP-13087

+
+ +

+ The functionality behind erlang:open_port/2 when + called with spawn or spawn_executable has been redone so + that the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and does + not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have shown + this approach to be about 3-5 times as fast as the old + approach where the fork/vfork was done by erts. This is a + pure stability and performance fix, however some error + messages may have changed, which is why it is marked as a + backwards incompatible change.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13088

+
+ +

Improved yielding strategy in the implementation of + the following native functions:

+ erlang:binary_to_list/1 + erlang:binary_to_list/3 + erlang:bitstring_to_list/1 + erlang:list_to_binary/1 + erlang:iolist_to_binary/1 + erlang:list_to_bitstring/1 + binary:list_to_bin/1

This + in order to improve performance of these functions.

+

+ 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 'code' module. The + functions are code:atomic_load/1, + code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1.

+

+ Own Id: OTP-13111

+
+ +

The -boot_var option for erl now only + supports a single key and single value (as documented). + The option used to allow multiple key/value pairs, but + that behavior was undocumented.

+

The function erl_prim_loader:start/3 has been + removed. Its documentation has also been removed.

+

The undocumented and unsupported function + erl_prim_loader:get_files/2 has been removed.

+

+ Own Id: OTP-13112

+
+ +

+ Low level BIF erlang:purge_module/1 is made more + robust against incorrect use. Lingering processes that + still refer the old code are now killed before the module + is purged to prevent fatal VM behavior.

+

+ Own Id: OTP-13122

+
+ +

+ Improved dirty scheduler implementation. For more + information see the NIF documentation.

+

+ Note that support for determining whether dirty NIF + support exist or not at compile time using the C + preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT + has been removed.

+

+ 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 -fvisibility=hidden for faster loading + and more optimized code.

+

+ Own Id: OTP-13227

+
+ +

+ Add erlang:process_info(Pid, + garbage_collection_info) which returns extended + garbage_collection information. For more details see the + documentation.

+

+ Own Id: OTP-13265

+
+ +

+ The functions erlang:list_to_integer/1 and + string:to_integer/1 have been optimized for large + inputs.

+

+ 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 +MXscs.

+

+ 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 process_flag(message_queue_data, + MQD).

+

+ 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:

+

+ enif_cpu_time + enif_now_time + enif_make_unique_integer + enif_is_process_alive + enif_is_port_alive + enif_term_to_binary + enif_binary_to_term + enif_port_command +

+

+ for details of what each function does, see the erl_nif + documentation.

+

+ Own Id: OTP-13442

+
+ +

+ Optimize '++' operator and lists:append/2 + by using a single pass to build a new list while checking + for properness.

+

+ 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 erlang:trace/3 has + been extended so that 'all', 'existing' and + 'new' now include both processes and ports. New + Tracee variants, 'all_processes', + 'all_ports', 'existing_processes' etc have + been added to specify only processes or ports.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13496

+
+ +

+ When the 'procs' trace flag is enabled, a + 'spawned' trace event is now also generated by a + newly created process. The previous event 'spawn' + remains, but as it is generated by the process that did + the spawn, it is not guaranteed that it is ordered with + other trace events from the newly spawned process. So + when tracking the lifetime of a process this new event + should be used as the creation event.

+

+ This new trace event is marked as an incompatabiliy + because tools that expect certain trace events when + enabling 'procs' will have to updated.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13497

+
+ +

+ Add the erlang:match_spec_test/3 + function. The functions allows the testing of match + specifications for both tracing and ets tables. It can be + used to test that a match specification does the expected + filtering on specific data. It also returns more verbose + error reasons for incorrectly constructed match + specifications.

+

+ 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 'send' trace message would always + arrive before the corresponding 'receive' trace + message that is no longer always the case. This also + means that timestamped trace messages may seem to arrive + out of order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer.

+

+ Own Id: OTP-13503

+
+ +

+ Add possibility to filter send and receive + trace with match specifications.

+

+ Own Id: OTP-13507

+
+ +

+ Add maps:update_with/3,4 and maps:take/2

+

+ 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 --with-dynamic-trace=lttng.

+

The dynamic trace module dyntrace is now + capable to be used as a LTTng sink for Erlang tracing. + For a list of all tracepoints, see Runtime Tools User's + Guide .

+

This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and + gc_end has been split into gc_minor_start, + gc_minor_end and gc_major_start, + gc_major_end.

+

+ *** 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 erlang:system_info/1. The info for + erts_mmap has been moved from mseg_alloc to + its own section returned by {allocator, + erts_mmap}.

+

+ Own Id: OTP-13560

+
+ +

+ Add enif_snprintf to the NIF API

+

+ The fucntion enif_snprintf is similar to + snprintf call but can handle formating of Erlang + terms via %T format specifier.

+

+ Own Id: OTP-13580

+
+ +

The warning in the documentation for + erlang:raise/3 has been removed. It is now + officially perfectly fine to use raise/3 in production + code. (Thanks to Per Hedeland.)

+

+ Own Id: OTP-13599

+
+ +

+ Add -start_epmd command line option, this lets you + disable automatic starting of epmd when starting a + distributed node.

+

+ Add -epmd_module command line option, this lets + you specify a module to register and lookup node names + in. The default module is erl_epmd.

+

+ Own Id: OTP-13627

+
+ +

+ erlang:halt now truncates strings longer than 200 + characters instead of failing with badarg.

+

+ Own Id: OTP-13630

+
+
+
+ +
+
Erts 7.3.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From c04cad3ba921deb086d19e2de2526af4854add75 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Thu, 2 Jun 2016 11:39:07 +0200 Subject: Revert "Prepare release" This reverts commit e020f75c10410a6943cd055bfa072a2641eab7da. --- erts/doc/src/notes.xml | 693 ------------------------------------------------- 1 file changed, 693 deletions(-) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 2b2898f0c1..7501ccd9ce 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,699 +32,6 @@

This document describes the changes made to the ERTS application.

-
Erts 8.0 - -
Fixed Bugs and Malfunctions - - -

The handling of on_load functions has been - improved. The major improvement is that if a code upgrade - fails because the on_load function fails, the - previous version of the module will now be retained.

-

- Own Id: OTP-12593

-
- -

is_builtin(erlang, apply, 3) will now return - true.

-

- Own Id: OTP-13034

-
- -

- Fix enif_get_list_length to return false if list - is improper or have length larger than UINT_MAX - (did return true and an incorrect length value).

-

- 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 process_flag(trap_exit,true) and - a received exit signal.

-

- A process could terminate due to exit signal even though - process_flag(trap_exit,true) had returned. A very - specific timing between call to process_flag/2 and - exit signal from another scheduler was required for this - to happen.

-

- Own Id: OTP-13452

-
- -

Don't search for non-existing Map keys twice

-

For maps:get/2,3 and maps:find/2, - searching for an immediate key, e.g. an atom, in a small - map, the search was performed twice if the key did not - exist.

-

- 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 erlang:process_info/2 type specification

-

- Own Id: OTP-13485 Aux Id: ERL-123

-
- -

- Fix bug in open_port/2 with option {args, - List}. A vm crash could be caused by an improper - List.

-

- Own Id: OTP-13489 Aux Id: ERL-127

-
- -

- Don't crash on terminating processes with - erlang:system_profile/1,2

-

- 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 EPMD_DUMP_REQ - response.

-

- 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

-
-
-
- - -
Improvements and New Features - - -

- The tracing support has been extended to allow a tracer module to be the - trace event handler instead of a process or port. The - tracer module - makes it possible for trace tools to filter or manipulate - trace event data without the trace event first haing to - be copied from the traced process or port.

-

- With the introduction of this feature, - erlang:trace(all|existing, _, _) now also returns - the tracer process as part of the number of processes on - which tracing is enabled. The is incompatible with the - previous releases.

-

- *** 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 --with-dynamic-trace=lttng.

-

- This feature introduces tracepoints for schedulers, - drivers, memory carriers, memory and async thread pool.

-

For a list of all tracepoints, see Runtime Tools User's - Guide .

-

- 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 erlang:statistics(microstate_accounting, - _) and the msacc module in - runtime_tools.

-

- 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 - --enable-sharing-preserving. This will preserve - sharing, within the process, when communication with - other processes in the Erlang node. There is a trade-off, - the copy is more costly but this cost can be reclaimed if - there is a lot of sharing in the message. With this - feature enabled literals will not be copied in a send - except during a purge phase of the module where the - literals are located. This feature is considered - experimental in 19.0.

-

- Own Id: OTP-12590 Aux Id: OTP-10251

-
- -

- Halfword BEAM has been removed.

-

- Own Id: OTP-12883

-
- -

- Added os:perf_counter/1.

-

- The perf_counter is a very very cheap and high resolution - timer that can be used to timestamp system events. It - does not have monoticity guarantees, but should on most - OS's expose a monotonous time.

-

- 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 erlang:port_info/1 by using the - erl_drv_set_pid function. For more details see the - erl_driver documentation.

-

- Own Id: OTP-13087

-
- -

- The functionality behind erlang:open_port/2 when - called with spawn or spawn_executable has been redone so - that the forking of the new program is done in a separate - process called erl_child_setup. This allows for a much - more robust implementation that uses less memory and does - not block the entire emulator if the program to be - started is on an un-accessible NFS. Benchmarks have shown - this approach to be about 3-5 times as fast as the old - approach where the fork/vfork was done by erts. This is a - pure stability and performance fix, however some error - messages may have changed, which is why it is marked as a - backwards incompatible change.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-13088

-
- -

Improved yielding strategy in the implementation of - the following native functions:

- erlang:binary_to_list/1 - erlang:binary_to_list/3 - erlang:bitstring_to_list/1 - erlang:list_to_binary/1 - erlang:iolist_to_binary/1 - erlang:list_to_bitstring/1 - binary:list_to_bin/1

This - in order to improve performance of these functions.

-

- 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 'code' module. The - functions are code:atomic_load/1, - code:prepare_loading/1, - code:finish_loading/1, and - code:ensure_modules_loaded/1.

-

- Own Id: OTP-13111

-
- -

The -boot_var option for erl now only - supports a single key and single value (as documented). - The option used to allow multiple key/value pairs, but - that behavior was undocumented.

-

The function erl_prim_loader:start/3 has been - removed. Its documentation has also been removed.

-

The undocumented and unsupported function - erl_prim_loader:get_files/2 has been removed.

-

- Own Id: OTP-13112

-
- -

- Low level BIF erlang:purge_module/1 is made more - robust against incorrect use. Lingering processes that - still refer the old code are now killed before the module - is purged to prevent fatal VM behavior.

-

- Own Id: OTP-13122

-
- -

- Improved dirty scheduler implementation. For more - information see the NIF documentation.

-

- Note that support for determining whether dirty NIF - support exist or not at compile time using the C - preprocessor macro ERL_NIF_DIRTY_SCHEDULER_SUPPORT - has been removed.

-

- 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 -fvisibility=hidden for faster loading - and more optimized code.

-

- Own Id: OTP-13227

-
- -

- Add erlang:process_info(Pid, - garbage_collection_info) which returns extended - garbage_collection information. For more details see the - documentation.

-

- Own Id: OTP-13265

-
- -

- The functions erlang:list_to_integer/1 and - string:to_integer/1 have been optimized for large - inputs.

-

- 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 +MXscs.

-

- 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 process_flag(message_queue_data, - MQD).

-

- 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:

-

- enif_cpu_time - enif_now_time - enif_make_unique_integer - enif_is_process_alive - enif_is_port_alive - enif_term_to_binary - enif_binary_to_term - enif_port_command -

-

- for details of what each function does, see the erl_nif - documentation.

-

- Own Id: OTP-13442

-
- -

- Optimize '++' operator and lists:append/2 - by using a single pass to build a new list while checking - for properness.

-

- 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 erlang:trace/3 has - been extended so that 'all', 'existing' and - 'new' now include both processes and ports. New - Tracee variants, 'all_processes', - 'all_ports', 'existing_processes' etc have - been added to specify only processes or ports.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-13496

-
- -

- When the 'procs' trace flag is enabled, a - 'spawned' trace event is now also generated by a - newly created process. The previous event 'spawn' - remains, but as it is generated by the process that did - the spawn, it is not guaranteed that it is ordered with - other trace events from the newly spawned process. So - when tracking the lifetime of a process this new event - should be used as the creation event.

-

- This new trace event is marked as an incompatabiliy - because tools that expect certain trace events when - enabling 'procs' will have to updated.

-

- *** POTENTIAL INCOMPATIBILITY ***

-

- Own Id: OTP-13497

-
- -

- Add the erlang:match_spec_test/3 - function. The functions allows the testing of match - specifications for both tracing and ets tables. It can be - used to test that a match specification does the expected - filtering on specific data. It also returns more verbose - error reasons for incorrectly constructed match - specifications.

-

- 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 'send' trace message would always - arrive before the corresponding 'receive' trace - message that is no longer always the case. This also - means that timestamped trace messages may seem to arrive - out of order as the timestamp is taken when the event is - triggered and not when it is put in the queue of the - tracer.

-

- Own Id: OTP-13503

-
- -

- Add possibility to filter send and receive - trace with match specifications.

-

- Own Id: OTP-13507

-
- -

- Add maps:update_with/3,4 and maps:take/2

-

- 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 --with-dynamic-trace=lttng.

-

The dynamic trace module dyntrace is now - capable to be used as a LTTng sink for Erlang tracing. - For a list of all tracepoints, see Runtime Tools User's - Guide .

-

This feature also introduces an incompatible change in - trace tags. The trace tags gc_start and - gc_end has been split into gc_minor_start, - gc_minor_end and gc_major_start, - gc_major_end.

-

- *** 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 erlang:system_info/1. The info for - erts_mmap has been moved from mseg_alloc to - its own section returned by {allocator, - erts_mmap}.

-

- Own Id: OTP-13560

-
- -

- Add enif_snprintf to the NIF API

-

- The fucntion enif_snprintf is similar to - snprintf call but can handle formating of Erlang - terms via %T format specifier.

-

- Own Id: OTP-13580

-
- -

The warning in the documentation for - erlang:raise/3 has been removed. It is now - officially perfectly fine to use raise/3 in production - code. (Thanks to Per Hedeland.)

-

- Own Id: OTP-13599

-
- -

- Add -start_epmd command line option, this lets you - disable automatic starting of epmd when starting a - distributed node.

-

- Add -epmd_module command line option, this lets - you specify a module to register and lookup node names - in. The default module is erl_epmd.

-

- Own Id: OTP-13627

-
- -

- erlang:halt now truncates strings longer than 200 - characters instead of failing with badarg.

-

- Own Id: OTP-13630

-
-
-
- -
-
Erts 7.3.1
Fixed Bugs and Malfunctions -- cgit v1.2.3 From 6e51c6d19612d03abc81b86bb70b8d7da678ce5d Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Tue, 21 Jun 2016 15:12:41 +0200 Subject: Prepare release --- erts/doc/src/notes.xml | 736 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 736 insertions(+) (limited to 'erts/doc/src/notes.xml') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 7501ccd9ce..3c3129d543 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -32,6 +32,742 @@

This document describes the changes made to the ERTS application.

+
Erts 8.0 + +
Fixed Bugs and Malfunctions + + +

The handling of on_load functions has been + improved. The major improvement is that if a code upgrade + fails because the on_load function fails, the + previous version of the module will now be retained.

+

+ Own Id: OTP-12593

+
+ +

is_builtin(erlang, apply, 3) will now return + true.

+

+ Own Id: OTP-13034

+
+ +

+ Fix enif_get_list_length to return false if list + is improper or have length larger than UINT_MAX + (did return true and an incorrect length value).

+

+ 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 process_flag(trap_exit,true) and + a received exit signal.

+

+ A process could terminate due to exit signal even though + process_flag(trap_exit,true) had returned. A very + specific timing between call to process_flag/2 and + exit signal from another scheduler was required for this + to happen.

+

+ Own Id: OTP-13452

+
+ +

Don't search for non-existing Map keys twice

+

For maps:get/2,3 and maps:find/2, + searching for an immediate key, e.g. an atom, in a small + map, the search was performed twice if the key did not + exist.

+

+ 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 erlang:process_info/2 type specification

+

+ Own Id: OTP-13485 Aux Id: ERL-123

+
+ +

+ Fix bug in open_port/2 with option {args, + List}. A vm crash could be caused by an improper + List.

+

+ Own Id: OTP-13489 Aux Id: ERL-127

+
+ +

+ Fixed a race-condition bug where the emulator could crash + when erlang:system_profile/1,2 was enabled and a + process had to be re-scheduled during termination.

+

+ 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 EPMD_DUMP_REQ + response.

+

+ 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

+
+
+
+ + +
Improvements and New Features + + +

+ The tracing support has been extended to allow a tracer module to be the + trace event handler instead of a process or port. The + tracer module + makes it possible for trace tools to filter or manipulate + trace event data without the trace event first having to + be copied from the traced process or port.

+

+ With the introduction of this feature, + erlang:trace(all|existing, _, _) now also returns + the tracer process as part of the number of processes on + which tracing is enabled. The is incompatible with the + previous releases.

+

+ *** 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 --with-dynamic-trace=lttng.

+

+ This feature introduces tracepoints for schedulers, + drivers, memory carriers, memory and async thread pool.

+

For a list of all tracepoints, see Runtime Tools User's + Guide .

+

+ Own Id: OTP-10282

+
+ +

+ Make it possible to monitor/demonitor ports using the + erlang:monitor/2 API. + The process and port information functions have also been + updated to include information about monitors from + processes to ports.

+

+ 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 erlang:statistics(microstate_accounting, + _) and the msacc module in + runtime_tools.

+

+ 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 + --enable-sharing-preserving. This will preserve + sharing, within the process, when communication with + other processes in the Erlang node. There is a trade-off, + the copy is more costly but this cost can be reclaimed if + there is a lot of sharing in the message. In addition + literals will not be copied in a send except during a + purge phase of the module where the literals are located. + This feature is considered experimental in 19.0.

+

+ Own Id: OTP-12590 Aux Id: OTP-10251

+
+ +

+ Halfword BEAM has been removed.

+

+ Own Id: OTP-12883

+
+ +

+ Added os:perf_counter/1.

+

+ The perf_counter is a very very cheap and high resolution + timer that can be used to timestamp system events. It + does not have monoticity guarantees, but should on most + OS's expose a monotonous time.

+

+ 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 erlang:port_info/1 by using the + erl_drv_set_pid function. For more details see the + erl_driver documentation.

+

+ Own Id: OTP-13087

+
+ +

+ The functionality behind erlang:open_port/2 when + called with spawn or spawn_executable has been redone so + that the forking of the new program is done in a separate + process called erl_child_setup. This allows for a much + more robust implementation that uses less memory and does + not block the entire emulator if the program to be + started is on an un-accessible NFS. Benchmarks have shown + this approach to be about 3-5 times as fast as the old + approach where the fork/vfork was done by erts. This is a + pure stability and performance fix, however some error + messages may have changed, which is why it is marked as a + backwards incompatible change.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13088

+
+ +

Improved yielding strategy in the implementation of + the following native functions:

+ erlang:binary_to_list/1 + erlang:binary_to_list/3 + erlang:bitstring_to_list/1 + erlang:list_to_binary/1 + erlang:iolist_to_binary/1 + erlang:list_to_bitstring/1 + binary:list_to_bin/1

This + in order to improve performance of these functions.

+

+ 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 'code' module. The + functions are code:atomic_load/1, + code:prepare_loading/1, + code:finish_loading/1, and + code:ensure_modules_loaded/1.

+

+ Own Id: OTP-13111

+
+ +

The -boot_var option for erl now only + supports a single key and single value (as documented). + The option used to allow multiple key/value pairs, but + that behavior was undocumented.

+

The function erl_prim_loader:start/3 has been + removed. Its documentation has also been removed.

+

The undocumented and unsupported function + erl_prim_loader:get_files/2 has been removed.

+

+ Own Id: OTP-13112

+
+ +

+ Low level BIF erlang:purge_module/1 is made more + robust against incorrect use. Lingering processes that + still refer the old code are now killed before the module + is purged to prevent fatal VM behavior.

+

+ Own Id: OTP-13122

+
+ +

Improved dirty scheduler implementation. For more + information see the NIF + documentation.

The + dirty scheduler support is still + experimental.

The support + for determining whether dirty NIF support exist or not at + compile time using the C preprocessor macro + ERL_NIF_DIRTY_SCHEDULER_SUPPORT has been + removed.

The + enif_is_on_dirty_scheduler() function has been + removed. Use enif_thread_type() + instead.

+

+ 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 + erlang:process_flag + for more details.

+

+ Own Id: OTP-13174

+
+ +

+ Allow dynamic drivers and NIF libraries to be built with + gcc option -fvisibility=hidden for faster loading + and more optimized code.

+

+ Own Id: OTP-13227

+
+ +

+ Add erlang:process_info(Pid, + garbage_collection_info) which returns extended + garbage_collection information. For more details see the + documentation.

+

+ Own Id: OTP-13265

+
+ +

+ The functions erlang:list_to_integer/1 and + string:to_integer/1 have been optimized for large + inputs.

+

+ 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 +MXscs.

+

+ 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 process_flag(message_queue_data, + MQD).

+

+ 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:

+

+ enif_cpu_time + enif_now_time + enif_make_unique_integer + enif_is_process_alive + enif_is_port_alive + enif_term_to_binary + enif_binary_to_term + enif_port_command +

+

+ for details of what each function does, see the erl_nif + documentation.

+

+ Own Id: OTP-13442

+
+ +

+ Optimize '++' operator and lists:append/2 + by using a single pass to build a new list while checking + for properness.

+

+ 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 erlang:trace/3 has + been extended so that 'all', 'existing' and + 'new' now include both processes and ports. New + Tracee variants, 'all_processes', + 'all_ports', 'existing_processes' etc have + been added to specify only processes or ports.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13496

+
+ +

+ When the 'procs' trace flag is enabled, a + 'spawned' trace event is now also generated by a + newly created process. The previous event 'spawn' + remains, but as it is generated by the process that did + the spawn, it is not guaranteed that it is ordered with + other trace events from the newly spawned process. So + when tracking the lifetime of a process this new event + should be used as the creation event.

+

+ This new trace event is marked as an incompatibility + because tools that expect certain trace events when + enabling 'procs' will have to updated.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-13497

+
+ +

+ Add the erlang:match_spec_test/3 + function. The functions allows the testing of match + specifications for both tracing and ets tables. It can be + used to test that a match specification does the expected + filtering on specific data. It also returns more verbose + error reasons for incorrectly constructed match + specifications.

+

+ 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 'send' trace message would always + arrive before the corresponding 'receive' trace + message that is no longer always the case. This also + means that timestamped trace messages may seem to arrive + out of order as the timestamp is taken when the event is + triggered and not when it is put in the queue of the + tracer.

+

+ Own Id: OTP-13503

+
+ +

+ Add possibility to filter send and receive + trace with match specifications.

+

+ Own Id: OTP-13507

+
+ +

+ Add maps:update_with/3,4 and maps:take/2

+

+ 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 --with-dynamic-trace=lttng.

+

The dynamic trace module dyntrace is now + capable to be used as a LTTng sink for Erlang tracing. + For a list of all tracepoints, see Runtime Tools User's + Guide .

+

This feature also introduces an incompatible change in + trace tags. The trace tags gc_start and + gc_end has been split into gc_minor_start, + gc_minor_end and gc_major_start, + gc_major_end.

+

+ *** 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 erlang:system_info/1. The info for + erts_mmap has been moved from mseg_alloc to + its own section returned by {allocator, + erts_mmap}.

+

+ Own Id: OTP-13560

+
+ +

+ Add enif_snprintf to the NIF API

+

+ The function enif_snprintf is similar to + snprintf call but can handle formatting of Erlang + terms via %T format specifier.

+

+ Own Id: OTP-13580

+
+ +

The warning in the documentation for + erlang:raise/3 has been removed. It is now + officially perfectly fine to use raise/3 in production + code.

+

+ 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 -start_epmd command line option, this lets you + disable automatic starting of epmd when starting a + distributed node.

+

+ Add -epmd_module command line option, this lets + you specify a module to register and look-up node names + in. The default module is erl_epmd.

+

+ Own Id: OTP-13627

+
+ +

+ erlang:halt now truncates strings longer than 200 + characters instead of failing with badarg.

+

+ Own Id: OTP-13630

+
+ +

+ Fix possible race in poller wake up on windows

+

+ Own Id: OTP-13634

+
+
+
+ +
+
Erts 7.3.1
Fixed Bugs and Malfunctions -- cgit v1.2.3