Bug fix release : otp_src_R12B-3 Build date : 2008-06-11 This is bug fix release 3 for the R12B release. You can find the README file for the release at http://www.erlang.org/download/otp_src_R12B-3.readme (this file) The source distribution and binary distribution for Windows can be downloaded from http://www.erlang.org/download/otp_src_R12B-3.tar.gz http://www.erlang.org/download/otp_win32_R12B-3.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_R12B-3.tar.gz.torrent http://www.erlang.org/download/otp_win32_R12B-3.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_R12B-3.tar.gz http://www.erlang.org/download/otp_doc_man_R12B-3.tar.gz We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- HIGHLIGHTS ------------------------------------------------------------ OTP-6940 Additional library directories can now be specified in the environment variable ERL_LIBS. See the manual page for the code module. (Thanks to Serge Aleynikov.) OTP-7181 An experimental module "re" is added to the emulator which interfaces a publicly available regular expression library for Perl-like regular expressions (PCRE). The interface is purely experimental and *will* be subject to change. The implementation is for reference and testing in connection to the relevant EEP. --- KNOWN PROBLEMS ------------------------------------------------------ OTP-7237 Floating point arithmetics in drivers can cause a runtime system crash on runtime systems with floating point exceptions enabled. Floating point exceptions are disabled unless explicitly enabled or if hipe is enabled. --- documentation ------------------------------------------------------------ OTP-7328 Thanks to Richard Carlsson for pointing out several errors, inconsistencies, omissions, and areas for improvement. --- asn1-1.5.2 ------------------------------------------------------------ OTP-7263 When duplicates of object fields were removed only one table access function for each unique identifier value was generated. This can occur when several object sets are merged by use of ObjectSetFromObjects. OTP-7264 Added type T61String that is similar to TeletexString OTP-7268 DER: For some complex types and components with reference to type in several steps the default value check function was not generated. This is now fixed. OTP-7273 Now is the tag in a tagged type as parameter propagated to the instance. --- common_test-1.3.2 ------------------------------------------------------------ OTP-7379 The configure test of the rx lib in Common Test was not performed during the general OTP application configuration phase. This made e.g. autoconf impossible. This has been changed to correspond with the normal OTP build procedure. --- compiler-4.5.2.1 ------------------------------------------------------------ OTP-7345 In rare circumstances, the length/1 BIF (and a few other guard BIFs) would seem to return an incorrect value (of any type). --- compiler-4.5.3 ------------------------------------------------------------ OTP-7392 New option warn_export_all to warn for a module using export_all. (Thanks to Richard Carlsson.) --- crypto-1.5.2 ------------------------------------------------------------ OTP-7262 crypto and zlib drivers improved to allow concurent smp access. OTP-7270 ./configure has been improved to find 64-bit OpenSSL libraries. --- debugger-3.1.1.3 ------------------------------------------------------------ OTP-7388 Minor changes. --- dialyzer-1.8.1 ------------------------------------------------------------ OTP-7386 There is new --raw option for Dialyzer to output the result of the analysis in Erlang term, to faciliate later filtering and/or formatting. OTP-7389 The return type of the Erlang interface dialyzer:run/1 has changed to only return a list of warnings. If something goes wrong dialyzer dies with an exception. The handling of the PLT is now more flexible. There is no longer any default PLT included with OTP. Please consult the manual for the changes. --- edoc-0.7.6 ------------------------------------------------------------ OTP-7388 Minor changes. --- erl_interface-3.5.7 ------------------------------------------------------------ OTP-6795 An errornous freeing of memory could occur when using ei_x_format_wo_ver in erl_interface, resulting in a segmentation fault. OTP-7368 A faulty compare in erl_marshal has now been fixed. (Thanks to Simon Cornish and Paul Mineiro) --- erts-5.6.3 ------------------------------------------------------------ OTP-5107 Only one to_erl process at a time is allowed to connect to the same run_erl pipe. Prevents buggy behaviour when IO from several to_erl's get interleaved. OTP-5382 IPv6 name resolving has now been fixed to use getaddrinfo() patch (thorughly reworked) courtesy of Love Hörnquist-Åstrand submitted by Fredrik Thulin. It also can use gethostname2() patch (also reworked) courtesy of Mikael Magnusson for debian submitted by Sergei Golovan. OTP-7252 Improved error handling in run_erl OTP-7267 A permanent fix for the deadlock issue temporarily fixed by OTP-7260. OTP-7260 The runtime system with SMP support could under rare circumstances deadlock when a distribution channel was taken down while multiple simultaneous operations were performed on it. OTP-7270 ./configure has been improved to find 64-bit OpenSSL libraries. OTP-7272 A terminating process could under very rare circumstances trigger a bug which could crash the runtime system with SMP support. OTP-7276 SCTP_ADDR_CONFIRMED events are now handled by gen_sctp. OTP-7281 binary_to_term/1 would crash the emulator if the binary data contained an external fun with non-atom module and/or function. Corrected to generate a badarg exception. OTP-7289 On Mac OS 10.5 (Leopard), sending to socket which the other end closes could cause the emulator to consume 100% CPU time. (Thanks to Matthias Radestock.) OTP-7290 On Unix, the emulator now notices when the width of the terminal has changed. (Thanks to Matthew Dempsky and Patrick Mahoney.) OTP-7301 The vanilla driver used on Windows could crash the emulator and sometimes produced corrupt files. The vanilla driver is the driver that is used when one only pass a filename as first argument to open_port/2. NOTE: This use of open_port/2 is obsolete, and the documentation of this use has previously been removed. The functionality is only present for backward compatibility reasons and will eventually be removed. OTP-7308 There is a new function init:stop/1 which can be used to shutdown the system cleanly AND generate a non-zero exit status or crash dump. (Thanks to Magnus Froberg.) OTP-7309 Faulty matching in binaries larger than 512Mb on 64bit machines fixed.(On 32bit, the size limit for binaries is still 512Mb). Thanks to Edwin Fine and Per Gustafsson for finding fault and fix. OTP-7311 process_info(Pid, garbage_collection) now returns more information OTP-7325 crypto:start() on Windows caused emulator to hang on error popup window if openssl DLL was not found. Windows error popups now suppressed. OTP-7338 Configuration option witout-termcap can be used to disable the use of termcap libraries for terminal cursor control in the shell. OTP-7342 to_erl reports its terminal window size to run_erl in order to get output formatted accordingly OTP-7343 On Solaris, the compressed option for file operations did not work if the file descriptor happened to be greater than 255 (a problem with fopen() and friends in Solaris itself). OTP-7349 A race condition in the runtime system with SMP support causing an erroneous removal of a newly created ets table has been fixed. The race occurred when a process removed a table during termination simultaneously as another process removed the same table via ets:delete/1 and a third process created a table that accidently got the same internal table index as the table being removed. OTP-7358 The hide option for open_port/2 is now documented. (Thanks to Richard Carlsson.) OTP-7359 zlib:inflate failed when the size of the inflated data was an exact multiple of the internal buffer size (4000 bytes by default). OTP-7372 If the total number of allowed atoms is exceeded, there will now be a controlled termination of the emulator with a crash dump file. The emulator used to simply crash. (Thanks Howard Yeh and Thomas Lindgren.) OTP-7394 The break handler in werl on Windows could cause the emulator to hang or crash, that is now corrected. OTP-7397 The configure script now tests for an serious optimization bug in gcc-4.3.0. If the bug is present, the configure script will abort (if this happens, the only way to build Erlang/OTP is to change to another version of gcc). (Thanks to Mikael Pettersson.) --- hipe-3.6.7 ------------------------------------------------------------ OTP-7388 Minor changes. --- ic-4.2.18 ------------------------------------------------------------ OTP-7313 Insufficient buffer allocated when passing wide strings using the C backend on a 64-bit architecture. --- inets-5.0.6 ------------------------------------------------------------ OTP-7266 [tftp] If a callback (which performs the file access in the TFTP server) takes too long time (more than the double TFTP timeout), the server will abort the connection and send an error reply to the client. This implies that the server will release resources attached to the connection faster than before. The server simply assumes that the client has given up. [tftp] If the TFTP server receives yet another request from the same client (same host and port) while it already has an active connection to the client, it will simply ignore the new request if the request is equal with the first one (same filename and options). This implies that the (new) client will be served by the already ongoing connection on the server side. By not setting up yet another connection, in parallel with the ongoing one, the server will consumer lesser resources. [tftp] netascii mode is now supported when the client/server has native ascii support (Windows). The new optional parameter native_ascii in the tftp_binary and tftp_file callback modules can be used to override the default behavior. [tftp] Yet another callback module has been added in order to allow customized handling of error, warning and info messages. See the new configuration parameter, logger. [tftp] Yet another configuration parameter, max_retries, has been added in order to control the number of times a packet can be resent. The default is 5. [tftp] tftp:info/1 and tftp:change_config/2 can now be applied to all daemons or all servers in one command without bothering about their process identifiers. External TR HI89527. --- inets-5.0.7 ------------------------------------------------------------ OTP-7304 [httpc, httpd] - Now follows the recommendation regarding line terminators in section 19.3 in RFC 2616 e.i: "The line terminator for message-header fields is the sequence CRLF. However, we recommend that applications, when parsing such headers, recognize a single LF as a line terminator and ignore the leading CR". --- inets-5.0.8 ------------------------------------------------------------ OTP-7315 [httpd] - Spelling error caused client connection header to be ignored. OTP-7321 [httpd] - Call to the function mod_get:get_modification_date/1 was made too early resulting in that httpd did not send the 404 file missing response. --- inets-5.0.9 ------------------------------------------------------------ OTP-7257 Parameters to error_logger:error_report/1 has been corrected. OTP-7323 [httpd] -If a Module/Function request matching an erl_script_alias registration does not exist as a function in the module registered a 404 error will now be issued instead of a 500 error. OTP-7341 [httpd] - The option auth_type for mod_auth is no longer mandantory, for backward-compatibility reasons. --- jinterface-1.4.1 ------------------------------------------------------------ OTP-7103 Jinterface has been fixed to use the loopback interface when connecting to the Erlang Port Mapper Daemon - epmd. This facilitates firewall configuration and saves resources. OTP-7330 Jinterface now refuses to connect to another node that does not agree on the other node's name. This has been a problem in that a connection was set up, but not used on a following send, which caused a second erroneous connection attemt to fail since the other (Erlang) node rejects a connection due to name disagreement. Problem reported and dissected by Alexander Lamb --- kernel-2.12.2.1 ------------------------------------------------------------ OTP-7283 os:cmd/1 on unix platforms now use /bin/sh as shell instead of looking for sh in the PATH environment. --- kernel-2.12.3 ------------------------------------------------------------ OTP-6940 Additional library directories can now be specified in the environment variable ERL_LIBS. See the manual page for the code module. (Thanks to Serge Aleynikov.) OTP-7262 crypto and zlib drivers improved to allow concurent smp access. OTP-7276 SCTP_ADDR_CONFIRMED events are now handled by gen_sctp. OTP-7277 When leaving a process group with pg2:leave/2 the process was falsely assumed to be a member of the group. This bug has been fixed. OTP-7278 In the Erlang shell, using up and down arrow keys, the wrong previous command could sometimes be retrieved. OTP-7282 In the SMP emulator, there was small risk that code:purge(Mod) would kill a process that was running code in Mod and unload the module Mod before the process had terminated. code:purge(Mod) now waits for confirmation (using erlang:monitor/2) that the process has been killed before proceeding. OTP-7308 There is a new function init:stop/1 which can be used to shutdown the system cleanly AND generate a non-zero exit status or crash dump. (Thanks to Magnus Froberg.) OTP-7358 The hide option for open_port/2 is now documented. (Thanks to Richard Carlsson.) OTP-7359 zlib:inflate failed when the size of the inflated data was an exact multiple of the internal buffer size (4000 bytes by default). --- megaco-3.7.5 ------------------------------------------------------------ OTP-7286 Documentation of function megaco:conn_info has been updated to include known exit reasons. OTP-7303 The transaction id counter could be incorrectly updated at wrap-around. The risk was expecially high at high load. --- megaco-3.8 ------------------------------------------------------------ OTP-7192 If a TransactionRequest arrives while a user is connecting (is in the callback function handle_connect as a result of a megaco:connect call), megaco responds with a pending message and then drops the request. OTP-7228 Miscellaneous text codec(s) improvments. Both regarding code size and decode performance. OTP-7259 Added the value flag to the resend_indication config option. --- mnesia-4.4.3 ------------------------------------------------------------ OTP-7340 Table referred to by foreign key did not have node_pool properly cleaned up when a node was removed from the schema. Thanks Paul Mineiro. OTP-7378 Mnesia crashed and generated a core dump if a schema_transaction was running when mnesia stopped. OTP-7383 It is now possible to delete a db node even when other disk resident nodes are down. Thanks Paul Mineiro. --- odbc-2.10.1 ------------------------------------------------------------ OTP-7019 Now supports out and input parameters for stored procedures. OTP-7294 ODBC is now prebuilt for SLES10 in the commercial build and parameters to error_logger:error_report/1 has been corrected. OTP-7307 Parametrized queries will now work correctly when using Erlang R12B-2 on Linux (SuSE 10.3), MySQL 5.0.45, myodbc 3.51 and unixODBC 2.2.12. Earlier it could happen that an error was returned even though data was correctly inserted into the database. --- odbc-2.10.2 ------------------------------------------------------------ OTP-7297 SQLINTEGERs where not retrived correctly on 64 bit platforms as an SQLINTEGER is defined to be a 32 bit integer and not a true long. --- os_mon-2.1.6 ------------------------------------------------------------ OTP-7320 System information retrieval on darwin platforms with environments locales not conforming to the C locale caused an error in cpu_sup resulting in process termination. --- parsetools-1.4.5 ------------------------------------------------------------ OTP-7292 The yecc grammar has been augmented with an optional header section. (Thanks to Richard Carlsson.) --- percept-0.7.2 ------------------------------------------------------------ OTP-7336 Calling egd:destroy/1 did not properly remove the process holding the image. Synchronous calls done via the egd interface could errornous receive messages not intended for egd. Messages are now tagged in such a way so this should not occur. --- sasl-2.1.5.3 ------------------------------------------------------------ OTP-7388 Minor changes. --- snmp-4.11 ------------------------------------------------------------ OTP-7201 [agent] Performance improvements in the case when an SNMP manager performs an snmpwalk. Martin Björklund. OTP-7287 The API for sending inform(s) has been improved. Also the documentation has been corrected and updated. OTP-7319 [agent] During an extensive snmp walk, the load could become unacceptably high. The performance of the internal database (local-db) has therefor been improved. OTP-7369 [agent] Added utility functions for restarting the agent worker processes (in case the agent is multi-threaded). OTP-7371 Add utility function to read compiled mib. OTP-7377 [manager] Encryption error when attempting to send version 3 inform-requests. OTP-7381 [agent] snmp_generic was unneccessary agressive when retrieving table and variable info, which resulting in an obscure badmatch EXIT when the mib was not loaded. --- stdlib-1.15.3 ------------------------------------------------------------ OTP-7181 An experimental module "re" is added to the emulator which interfaces a publicly available regular expression library for Perl-like regular expressions (PCRE). The interface is purely experimental and *will* be subject to change. The implementation is for reference and testing in connection to the relevant EEP. OTP-7248 zip:unzip to/from binary with empty directories did not work. (Thanks to Martin Dvorak.) OTP-7324 The documentation of the control sequence w of the io_lib module now states that floating point numbers are printed accurately. OTP-7382 zip:unzip was not supporting a flavour of the zip format found in jar-files. --- syntax_tools-1.5.5 ------------------------------------------------------------ OTP-7388 Minor changes. --- typer-0.1.3 ------------------------------------------------------------ OTP-7388 Minor changes. --- xmerl-1.1.9 ------------------------------------------------------------ OTP-5998 Fixed some error printouts. OTP-6947 An example error in the Xmerl Users Guide is corrected. OTP-7288 When xmerl_xsd:validate was executed the schema table was deleted and the next execution would fail. Therefor just one document could be validated with a compiled schema.