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.