Bug fix release : otp_src_R14B01
Build date : 2010-12-07
This is R14B01, the first maintenance release for the R14B major release.
You can find the README file for the release at
http://www.erlang.org/download/otp_src_R14B01.readme (this file)
The source distribution and binary distribution for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_R14B01.tar.gz
http://www.erlang.org/download/otp_win32_R14B01.exe
The distribution can also be downloaded using the BitTorrent
protocol. Use the following torrent files to download the source
distribution and binary distribution for Windows:
http://www.erlang.org/download/otp_src_R14B01.tar.gz.torrent
http://www.erlang.org/download/otp_win32_R14B01.exe.torrent
Note: To unpack the TAR archive you need a GNU TAR compatible program.
For installation instructions please read the README file that is part
of the distribution.
The on-line documentation can be found at: http://www.erlang.org/doc/
You can also download the complete HTML documentation or the Unix manual files
http://www.erlang.org/download/otp_doc_html_R14B01.tar.gz
http://www.erlang.org/download/otp_doc_man_R14B01.tar.gz
We also want to thank those that sent us patches, suggestions and bug
reports,
The OTP Team
--- HIGHLIGHTS ----------------------------------------------------------
OTP-8922 == erts stdlib ==
New ETS option compressed, to enable a more compact storage
format at the expence of heavier table operations. For test
and evaluation, erl +ec can be used to force compression on
all ETS tables.
OTP-8926 == erts kernel ==
There is now a new function inet:getifaddrs/0 modeled after C
library function getifaddrs() on BSD and LInux that reports
existing interfaces and their addresses on the host. This
replaces the undocumented and unsupported inet:getiflist/0
and inet:ifget/2.
--- otp -----------------------------------------------------------------
OTP-8942 Fixed pretty rare infinite loop when refining the types of an
SCC whose functions all returned none() (thanks to Stavros
Aronis).
Fixed pretty rare crash when taking the infimum of two
tuple_sets.
Fixed pretty rare crash when using parameterized types
containing unbound variables (thanks to Nicolas Trangez for
reporting it).
Deeper unfolding of recursive types (thanks to Maria
Christakis).
Fixed some incomplete and erroneous specs in modules of
kernel and stdlib.
Fixed problems in the handling of remote types in records
used as types (thanks to Nico Kruber for the report and to
Maria Christakis for the fix).
Fixed handling of nested opaque types (thanks to Thorsten
Schuett for reporting it and to Maria Christakis for fixing
it).
--- ssh -----------------------------------------------------------------
OTP-8807 The processes ssh_subsystem_sup and one ssh_channel_sup was
not terminated when a connection was closed.
OTP-8908 The fix regarding OTP-8863 was not included in the previous
version as stated.
--- asn1-1.6.15 ---------------------------------------------------------
OTP-8866 The encoding of ExtensionAdditionGroup (for PER and UPER) is
corrected.
OTP-8948 A race condition when several processes in parallel start to
do encode/decode using the driver could cause an error log
regarding crashing port owner process. This race is now
eliminated.
--- common_test-1.5.1.1 -------------------------------------------------
OTP-8894 Added vts.tool file to common_test so that vts shows up
in webtool
--- common_test-1.5.2 ---------------------------------------------------
OTP-8895 Updated ct:get_status documentation to describe
no_tests_running return value.
OTP-8907 ct:parse_table can now handle multiline sql rows
OTP-8921 Fixed race condition test failures in the test suites testing
common test's parallel groups feature.
OTP-8935 The include directive of testspecs now work when used on a
remote node.
OTP-8936 The run_test executable has been renamed to the less generic
ct_run to better work with other applications. run_test will
remain until R16B at which point it will be removed.
--- compiler-4.7.2 ------------------------------------------------------
OTP-8864 The compiler would translate binary comprehensions containing
tail segments in a way that would would confuse Dialyzer. For
instance:
[42 || <> <= Bits]
would produce a Dialyzer warning.
OTP-8865 Code such as foo(A) -> <> would crash the compiler.
OTP-8888 The compiler could fail with an internal error when variables
were exported from a receive block but the return value of
the receive block were not used. (Thanks to Jim Engquist for
reporting this error.)
OTP-8949 Two compiler bugs (that would cause the compiler to
terminate) reported by Christopher Williams have been fixed.
--- cosNotification-1.1.15 ----------------------------------------------
OTP-8846 Switched from using the deprecated regexp to re instead.
OTP-8900 A corbaloc http string could return an EXIT message, instead
of a system exception, if the HTTP server closed the socket
without returning a complete message. I.e. header and a
body containing a stringified IOR.
--- crypto-2.0.2 --------------------------------------------------------
OTP-8752 AES CTR encryption support in crypto.
--- debugger-3.2.5 ------------------------------------------------------
OTP-8976 Miscellaneous updates
--- dialyzer-2.4.0 ------------------------------------------------------
OTP-8962 - Added ability to supply multiple PLTs for the analysis
(option --plts). Currently these PLTs must be independent
(i.e., no module appears in more than one PLT) and there must
not include files with module name clashes.
- Strengthened and streamlined hard-coded type information
for some BIFs and key library functions.
OTP-8979 - Fixed pretty rare infinite loop when refining the types of
an SCC whose functions all returned none() (thanks to Stavros
Aronis).
- Fixed pretty rare crash when taking the infimum of two
tuple_sets.
--- docbuilder-0.9.8.9 --------------------------------------------------
OTP-8946 Fix compatibility issues with docbuilder for R11
documentation patches.
--- edoc-0.7.6.8 --------------------------------------------------------
OTP-8855 Compiler warnings were eliminated.
--- erl_docgen-0.2.3 ----------------------------------------------------
OTP-8600 Fix format_man_pages so it handles all man sections and
remove warnings/errors in various man pages.
OTP-8720 Support for using Dialyzer specifications and types has been
added. This is an experimental release; changes are expected
before the new functionality is used when building the OTP
documentation.
--- erl_interface-3.7.1.1 -----------------------------------------------
OTP-8874 The erl_interface tracelevel for erlang messages was incorrect.
This has now been fixed.
--- erl_interface-3.7.2 -------------------------------------------------
OTP-8890 erl_call: remove get_hostent
get_hostent does not properly handle IPv4 addresses on little
endian platforms and fails with hostnames beginning with a
number. Remove get_hostent and use ei_gethostbyname directly
since gethostbyname supports IPv4 addresses.
(Thanks to Michael Santos)
OTP-8891 teach ei_x_format to handle unary - and + (Thanks to Steve
Vinoski)
OTP-8893 Fix zero byte allocation in registry. (Thanks to Michael
Santos)
OTP-8943 Check the length of the node name to prevent an overflow.
Memory error control of ei_alloc_big. (Thanks to Michael
Santos)
OTP-8945 erl_term_len() in erl_interface could returned too large
values for integers (since R14B) and too small values for
refs (since R9B).
--- erts-5.8.1.2 --------------------------------------------------------
OTP-8875 Fix that the documentation top index generator can handle
an Ericsson internal application group.
OTP-8902 In embedded mode, on_load handlers that called code:priv_dir/1
or other functions in code would hang the system. Since
the crypto application now contains an on_loader handler
that calls code:priv_dir/1, including the crypto application
in the boot file would prevent the system from starting.
Also extended the -init_debug option to print information
about on_load handlers being run to facilitate debugging.
--- erts-5.8.2 ----------------------------------------------------------
OTP-8600 Fix format_man_pages so it handles all man sections and
remove warnings/errors in various man pages.
OTP-8847 The configure command line argument
--enable-ethread-pre-pentium4-compatibility had no effect.
This option is now also automatically enabled if required on
the build machine.
OTP-8859 The help texts produced by the configure scripts in the top
directory and in the erts directory have been aligned and
cleaned up.
OTP-8861 When the runtime system had fewer schedulers than logical
processors, the system could get an unnecessarily large
amount reader groups.
OTP-8876 Windows 2003 and Windows XP pre SP3 would sometimes not start
the Erlang R14B VM at all due to a bug in the cpu topology
detection. The bug affects Windows only, no other platform is
even remotely affected. The bug is now corrected.
OTP-8877 The HiPE run-time in the 64-bit emulator could do a 64-bit
write to a 32-bit struct field. It happened to be harmless on
Intel/AMD processors. Corrected. (Thanks to Mikael
Pettersson.)
OTP-8878 run_rel has been updated to support Solaris's /dev/ptmx
device and to load the necessary STREAMS modules so that
to_erl can provide terminal echo of keyboard input. (Thanks
to Ryan Tilder.)
OTP-8887 The Erlang VM now supports Unicode filenames. The feature is
turned on by default on systems where Unicode filenames are
mandatory (Windows and MacOSX), but can be enabled on other
systems with the '+fnu' emulator option. Enabling the Unicode
filename feature on systems where it is not default is
however considered experimental and not to be used for
production. Together with the Unicode file name support, the
concept of "raw filenames" is introduced, which means
filenames provided without implicit unicode encoding
translation. Raw filenames are provided as binaries, not
lists. For further information, see stdlib users guide and
the chapter about using Unicode in Erlang. Also see the file
module manual page.
OTP-8889 A bug in erl_drv_tsd_get() and enif_tsd_get() could cause an
emulator crash. These functions are currently not used in
OTP. That is, the crash only occur on systems with user
implemented NIF libraries, or drivers that use one of these
functions.
OTP-8892 Buffer overflows have been prevented in erlc, dialyzer,
typer, run_test, heart, escript, and erlexec. (Thanks to
Michael Santos.)
OTP-8901 The runtime system is now less eager to suspend processes
sending messages over the distribution. The default value of
the distribution buffer busy limit has also been increased
from 128 KB to 1 MB. This in order to improve throughput.
OTP-8912 The distribution buffer busy limit can now be configured at
system startup. For more information see the documentation of
the erl +zdbbl command line flag. (Thanks to Scott Lystig
Fritchie)
OTP-8914 Calling erlang:system_info({cpu_topology, CpuTopologyType})
with another CpuTopologyType element than one of the
documented atoms defined, detected, or used caused an
emulator crash. (Thanks to Paul Guyot)
OTP-8916 The inet driver internal buffer stack implementation has been
rewritten in order to reduce lock contention.
OTP-8922 New ETS option compressed, to enable a more compact storage
format at the expence of heavier table operations. For test
and evaluation, erl +ec can be used to force compression on
all ETS tables.
OTP-8925 The ERTS internal rwlock implementation could get into an
inconsistent state. This bug was very seldom triggered, but
could be during heavy contention. The bug was introduced in
R14B (erts-5.8.1).
The bug was most likely to be triggered when using the
read_concurrency option on an ETS table that was frequently
accessed from multiple processes doing lots of writes and
reads. That is, in a situation where you typically don't want
to use the read_concurrency option in the first place.
OTP-8926 There is now a new function inet:getifaddrs/0 modeled after C
library function getifaddrs() on BSD and LInux that reports
existing interfaces and their addresses on the host. This
replaces the undocumented and unsupported inet:getiflist/0
and inet:ifget/2.
OTP-8932 Tracing to port could cause an emulator crash when unloading
the trace driver.
OTP-8937 Removed use of CancelIoEx on Windows that had been shown to
cause problems with some drivers.
OTP-8939 Support for detection of CPU topology and binding of
schedulers on FreeBSD 8 have been added. (Thanks to Paul
Guyot)
OTP-8944 The fallback implementation used when no native atomic
implementation was found did not compile. (Thanks to Patrick
Baggett, and Tuncer Ayaz)
OTP-8950 Some integer values used during load balancing could under
rare circumstances wrap causing a load unbalance between
schedulers.
OTP-8952 Several bugs related to hibernate/3 and HiPE have been
corrected. (Thanks to Paul Guyot.)
OTP-8955 Support for soft and hard links on Windows versions and
filesystems that support them is added.
OTP-8956 The win32 virtual machine is now linked large address aware.
his allows the Erlang VM to use up to 3 gigs of address space
on Windows instead of the default of 2 gigs.
OTP-8958 The windows VM now correctly handles appending to large files
(> 4GB).
OTP-8969 Name resolving of IPv6 addresses has been implemented for
Windows versions that support it. The use of ancient resolver
flags (AI_V4MAPPED | AI_ADDRCONFIG) to the getaddrinfo()
function has been removed since e.g FreeBSD regard mapped
IPv4 addresses to be a security problem and the semantics of
the address configured flag is uncertain.
--- et-1.4.2 ------------------------------------------------------------
OTP-8904 Fix error when module et was used in et_selector trace
patterns.
--- eunit-2.1.6 ---------------------------------------------------------
OTP-8600 Fix format_man_pages so it handles all man sections and
remove warnings/errors in various man pages.
--- hipe-3.7.8 ----------------------------------------------------------
OTP-8855 Compiler warnings were eliminated.
--- inets-5.5.1 ---------------------------------------------------------
OTP-8600 Fix format_man_pages so it handles all man sections and
remove warnings/errors in various man pages.
OTP-8906 [httpc] Pipelined and queued requests not processed when
connection closed remotelly.
OTP-8927 Miscellaneous inet6 related problems.
OTP-8940 Updated http-server to make sure URLs in error-messages are
URL-encoded. Added support in http-client to use
URL-encoding. Also added the missing include directory for
the inets application.
--- jinterface-1.5.3.2 --------------------------------------------------
OTP-8854 The OtpMbox class did not have a hash() method, which it
should have because it overrides equals().
--- kernel-2.14.1.1 -----------------------------------------------------
OTP-8875 Fix that the documentation top index generator can handle
an Ericsson internal application group.
OTP-8902 In embedded mode, on_load handlers that called code:priv_dir/1
or other functions in code would hang the system. Since
the crypto application now contains an on_loader handler
that calls code:priv_dir/1, including the crypto application
in the boot file would prevent the system from starting.
Also extended the -init_debug option to print information
about on_load handlers being run to facilitate debugging.
--- kernel-2.14.2 -------------------------------------------------------
OTP-8887 The Erlang VM now supports Unicode filenames. The feature is
turned on by default on systems where Unicode filenames are
mandatory (Windows and MacOSX), but can be enabled on other
systems with the '+fnu' emulator option. Enabling the Unicode
filename feature on systems where it is not default is
however considered experimental and not to be used for
production. Together with the Unicode file name support, the
concept of "raw filenames" is introduced, which means
filenames provided without implicit unicode encoding
translation. Raw filenames are provided as binaries, not
lists. For further information, see stdlib users guide and
the chapter about using Unicode in Erlang. Also see the file
module manual page.
OTP-8926 There is now a new function inet:getifaddrs/0 modeled after C
library function getifaddrs() on BSD and LInux that reports
existing interfaces and their addresses on the host. This
replaces the undocumented and unsupported inet:getiflist/0
and inet:ifget/2.
--- mnesia-4.4.16 -------------------------------------------------------
OTP-8855 Compiler warnings were eliminated.
OTP-8960 Sometimes a 'log_header' record was added to tables when
invoking mnesia:restore/2 with the option 'recreate_tables'.
Thanks Vance Shipley.
--- observer-0.9.8.4 ----------------------------------------------------
OTP-8857 The multitrace.erl installation example file is now installed
in the examples directory. (Thanks to Peter Lemenkov.)
--- odbc-2.10.9 ---------------------------------------------------------
OTP-8917 Ipv6 is now supported on Windows as well as on UNIX for
internal socket communication. (ODBC uses sockets instead of
the "Erlang port pipes" as some ODBC-drivers are known to
mess with stdin/stdout.)
Loopback address constants are used when connecting the
c-side to the erlang-side over local socket API avoiding
getaddrinfo problems, and the {ip, loopback} option is added
as a listen option on the erlang-side. Also cleaned up the
TIME_STAMP contribution.
--- orber-3.6.18 --------------------------------------------------------
OTP-8846 Switched from using the deprecated regexp to re instead.
OTP-8900 A corbaloc http string could return an EXIT message, instead
of a system exception, if the HTTP server closed the socket
without returning a complete message. I.e. header and a
body containing a stringified IOR.
--- parsetools-2.0.5 ----------------------------------------------------
OTP-8919 The formating of Yecc's error messages has been improved.
(Thanks to Joe Armstrong.)
--- public_key-0.10 -----------------------------------------------------
OTP-8964 Improved dialyzer specs.
--- ssh-2.0.2 -----------------------------------------------------------
OTP-8849 SSH no longer use deprecated public_key functions.
OTP-8863 The ssh_system_sup did not catch noproc and shutdown messages.
OTP-8881 In some cases a crash report was generated when a connection
was closing down. This was caused by a race condition between
two processes.
--- ssh-2.0.3 -----------------------------------------------------------
OTP-8918 The fix regarding OTP-8849 was not included in the previous
version as stated.
--- ssl-4.1.1 -----------------------------------------------------------
OTP-8870 For testing purposes ssl now also support some anonymous
cipher suites when explicitly configured to do so.
OTP-8897 Correct handling of client certificate verify message When
checking the client certificate verify message the server
used the wrong algorithm identifier to determine the signing
algorithm, causing a function clause error in the public_key
application when the key-exchange algorithm and the public
key algorithm of the client certificate happen to differ.
OTP-8930 Sends an error alert instead of crashing if a crypto function
for the selected cipher suite fails.
--- stdlib-1.17.2 -------------------------------------------------------
OTP-8856 When several clients accessed a Dets table simultaneously,
one of them calling dets:insert_new/2, the Dets server could
crash. Alternatively, under the same conditions, ok was
sometimes returned instead of true. (Thanks to John Hughes.)
OTP-8879 The documentation filelib:wildcard/1,2 now describes the
character set syntax for wildcards.
OTP-8892 Buffer overflows have been prevented in erlc, dialyzer,
typer, run_test, heart, escript, and erlexec. (Thanks to
Michael Santos.)
OTP-8898 When several clients accessed a Dets table simultaneously,
inserted or updated objects were sometimes lost due to the
Dets file being truncated. (Thanks to John Hughes.)
OTP-8899 When several clients accessed a Dets table simultaneously,
modifications of the Dets server's internal state were
sometimes thrown away. The symptoms are diverse: error with
reason bad_object; inserted objects not returned by lookup();
et cetera. (Thanks to John Hughes.)
OTP-8903 If a Dets table was closed after calling bchunk/2, match/1,3,
match_object/1,3, or select/1,3 and then opened again, a
subsequent call using the returned continuation would
normally return a reply. This bug has fixed; now the call
fails with reason badarg.
OTP-8911 Cover did not collect coverage data for files such as Yecc
parses containing include directives. The bug has been fixed
by modifying epp, the Erlang Code Preprocessor.
OTP-8915 Using a float for the number of copies for string:copies/2
resulted in an infinite loop. Now it will fail with an
exception instead. (Thanks to Michael Santos.)
OTP-8922 New ETS option compressed, to enable a more compact storage
format at the expence of heavier table operations. For test
and evaluation, erl +ec can be used to force compression on
all ETS tables.
OTP-8923 If a Dets table with fewer slots than keys was opened and
then closed after just a lookup, the contents were no longer
well-formed. This bug has been fixed. (Thanks to Matthew
Evans.)
OTP-8938 In a supervisor, when it terminates a child, if that child
happens to have exited fractionally early, with normal, the
supervisor reports this as an error. This should not be
reported as an error.
OTP-8959 The default maximum number of slots of a Dets table has been
changed as to be equal to the maximum number of slots.
(Thanks to Richard Carlsson.)
--- syntax_tools-1.6.7 --------------------------------------------------
OTP-8976 Miscellaneous updates
--- test_server-3.4.2 ---------------------------------------------------
OTP-8976 Miscellaneous updates
--- tools-2.6.6.2 -------------------------------------------------------
OTP-8853 eprof: API sort mismatch has now been fixed.
OTP-8963 eprof: fix division by zero in statistics
--- wx-0.98.8 -----------------------------------------------------------
OTP-8951 Add wxSystemSettings which was missing in the previous
release, despite previous comments.
Fix an external loop when stopping erlang nicely.
Separate OpenGL to it's own dynamic loaded library, so other
graphic libraries can reuse the gl module and it will not
waste memory if not used.
--- xmerl-1.2.7 ---------------------------------------------------------
OTP-8599 An empty element declared as simpleContent was not properly
validated.
OTP-8600 Fix format_man_pages so it handles all man sections and
remove warnings/errors in various man pages.
OTP-8947 Fix entity checking so there are no fatal errors for
undefined entities when option skip_external_dtd is used.