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') 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