From b92ea63417bc6933393a3c285faf393b3d287ac2 Mon Sep 17 00:00:00 2001 From: Erlang/OTP Date: Mon, 12 Dec 2011 18:14:34 +0100 Subject: Prepare release --- erts/doc/src/notes.xml | 472 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 472 insertions(+) (limited to 'erts/doc') diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 4cef9669dd..cfee978bde 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -30,6 +30,478 @@

This document describes the changes made to the ERTS application.

+
Erts 5.9 + +
Fixed Bugs and Malfunctions + + +

+ Honor option packet_size for http packet parsing + by both TCP socket and erlang:decode_packet. This + gives the ability to accept HTTP headers larger than the + default setting, but also avoid DoS attacks by accepting + lines only up to whatever length you wish to allow. For + consistency, packet type line also honor option + packet_size. (Thanks to Steve Vinoski)

+

+ Own Id: OTP-9389

+
+ +

A few contracts in the lists module have been + corrected.

+

+ Own Id: OTP-9616

+
+ +

+ The Unicode noncharacter code points 16#FFFE and 16#FFFE + were not allowed to be encoded or decoded using the + unicode module or bit syntax. That was + inconsistent with the other noncharacters 16#FDD0 to + 16#FDEF that could be encoded/decoded. To resolve the + inconsistency, 16#FFFE and 16#FFFE can now be encoded and + decoded. (Thanks to Alisdair Sullivan.)

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9624

+
+ +

+ Make epp search directory of current file first when + including another file This completes a partial fix in + R11 that only worked for include_lib(). (Thanks to + Richard Carlsson)

+

+ Own Id: OTP-9645

+
+ +

+ Fixed memory leak in + enif_inspect_io_list_as_binary when applied on a + process independent environment.

+

+ Own Id: OTP-9668

+
+ +

The number of beam catches allowed in code are no + longer statically defined and will grow according to its + need.

+

+ Own Id: OTP-9692

+
+ +

+ Add missing parenthesis in heart doc.

+

+ Add missing spaces in the Reference Manual distributed + section.

+

+ In the HTML version of the doc those spaces are necessary + to separate those words.

+

+ Own Id: OTP-9693

+
+ +

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

+

+ Own Id: OTP-9697

+
+ +

+ Specifying a scope to binary:match/3 when using multiple + searchstrings resulted in faulty return values. This is + now corrected.

+

+ Own Id: OTP-9701

+
+ +

+ The runtime system crashed if more than one thread tried + to exit the runtime system at the same time.

+

+ Own Id: OTP-9705

+
+ +

+ Fix documentation for erlang:process_flag/2

+

+ For the subsection about process_flag(save_calls, N) + there's an unrelated paragraph about process priorities + which was copied from the preceeding subsection regarding + process_flag(priority, Level). (Thanks to Filipe David + Manana)

+

+ Own Id: OTP-9714

+
+ +

+ Calls to erlang:system_flag(schedulers_online, N) + and/or erlang:system_flag(multi_scheduling, + block|unblock) could cause internal data used by this + functionality to get into an inconsistent state. When + this happened various problems occurred. This bug was + quite hard to trigger, so hopefully no-one has been + effected by it.

+

+ A spinlock used by the run-queue management sometimes got + heavily contended. This code has now been rewritten, and + the spinlock has been removed.

+

+ Own Id: OTP-9727

+
+ +

+ Use libdlpi to get physical address (Thanks to Trond + Norbye)

+

+ Own Id: OTP-9818

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

An option list argument can now be passed to + file:read_file_info/2, file:read_link_info/2 and + file:write_file_info/3 and set time type + information in the call. Valid options are {time, + local}, {time, universal} and {time, posix}. + In the case of posix time no conversions are made + which makes the operation a bit faster.

+

+ Own Id: OTP-7687

+
+ +

A number of memory allocation optimizations have been + implemented. Most optimizations reduce contention caused + by synchronization between threads during allocation and + deallocation of memory. Most notably:

