Major relese : otp_src_R13B
Build date : 2009-04-21
R13B is a major new release of Erlang/OTP.
You can download the full source distribution from
http://www.erlang.org/download/otp_src_R13B.tar.gz
http://www.erlang.org/download/otp_src_R13B.readme (this file)
Note: To unpack the TAR archive you need a GNU TAR compatible program.
For installation instructions please read the README that is part of
the distribution.
The Windows binary distribution can be downloaded from
http://www.erlang.org/download/otp_win32_R13B.exe
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_R13B.tar.gz
http://www.erlang.org/download/otp_doc_man_R13B.tar.gz
We also want to thank those that sent us patches, suggestions and bug
reports,
The OTP Team
--- POTENTIAL INCOMPATIBILITIES -----------------------------------------
OTP-7892 The Erlang scanner no longer returns the text of tokens when
the start location is a pair of a line and column unless the
new option text is supplied (incompatibility with R13A).
There are new functions to access the attributes of tokens:
attributes_info/1,2 and set_attribute/3.
OTP-7906 Only the source instance of InitialReference.java is now
included. Users are adviced to use the Interoperable Naming
Service (INS) instead. INS is a part of the OMG standard
specification.
OTP-7929 The error behavior of gen_tcp and gen_udp has been corrected.
gen_tcp:connect/3,4 and gen_udp:send/4 now returns
{error,eafnosupport} for conflicting destination address
versus socket address family. Other corner cases for IP
address string host names combined with not using the native
(OS) resolver (which is not default) has also been changed to
return {error,nxdomain} instead of {error,einval}. Those
changes just may surprise old existing code. gen_tcp:listen/2
and gen_udp:open/2 now fails for conflicting local address
versus socket address family instead of trying to use an
erroneous address. Problem reported by Per Hedeland.
--- documentation ------------------------------------------------------------
OTP-7891 The escape sequence \{ which was given a new interpretation
in R13A has retained its old meaning (the ASCII code for {),
which means that codes greater than 255 have to be stated
using hexadecimal characters (for example, \x{AAA}). The
escape sequence \xH where H is a hexadecimal character
followed by something else but a hexadecimal character is no
longer valid (incompatibility with R13A). Character codes
less than 256 can be stated using two hexadecimal characters
(for example, \x0D).
--- asn1-1.6.10 ------------------------------------------------------------
OTP-7953 The anonymous part of the decode that splits the ASN1 TLV
into Tag Value tuples has been optimized.
OTP-7954 A faulty receive case that catched all messages in the
initialization of the driver has been removed, the
initialization has been restructured.
--- common_test-1.4.1 ------------------------------------------------------------
OTP-7897 Minor updates and corrections.
--- compiler-4.6.0.1 ------------------------------------------------------------
OTP-7905 Using andalso orelse or record access in a
try...catch could cause a compiler crash.
Som large and complex functions could require extremely
long compilation times (hours or days).
--- compiler-4.6.1 ------------------------------------------------------------
OTP-7924 There will be more efficient code if there is a clause that
matches the empty binary and no other clauses that matches
non-empty binaries.
OTP-7927 There is new option to allow a module to have a module name
other than the filename. Do not use it unless you know what
you are doing.
OTP-7937 Miscellaneous minor bugs fixed.
--- dialyzer-1.9.1 ------------------------------------------------------------
OTP-7958 Has better handling of opaque types.
The handling of UTF segments of bitstreams has been
significantly strengthened and revised. In all probability,
now it is correct.
--- erl_interface-3.6.1 ------------------------------------------------------------
OTP-7959 Minor update to the configure script.
OTP-7960 A faulty validation in ei_reg_getpval caused it to never
return the key-value. This has now been fixed. (Thanks to
Matt Stancliff)
--- erts-5.7.1 ------------------------------------------------------------
OTP-7816 Fixed a bug on Windows that could make gen_tcp:send hang
trying to send an iolist of more than 16 binaries.
OTP-7854 Rudimentary support for cross compiling is added to the
source release. The support is still in its infancy and has
only been used to cross compile on Linux for a different cpu
architecture and a different Linux version, but should be
extendable to support other platforms as well. The cross
configuration files with examples are placed in
$ERL_TOP/xcomp/. View README.xcomp and run $ERL_TOP/otp_build
-help for further information.
OTP-7891 The escape sequence \{ which was given a new interpretation
in R13A has retained its old meaning (the ASCII code for {),
which means that codes greater than 255 have to be stated
using hexadecimal characters (for example, \x{AAA}). The
escape sequence \xH where H is a hexadecimal character
followed by something else but a hexadecimal character is no
longer valid (incompatibility with R13A). Character codes
less than 256 can be stated using two hexadecimal characters
(for example, \x0D).
OTP-7894 The term_to_binary/1 BIF used to be implemented with
recursive C code, which could cause the Erlang emulator to
terminate because of a stack overflow.
Also fixed some minor issues in term_to_binary/1 and
binary_to_term/1 pointed out by Matthew Dempsky.
OTP-7896 Several glitches and performance issues in the Unicode and
I/O-system implementation of R13A have been corrected.
OTP-7901 Minor documentation improvements of the scheduler_bind_type
argument of erlang:system_flag/2, and the
scheduler_bind_type, and the scheduler_bindings arguments of
erlang:system_info/1.
OTP-7908 The runtime system could under rare circumstances crash
during load balancing.
OTP-7913 There is a new BIF erlang:make_tuple/3.
OTP-7916 run_erl uses fallback if Unix98 pseudo-terminal is not
present on host.
OTP-7941 A message buffer memory leak in the runtime system without
smp support has been fixed.
OTP-7942 Attempting to append a binary of 16Mb or greater to another
binary using the bit syntax would cause a system_limit
exception. There was also several cases when constructing
binaries when a badarg exception was generated when it should
have been system_limit.
OTP-7946 The runtime system with SMP support failed to terminate the
caller of link(RemotePid) properly, if RemotePid was the pid
of a process on an unreachable node. The calling process was
in this case marked as exiting, but never terminated.
--- eunit-2.1 ------------------------------------------------------------
OTP-7964 Mostly internal changes, in particular to the event protocol;
fixes problems with timeouts that could cause eunit to hang,
and makes it much easier to write new reporting back-ends.
New "surefire" report backend for Maven and Bamboo.
The test representation is no longer traversed twice (the
first pass was for enumeration only). This eliminates some
strange restrictions on how generators can be written, but it
also means that reports cannot be quite as complete as before
in the event of skipped tests.
--- hipe-3.7.1 ------------------------------------------------------------
OTP-7958 Has better handling of opaque types.
The handling of UTF segments of bitstreams has been
significantly strengthened and revised. In all probability,
now it is correct.
--- jinterface-1.5.1 ------------------------------------------------------------
OTP-7885 jinterface uses the new environment variable ERL_EPMD_PORT
the same way that erl, epmd and erl_interface do since R13A.
OTP-7899 Many Erlang classes, e.g. OtpErlangRef, was missing an
implementation of the hashCode() method, making it futile to
put them in hash structures such as HashMap. Bug and patch
provided by Paul Guyot. We extended the patch to all classes
and improved (?) on the hash algorithm.
--- kernel-2.13.1 ------------------------------------------------------------
OTP-7890 Many concurrent calls to os:cmd/1 will only block one
scheduler thread at a time, making an smp emulator more
responsive if the OS is slow forking processes.
OTP-7896 Several glitches and performance issues in the Unicode and
I/O-system implementation of R13A have been corrected.
OTP-7903 Fixed hanging early RPC that did IO operation during node
start.
OTP-7925 The unsupported DNS resolver client inet_res has now been
improved to handle NAPTR queries.
OTP-7929 The error behavior of gen_tcp and gen_udp has been corrected.
gen_tcp:connect/3,4 and gen_udp:send/4 now returns
{error,eafnosupport} for conflicting destination address
versus socket address family. Other corner cases for IP
address string host names combined with not using the native
(OS) resolver (which is not default) has also been changed to
return {error,nxdomain} instead of {error,einval}. Those
changes just may surprise old existing code. gen_tcp:listen/2
and gen_udp:open/2 now fails for conflicting local address
versus socket address family instead of trying to use an
erroneous address. Problem reported by Per Hedeland.
--- megaco-3.10.1 ------------------------------------------------------------
OTP-7926 The megaco_user callback function handle_unexpected_trans
could during high load be called with unexpected values for
the Trans argument, such as an TransactionReply where
transactionResult had the value {error, timeout}. This was a
result of a raise condition and has now been fixed.
OTP-7936 [text] It was not possible to encode a PropertyParm value as
a quoted string (unless it *had* to (has at least one
RestChar)). The megaco text codec's now also accepts quoted
strings as PropertyParm values.
--- mnesia-4.4.9 ------------------------------------------------------------
OTP-7911 mnesia:clear_table/1 crashed instead of returning
{aborted,..} if it was called inside a transaction.
--- orber-3.6.12 ------------------------------------------------------------
OTP-7906 Only the source instance of InitialReference.java is now
included. Users are adviced to use the Interoperable Naming
Service (INS) instead. INS is a part of the OMG standard
specification.
--- os_mon-2.2.1 ------------------------------------------------------------
OTP-7938 Added support for dragonfly OS.
OTP-7944 An error in memsup could cause os_mon to report erroneous
memory values on windows for ranges of memory between 2GB and
4GB. This have now been fixed.
--- parsetools-1.4.7 ------------------------------------------------------------
OTP-7945 A bug in yeccpre.hrl introduced in R13A has been fixed.
--- percept-0.8.1 ------------------------------------------------------------
OTP-7923 egd now supports encapsulated postscript output format.
--- reltool-0.2.1 ------------------------------------------------------------
OTP-7840 Minor GUI fixes
--- snmp-4.13.1 ------------------------------------------------------------
OTP-7902 Registration of users had some issues. Not all of the
registration functions where actually exported
(snmpm:register_user/4 and snmpm:register_user_monitor/4).
This has now been fixed. Also, the registration did not
succeed unless user implemented the *new* behaviour. This has
now also been fixed (registration succeeds if the user
implements either the new or the old user behaviour).
--- ssh-1.1.2 ------------------------------------------------------------
OTP-7914 Ssh confused local and remote channel id's, which in some
cases resulted in that messages were discarded.
OTP-7917 Ssh could not handle echo values other than 0 and 1.
OTP-7918 A crash occurred if a non-valid channel reference were
received.
OTP-7919 By using the sftpd option {max_files, Integer}, the message
size for READDIR commands can be reduced.
OTP-7921 Sftpd connections was not closed after receiving eof from a
client.
OTP-7930 It was not possible to start a SFTP subsystem on certain
platforms, i.e. those who do not support symbolic links.
OTP-7957 In some cases the message {ssh_cm, ssh_connection_ref(),
{closed, ssh_channel_id()}} was not passed to the registered
callback module.
--- stdlib-1.16.1 ------------------------------------------------------------
OTP-7892 The Erlang scanner no longer returns the text of tokens when
the start location is a pair of a line and column unless the
new option text is supplied (incompatibility with R13A).
There are new functions to access the attributes of tokens:
attributes_info/1,2 and set_attribute/3.
OTP-7895 The documentation of dets:open_file/1 now states that the
file is repaired if it has not been properly closed. (Thanks
to Ulf Wiger.)
OTP-7896 Several glitches and performance issues in the Unicode and
I/O-system implementation of R13A have been corrected.
OTP-7915 The type spec of filelib:wildcard/2 has been corrected.
OTP-7947 New functions: gb_sets:is_disjoint/2, ordsets:is_disjoint/2,
and gb_sets:is_disjoint/2.
OTP-7948 The function gb_trees:map/2 which was added in R13A is now
documented.
--- test_server-3.3.1 ------------------------------------------------------------
OTP-7897 Minor updates and corrections.
--- tools-2.6.4 ------------------------------------------------------------
OTP-7939 cover now properly escapes greater-than and less-than
characters in comments in HTML reports. (Thanks to Magnus
Henoch.)
--- typer-0.1.7 ------------------------------------------------------------
OTP-7958 Has better handling of opaque types.
The handling of UTF segments of bitstreams has been
significantly strengthened and revised. In all probability,
now it is correct.
--- wx-0.98.1 ------------------------------------------------------------
OTP-7875 Added xrcctrl/3 to wxXmlResource and added a resource
example.
Added several event types and events records and fixed a
couple of event related bugs.
Event callbacks can now use wxEvtHandler:connect/2.
Error handling and debugging aid have been improved.
Added wxSplitterWindow and wxGauge:pulse and a couple of
missing macros in wx.hrl.
Thanks to Steve Davis for feedback and bug reports.