From 91b2e57ea0e3ab794d4b57a12ef10205383525a5 Mon Sep 17 00:00:00 2001
From: Erlang/OTP This document describes the changes made to the ERTS application.
+ The scroll wheel now scrolls the werl window on Windows.
+ Own Id: OTP-8985
+ Some malformed distribution messages could cause VM to
+ crash, this is now corrected.
+ Own Id: OTP-8993
+ The OS function getifaddrs() can return NULL in some
+ address fields for e.g PPP and tunnel devices which
+ caused the emulator to segfault. This bug has now been
+ corrected.
+ Own Id: OTP-8996
+ The expression <<A:0>> would always produce
+ an empty binary, even if
+ Own Id: OTP-8997
+ A bug that potentially could cause an emulator crash when
+ deleting an ETS-table has been fixed. A resource leak
+ when hitting the maximum amount of ETS-tables allowed has
+ also been fixed.
+ Own Id: OTP-8999
+ A bug in the
+ Own Id: OTP-9005
+ Due to a bug in glibc the runtime system could abort
+ while trying to destroy a mutex. The runtime system will
+ now issue a warning instead of aborting.
+ Own Id: OTP-9009
+ A bug in epmd could create strange behaviour when
+ listen() calls failed. This is now corrected thanks to
+ Steve Vinoski.
+ Own Id: OTP-9024 When setting file_info the win32_driver will now
+ correctly set access and modified time. Previously these
+ entities were swapped.
+ Own Id: OTP-9046
+ Setting scheduler bind type to
+ Own Id: OTP-9056 Aux Id: Seq11779 Two problems were fixed in crash dump: The time left
+ for timers are now shown as unsigned integers and the
+ contents of ordered_set ETS tables is no longer
+ included.
+ Own Id: OTP-9057
+ The VM could fail to set IP_TOS and SO_PRIORITY in
+ certain situations, either because sockets were supplied
+ as open file descriptors, or because SO_PRIORITY by
+ default was set higher than the user can explicitly set
+ it to. Those situations are now handled.
+ Own Id: OTP-9069
+ Wx on MacOS X generated complains on stderr about certain
+ cocoa functions not beeing called from the "Main thread".
+ This is now corrected.
+ Own Id: OTP-9081
+ Fix a couple typos in driver_entry(3) (thanks to Tuncer
+ Ayaz).
+ Own Id: OTP-9085
+ Mention that "-detached" implies "-noinput"
+ Clarify that specifying "-noinput" is unnecessary if the
+ "-detached" flag is given. (thanks to Holger Weiß)
+ Own Id: OTP-9086
+ A potential problem (found by code inspection) when
+ calling a fun whose code was not loaded has been fixed.
+ Own Id: OTP-9095
+ The emulator could get into a state where it didn't check
+ for I/O.
+ Own Id: OTP-9105 Aux Id: Seq11798
+ Attempting to create binaries exceeding 2Gb (using for
+ example
+ Own Id: OTP-9117
+ Fix erlang:hibernate/3 on HiPE enabled emulator (Thanks
+ to Paul Guyot)
+ Own Id: OTP-9125 From this release, the previously experimental
+ halfword emulator is now official. It can be enabled by
+ giving the The halfword emulator is a 64-bit application, but
+ uses halfwords (32-bit words) for all data in Erlang
+ processes, therefore using less memory and being faster
+ than the standard 64-bit emulator. The total size of all
+ BEAM code and all process data for all processes is
+ limited to 4Gb, but ETS tables and off-heap binaries are
+ only limited by the amount of available memory.
+ Own Id: OTP-8941
+ 32-bit atomic memory operations have been introduced
+ internally in the run time system, and are now used where
+ appropriate. There were previously only atomic memory
+ operations of word size available. The 32-bit atomic
+ memory operations slightly reduce memory consumption, and
+ slightly improve performance on 64-bit runtime systems.
+ Own Id: OTP-8974
+ Performance enhancements for looking up timer-entries and
+ removing timers from the wheel.
+ Own Id: OTP-8990
+ Write accesses to ETS tables have been optimized by
+ reducing the amount of atomic memory operations needed
+ during a write access.
+ Own Id: OTP-9000
+ Strange C coding in the VM made the -D_FORTIFY_SOURCE
+ option to gcc-4.5 react badly. The code is now cleaned up
+ so that it's accepted by gcc-4.5.
+ Own Id: OTP-9025
+ The memory footprint for loaded code has been somewhat
+ reduced (especially in the 64-bit BEAM machine).
+ Own Id: OTP-9030
+ The maximum number of allowed arguments for an Erlang
+ function has been lowered from 256 to 255, so that the
+ number of arguments can now fit in a byte.
+ Own Id: OTP-9049
+ Dependency generation for Makefiles has been added to the
+ compiler and erlc. See the manual pages for
+
+ Own Id: OTP-9065 This document describes the changes made to the asn1 application.
+ asn1ct: Make formatting of errors and warnings consistent
+ Consistently format warning and error reports. Warning
+ and error options from erlc now also work in asnc1ct.
+ (thanks to Tuncer Ayaz)
+ Own Id: OTP-9062
+ Shut off some dialyzer warnings
+ Own Id: OTP-9063
+ Crash in asn1ct_check, componentrelation_leadingattr
+ fixed. (Thanks to Stephane Pamelard for finding the bug)
+ Own Id: OTP-9092
+ Added an option to test specs which allow the execution
+ of tests as is, instead of doing merging of tests on the
+ same "level". See the merge_tests directive the test
+ specification documentation.
+ Own Id: OTP-9026 Aux Id: seq11768
+ Alpha release of Common Test Hooks (CTH). CTHs allow the
+ users of common test to abtract out common behaviours
+ from test suites in a much more elegant and flexible way
+ than was possible before. Note that the addition of this
+ feature may introduce minor changes in the undocumented
+ behaviour of the interface inbetween common_test and
+ test_server.
+ *** POTENTIAL INCOMPATIBILITY ***
+ Own Id: OTP-8851 This document describes the changes made to the Compiler
application.
+ The
+ Own Id: OTP-8998
+ The maximum number of allowed arguments for an Erlang
+ function has been lowered from 256 to 255, so that the
+ number of arguments can now fit in a byte.
+ Own Id: OTP-9049
+ Dependency generation for Makefiles has been added to the
+ compiler and erlc. See the manual pages for
+
+ Own Id: OTP-9065 This document describes the changes made to the Crypto application.
+ Misc. Updates.
+ Own Id: OTP-9132 This document describes the changes made to the Debugger
application.
+ Fix issues reported by dialyzer.
+ Own Id: OTP-9107 This document describes the changes made to the Dialyzer
application.
+ Add a --fullpath option to Dialyzer
+ This change adds a --fullpath option to Dialyzer, which
+ makes the warning messages contain the full path of the
+ corresponding file.
+ Original patch submitted by Magnus Henoch (legoscia) on
+ 15/9/2010 and cooked to death in the 'pu' branch all this
+ time.
+ The patch was essentially correct and most of it has been
+ used as is, but there have been some changes to make the
+ code slightly prettier, avoid some code duplication, and
+ add documentation to dialyzer's doc files and to its help
+ message.
+ Own Id: OTP-9098
+ Fix warnings about guards containing not
+ The wording of warnings about unsatisfiable guards that
+ used 'not' was incorrect (the 'not' was not mentioned and
+ it appeared as "Guard test is_atom(atom()) can never
+ succeed") (thanks to Stavros Aronis).
+ Own Id: OTP-9099
+ Version 2.4.2 (in Erlang/OTP R14B02)
+ ------------------------------------ - Added --fullpath
+ option to display files with warnings with their full
+ file names (thanks to Magnus Henoch for the original
+ patch). - Better handling of 'and'/'or'/'not' guards that
+ generate warnings (thanks to Stavros Aronis). - Better
+ blame assignment for cases when a function's spec is
+ erroneous (thanks to Stavros Aronis). - More descriptive
+ warnings when a tuple/record pattern contains subterms
+ that violate the declared types of record fields (thanks
+ to Matthias Lang for the test case and for Stavros Aronis
+ for the actual fix).
+ Own Id: OTP-9126
+ Add spec to dialyzer_cl_parse:get_lib_dir/1
+ Own Id: OTP-9129
+ Test suites for Dialyzer
+ This is a transcription of most of the
+ cvs.srv.it.uu.se:/hipe repository dialyzer_tests into
+ test suites that use the test server framework.
+ See README for information on how to use the included
+ scripts for modifications and updates.
+ When testing Dialyzer it's important that several OTP
+ modules are included in the plt. The suites takes care of
+ that too.
+ Own Id: OTP-9116 This document describes the changes made to the EDoc
application. Add encoding when parsing Wiki text. EDoc used to
+ fail on strings such as "äåö". (Thanks to Richard
+ Carlsson.)
+ Own Id: OTP-9109 It is now possible to use Erlang specifications and
+ types in EDoc documentation. Erlang specifications and
+ types will be used unless there is also a function
+ specification ( Not all Erlang types are included in the
+ documentation, but only those exported by some
+ There is currently no support for overloaded Erlang
+ specifications. The syntax definitions of EDoc have been augmented to
+ cope with most of the Erlang types. (But we recommend
+ that Erlang types should be used instead.)
+ Own Id: OTP-8525 The
+ Own Id: OTP-9110 This document describes the changes made to the Erl_interface application.
+ Some malformed distribution messages could cause VM to
+ crash, this is now corrected.
+ Own Id: OTP-8993
+ Strengthen string copy check (Thanks to Michael Santos).
+ Own Id: OTP-9071
+ Strengthen atom length check when decoding atoms (Thanks
+ to Michael Santos).
+ Own Id: OTP-9072 Fix global registration. C node needed
+ DFLAG_DIST_MONITOR_FLAT set when connecting. Fix list
+ compare in erl_compare_ext to return correct result.
+ (Thanks to Vitaliy Batichko and Evgeny Khirin)
+ Own Id: OTP-9015 This document describes the changes made to HiPE.
+ Fix erroneous fail info of a hipe_bs_primop
+ Own Id: OTP-9036
+ The change fixes a bug in the translation of 'bs_add'
+ BEAM instruction to HiPE's Icode representation. When
+ these instructions appeared in a guard context the
+ previous translation was obviously buggy.
+ Own Id: OTP-9044
+ Sanitize the specs of the code module
+ After the addition of unicode_binary() to the
+ file:filename() type, dialyzer started complaining about
+ erroneous or incomplete specs in some functions of the
+ 'code' module. The culprit was hard-coded information in
+ erl_bif_types for functions of this module, which were
+ not updated. Since these functions have proper specs
+ these days and code duplication (pun intended) is never a
+ good idea, their type information was removed from
+ erl_bif_types.
+ While doing this, some erroneous comments were fixed in
+ the code module and also made sure that the code now runs
+ without dialyzer warnings even when the
+ -Wunmatched_returns option is used.
+ Some cleanups were applied to erl_bif_types too.
+ Own Id: OTP-9100
+ Fix bug in the simplification of inexact comparisons
+ On 31/1/2011 Paul Guyot reported a bug in the native code
+ compilation of inexact equality/inequality tests between
+ floats and integers. The relevant test was:
+ f(X) -> Y = X / 2, Y == 0.
+ and hipe erroneously evaluated the calls f(0) and f(0.0)
+ to 'false'.
+ The culprit was in the simplification code of the Icode
+ range analysis which used an erroneous test (lists:any/1
+ instead of lists:all/1).
+ Own Id: OTP-9101
+ Document exiting and garbage_collecting process statuses
+ Own Id: OTP-9102
+ Remove hipe constants pool
+ Hipe constants used to be allocated within a single,
+ fixed-size pool for interaction with the garbage
+ collector. However, the garbage collector no longer
+ depends on constants being allocated within a single
+ pool, and the fixed size of the pool both meant
+ unnecessary allocations on most deployments and crashes
+ on deployments requiring more constants.
+ The code was simplified to directly invoke erts_alloc.
+ Debugging and undocumented function
+ hipe_bifs:show_literals/0 was removed (it returned true
+ and output text to the console), and debugging and
+ undocumented function hipe_bifs:constants_size/0 was
+ rewritten with a global to count the size of allocated
+ constants.
+ Own Id: OTP-9128 This document describes the changes made to the Jinterface application.
+ Some malformed distribution messages could cause VM to
+ crash, this is now corrected.
+ Own Id: OTP-8993 This document describes the changes made to the Kernel application.
+
+ Own Id: OTP-8983 Aux Id: seq11749
+ Fix -spec for file:write_file/3
+ Change type for second parameter from binary() to
+ iodata(), since the function explicitly takes steps to
+ accept lists as well as binaries. (thanks to Magnus
+ Henoch).
+ Own Id: OTP-9067
+ Sanitize the specs of the code module
+ After the addition of unicode_binary() to the
+ file:filename() type, dialyzer started complaining about
+ erroneous or incomplete specs in some functions of the
+ 'code' module. The culprit was hard-coded information in
+ erl_bif_types for functions of this module, which were
+ not updated. Since these functions have proper specs
+ these days and code duplication (pun intended) is never a
+ good idea, their type information was removed from
+ erl_bif_types.
+ While doing this, some erroneous comments were fixed in
+ the code module and also made sure that the code now runs
+ without dialyzer warnings even when the
+ -Wunmatched_returns option is used.
+ Some cleanups were applied to erl_bif_types too.
+ Own Id: OTP-9100
+ - Add spec for function that does not return - Strenghen
+ spec - Introduce types to avoid duplication in specs -
+ Add specs for functions that do not return - Add specs
+ for behaviour callbacks - Simplify two specs
+ Own Id: OTP-9127
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Calling mnesia:first/1 on empty fragmented table works. + Thanks Magnus Henoch.
++ Own Id: OTP-9108
++ If Mnesia detects that the network is not fully connected + during start, Mnesia will not start until all nodes are + reachable.
++ Own Id: OTP-9115 Aux Id: seq-11728
++ Fix issues reported by dialyzer.
++ Own Id: OTP-9107
+This document describes the changes made to the Observer application.
++ The time needed for loading a crashump into the crashdump + viewer would earlier grow exponentially with the size of + the crashdump file. Reading a file of 20M would take a + couple of minutes, and for a dump of 250M it would take + between 1 and 2 hours. This has been solved.
++ Earlier, all processes, timers, funs or ets-tables would + be loaded into the memory of the crashdump viewer node + before sending it on to the web server. This has been + changed and the pages are now sent to the web server in + chunks.
++ A security function in newer web browsers prevents a full + file path to be sent from an HTML file input field, i.e. + the field needed to implement the "Browse" button when + loading a file into the crashdump viewer. To overcome + this, the file input field is no longer used. Instead a + normal text input field is used, and the user needs to + manually insert the complete file path. For convenience, + a shell script and a batch file are added to the observer + application. These can be used to start the + crashdump_viewer and a browser and load a file - with the + file name given from the command line. The shell script + and batch file are called cdv and cdv.bat respectively, + and can be found in the priv dir of the observer + application.
++ Own Id: OTP-9051 Aux Id: seq11789
+This document describes the changes made to the odbc application.
-+ Better error messages for connection issues.
++ Own Id: OTP-9111
+This document describes the changes made to the Percept application.
+Fixes a race condition found in percept_db start/1 + function. (Thanks to Ahmed Omar)
++ Own Id: OTP-9012
++ Allows the public_key module to decode and encode RSA and + DSA keys encoded using the SubjectPublicKeyInfo format. + When pem_entry_encode is called on an RSA or DSA public + key type, the key is wrapped in the SubjectPublicKeyInfo + format.
++ Own Id: OTP-9061
++ The reltool module contained two seriously erroneous + specs which caused bogus warnings when dialyzing reltool + and some correct code of users. These were fixed (specs + for start_link/1 and eval_server/3)
++ - Code cleanups and simplifications - Fix a bug in the + calculation of circular dependencies - Eliminate two + dialyzer warnings - Put files alphabetically
++ Own Id: OTP-9120
+This document describes the changes made to the Runtime_Tools application.
++ When a big number of trace patterns are set by inviso the + Erlang VM could get unresponsive for several seconds. + This is now corrected.
++ Own Id: OTP-9048 Aux Id: seq11480
+This document describes the changes made to the SASL application.
++ Honor start type in .rel files when building relup files
++ Previously, relup file always included an + application:start(Application, permanent) apply + instruction for every application that appear in the + UpTo/DowFrom release file, whatever their start type in + the release file.
++ The new implementation fixes this bug by honoring the + start type according to the rel(5) format. If the start + type is none, no apply line is included in the relup. If + the start type is load, the relup includes instruction to + only load the application. Otherwise, the relup includes + an instruction to start the application to the according + type.
++ The fix is implemented by adding a new parameter to the + add_application high level appup instruction. This new + parameter is documented in appup(5).
++ Own Id: OTP-9097
+This document describes the changes made to the SSL application.
-+ Reduced memory footprint of an ssl connection.
++ Handshake hashes, premaster secret and "public_key_info" + does not need to be saved when the connection has been + established. The own certificate is no longer duplicated + in the state.
++ Own Id: OTP-9021
++ Add the option {hibernate_after, int()} to ssl:connect + and ssl:listen
++ Own Id: OTP-9106
+This document describes the changes made to the STDLIB application.
++ Two bugs in io:format for ~F.~Ps has been corrected. When + length(S) >= abs(F) > P, the precision P was incorrectly + ignored. When F == P > lenght(S) the result was + incorrectly left adjusted. Bug found by Ali Yakout who + also provided a fix.
++ Own Id: OTP-8989 Aux Id: seq11741
+Fix exception generation in the io module +
+ Some functions did not generate correct badarg exception + on a badarg exception.
++ Own Id: OTP-9045
++ Fixes to the dict and orddict module documentation
++ Fixed grammar and one inconsistency (Key - Value instead + of key/value, since everywhere else the former is used). + (thanks to Filipe David Manana)
++ Own Id: OTP-9083
++ Add ISO week number calculation functions to the calendar + module in stdlib
++ This new feature adds the missing week number function to + the calendar module of the stdlib application. The + implementation conforms to the ISO 8601 standard. The new + feature has been implemented tested and documented + (thanks to Imre Horvath).
++ Own Id: OTP-9087
++ Implement the 'MAY' clauses from RFC4648 regarding the + pad character to make mime_decode() and + mime_decode_to_string() functions more tolerant of badly + padded base64. The RFC is quoted below for easy + reference.
++ "RFC4648 Section 3.3 with reference to MIME decoding: + Furthermore, such specifications MAY ignore the pad + character, "=", treating it as non-alphabet data, if it + is present before the end of the encoded data. If more + than the allowed number of pad characters is found at the + end of the string (e.g., a base 64 string terminated with + "==="), the excess pad characters MAY also be ignored."
++ Own Id: OTP-9020
++ Supervisors will no longer save start parameters for + temporary processes as they will not be restarted. In the + case of simple_one_for_one workers such as ssl-connection + processes this will substantial reduce the memory + footprint of the supervisor.
++ Own Id: OTP-9064
++ When running escript it is now possible to add the -n + flag and the escript will be compiled using +native.
++ Own Id: OTP-9076
++ Updated the ts*.config files to contain information + relevant to testing Erlang/OTP in an open source + environment.
++ Own Id: OTP-9017
++ Alpha release of Common Test Hooks (CTH). CTHs allow the + users of common test to abtract out common behaviours + from test suites in a much more elegant and flexible way + than was possible before. Note that the addition of this + feature may introduce minor changes in the undocumented + behaviour of the interface inbetween common_test and + test_server.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-8851
+This document describes the changes made to the Tools application.
++ Declare indentation options as "safe" in erlang-mode for + Emacs
++ Emacs has a facility for setting options on a per-file + basis based on comments in the source file. By default, + all options are considered "unsafe", and the user is + queried before the variable is set. This patch declares + the variables erlang-indent-level, erlang-indent-guard + and erlang-argument-indent to be safe, if the value + specified in the source file is valid.
++ Such declarations usually look like this:
++ %% -*- erlang-indent-level: 2 -*-
++ and appear on the first line of the file. (thanks to + Magnus Henoch)
++ Own Id: OTP-9122
++ Cover has been improved to take less memory and allow + parallel analysis of cover data. Data collection from + nodes is now done in parallel and it is now possible to + issue multiple analyse and analyse_to_file requests at + the same time. A new function call async_analyse_to_file + has also been introduced, see the documentation for more + details.
++ Own Id: OTP-9043 Aux Id: seq11771
+This document describes the changes made to the wxErlang application.
+Wx crashed if graphics could not be initiated, for + instance if DISPLAY was not available.
Wx could + crash during startup, thanks Boris Muhmer for extra + ordinary testing.
++ Own Id: OTP-9080
++ Wx on MacOS X generated complains on stderr about certain + cocoa functions not beeing called from the "Main thread". + This is now corrected.
++ Own Id: OTP-9081
+This document describes the changes made to the Xmerl application.
+The function xmerl_lib:expand_content/1 is mainly for + expanding Simple XML, but can also handle xmerl records. + This patch fixes an omission that caused expand_content/1 + to not maintain the parents list when expanding + #xmlElement{} records. (Thanks to Ulf Wiger)
++ Own Id: OTP-9034
+Removed some dialyzer warnings.
++ Own Id: OTP-9074
+