+ Synchronization of memory management in scheduler + specific allocator instances has been rewritten to use + lock-free synchronization. Synchronization + of memory management in scheduler specific pre-allocators + has been rewritten to use lock-free synchronization. + The 'mseg_alloc' memory segment allocator + now use scheduler specific instances instead of one + instance. Apart from reducing contention this also + ensures that memory allocators always create memory + segments on the local NUMA node on a NUMA system. + +

+ Own Id: OTP-7775

+
+ +

+ The ethread atomic memory operations API used by the + runtime system has been extended and improved.

+

+ The ethread library now also performs runtime tests for + presence of hardware features, such as for example SSE2 + instructions, instead of requiring this to be determined + at compile time.

+

+ All uses of the old deprecated atomic API in the runtime + system have been replaced with the use of the new atomic + API. In a lot of places this change imply a relaxation of + memory barriers used.

+

+ Own Id: OTP-9014

+
+ +

gen_sctp:open/0-2 may now return + {error,eprotonosupport} if SCTP is not supported

+

gen_sctp:peeloff/1 has been implemented and creates a + one-to-one socket which also are supported now

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9239

+
+ +

+ Sendfile has been added to the file module's API. + sendfile/2 is used to read data from a file and send it + to a tcp socket using a zero copying mechanism if + available on that OS.

+

+ Thanks to Tuncer Ayaz and Steve Vinovski for original + implementation

+

+ Own Id: OTP-9240

+
+ +

+ enif_get_reverse_list function added to nif API. This + function should be used to reverse small lists which are + deep within other structures making it impractical to do + the reverse in Erlang.

+

+ Own Id: OTP-9392

+
+ +

+ The deprecated concat_binary/1 BIF has been removed. Use + list_to_binary or iolist_to_binary/1 + instead.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9421

+
+ +

Erlang/OTP can now be built using parallel make if you + limit the number of jobs, for instance using 'make + -j6' or 'make -j10'. 'make -j' does not + work at the moment because of some missing + dependencies.

+

+ Own Id: OTP-9451

+
+ +

Line number and filename information are now included + in exception backtraces as a fourth element in the MFA + tuple. The information will be pretty-printed by the + shell and used by common_test to provide better + indication of where a test case.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9468

+
+ +

All binary constants used to be handled as heap + binaries (i.e. the entire binary would be copied when + sent to another process). Binary constants larger than 64 + bytes are now refc binaries (i.e. the actual data in the + binary will not be copied when sent to another + process).

+

+ Own Id: OTP-9486

+
+ +

+ If a float and an integer is compared, the integer is + only converted to a float if the float datatype can + contain it. Otherwise the float is converted to an + integer.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9497

+
+ +

+ Add NIF function enif_is_number

+

+ This function allows for easily determining if a term + represents or not a number (integer, float, small or + big).(Thanks to Filipe David Manana)

+

+ Own Id: OTP-9629

+
+ +

+ The ERTS internal system block functionality has been + replaced by new functionality for blocking the system. + The old system block functionality had contention issues + and complexity issues. The new functionality piggy-backs + on thread progress tracking functionality needed by newly + introduced lock-free synchronization in the runtime + system. When the functionality for blocking the system + isn't used, there is more or less no overhead at all. + This since the functionality for tracking thread progress + is there and needed anyway.

+

+ Own Id: OTP-9631

+
+ +

+ An ERTS internal, generic, many to one, lock-free queue + for communication between threads has been introduced. + The many to one scenario is very common in ERTS, so it + can be used in a lot of places in the future. Currently + it is used by scheduling of certain jobs, and the async + thread pool, but more uses are planned for the future.

+

+ Drivers using the driver_async functionality are not + automatically locked to the system anymore, and can be + unloaded as any dynamically linked in driver.

+

+ Scheduling of ready async jobs is now also interleaved in + between other jobs. Previously all ready async jobs were + performed at once.

+

+ Own Id: OTP-9632

+
+ +

+ Tuple funs (a two-element tuple with a module name and a + function) are now officially deprecated and will be + removed in R16. Use 'fun M:F/A' instead. To make + you aware that your system uses tuple funs, the very + first time a tuple fun is applied, a warning will be sent + to the error logger.

+

+ Own Id: OTP-9649

+
+ +

+ Changed the internal BIF calling convention. Will make + simpler faster code and allow BIFs with an arbitrary + arity.

+

+ Own Id: OTP-9662

+
+ +

+ Windows native critical sections are now used internally + in the runtime system on Windows as mutex implementation. + This since they perform better under extreme contention + than our own implementation.

+

+ Own Id: OTP-9671

+
+ +

+ Convert some erl_nif macros into inline functions. Allow + for better compile time type checking. (Thanks to Tuncer + Ayaz)

+

+ Own Id: OTP-9675

+
+ +

+ The +scl command line flag has been added. It can + be used for disabling compaction of scheduler load. For + more information see the erl(1) documentation.

+

+ Own Id: OTP-9695

+
+ +

The build system has been updated so that Erlang/OTP + can be built on Mac OS X Lion systems without a GCC + compiler. The INSTALL guide has been updated with + instructions on how to install a GCC compiler and build + Erlang/OTP with it, in order to get a run-time system + with better performance.

+

+ Own Id: OTP-9712

+
+ +

+ When loading a module, the system use to run on a single + scheduler during the entire loading process. This has + been changed to only take down the system just before + inserting the loaded code into the system tables, + resulting in a much shorter disruption if a module is + loaded in a busy system. (Suggested by Bob Ippolito.)

+

+ Own Id: OTP-9720

+
+ +

+ Possible to run HiPE without floating point exceptions + (FPE). Useful on platforms that lack reliable FPE. Slower + float operations compared to HiPE with FPE.

+

+ Own Id: OTP-9724

+
+ +

+ As of ERTS version 5.9 (OTP-R15B) the runtime system will + by default not bind schedulers to logical + processors.

+

+ If the Erlang runtime system is the only operating system + process that binds threads to logical processors, this + improves the performance of the runtime system. However, + if other operating system processes (as for example + another Erlang runtime system) also bind threads to + logical processors, there might be a performance penalty + instead. In some cases this performance penalty might be + severe. Due to this, we change the default so that the + user must make an active decision in order to bind + schedulers.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9726

+
+ +

+ The use of erlang:system_flag(scheduler_bind_type, + _) and erlang:system_flag(cpu_topology, _) + have been deprecated and scheduled for removal in + erts-5.10/OTP-R16. For more information see the + documentation of erlang:system_flag/2.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9749

+
+ +

+ An ancient workaround for a Windows bug was removed from + the open_port code, open_port({spawn,...}...) is now + faster. Thanks to Daniel Goertzen.

+

+ Own Id: OTP-9766

+
+ +

+ The use of deprecated 32bit time_t on 32bit Windows is + removed.

+

+ Own Id: OTP-9767

+
+ +

+ The NIF reload mechanism is deprecated. Do not use + it as an upgrade method for live production systems. It + might be removed in future releases. It can still serve + as a development feature but a warning message will be + logged each time it is used.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9771

+
+ +

The driver interface has been changed to enable 64-bit + aware drivers. Most importantly the return types for + ErlDrvEntry callbacks 'call' and 'control' has ben + enlarged which require drivers to be changed or they will + cause emulator crashes. See Rewrites for + 64-bit driver interface in the driver manual. +

+

Due to this driver version + management is now mandatory. A driver that is + not written with version management or a driver that was + compiled with the wrong major version will be not be + loaded by the emulator.

+

+ *** POTENTIAL INCOMPATIBILITY ***

+

+ Own Id: OTP-9795

+
+ +

+ Eliminate use of deprecated regexp module

+

+ Own Id: OTP-9810

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