Bug fix release : otp_src_R11B-1 Build date : 2006-08-29 This is bug fix release 1 for the R11B release. You can download the full source distribution from http://www.erlang.org/download/otp_src_R11B-1.tar.gz http://www.erlang.org/download/otp_src_R11B-1.readme (this file) Note: To unpack the TAR archive you need a GNU TAR compatible program. For instance, on MacOS X before 10.3 you must use the 'gnutar' command; you can't use the 'tar' command or StuffIt to unpack the sources. 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_R11B-1.exe On-line documentation can be found at http://www.erlang.org/doc.html. You can also download the complete HTML documentation or the Unix manual files http://www.erlang.org/download/otp_doc_html_R11B-1.tar.gz http://www.erlang.org/download/otp_doc_man_R11B-1.tar.gz We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- documentation ------------------------------------------------------------ OTP-6161 Minor correction in Getting Started chapter 2.10 --- asn1-1.4.4.11 ------------------------------------------------------------ OTP-6143 When copiling an asn1 source that reference a type in another source the compiler uses the asn1db file of the other source to resolve the reference. It also tests whether the other source has been updated since the asn1db file was generated. This last test was to brutal in that it exits compilation when no source was found, even though a asn1db file existed. Changed behaviour from a brutal exit to a warning. --- compiler-4.4.1 ------------------------------------------------------------ OTP-6121 The compiler used to crash if a module contained code similar to 'fun(1=0) -> ok end'. (Thanks to Richard Carlsson.) The compiler would spend really long time compiling bit syntax expressions such as '<<1:(50*1024*1024)>>' and produce a huge .beam file. Corrected. The compiler would compile list comprehensions with many generators really, really slow. (Thanks to Thomas Raes.) Module attributes would be stored in reverse order compared to the order in the source code. (Thus, M:module_info(attributes) would also return the attributes in reversed order.) Defining a fun in an after block of a try would cause the compiler to crash or generate incorrect code. (Thanks to Martin Bjorklund.) The combination of binary pattern and a guard with andalso/orelse could cause the compiler to crash. --- dialyzer-1.4.2 ------------------------------------------------------------ OTP-6128 Improvements in PLT management. --- erl_interface-3.5.5.1 ------------------------------------------------------------ OTP-6132 Portability enchancements. --- erts-5.5.1 ------------------------------------------------------------ OTP-6119 The smp runtime system now automatically detects the number of logical processors on MacOSX (darwin) and OpenBSD. The smp runtime system is now built by default on MacOSX (darwin) on x86. OTP-6124 The emulator could dump core when reading a file over nfs which was simultaneously written. OTP-6126 The -smp command line argument now take the following options: enable, auto, or disable. Especially the -smpauto argument is useful since it starts the Erlang runtime system with SMP support if it is available and more than one logical processor are detected; otherwise, it starts the Erlang runtime system without SMP support. For more information see the erl(1) man page. OTP-6142 Complex pattern matching of strings would fail in the 64 bits emulator because of a bug in the loader. (Thanks to Igor Goryachev.) OTP-6154 -134217728 div 134217728 and -134217728 rem 134217728 would be calculated incorrectly. abs(-2147483648) could in unlucky circumstances cause a heap overflow, as could size(Binary) when size of the binary was larger than 128Mb. OTP-6156 erlang:display/1 displayed erroneous values for negative integers. Big integers (both positive and negative) were previously displayed in hexadecimal form while small integers were displayed in decimal form. All integers are now displayed in decimal form. NOTE: erlang:display/1 should only be used for debugging. OTP-6175 A call to erlang:trace/3 with erroneous flags caused the SMP emulator to deadlock instead of exiting the calling process with badarg. OTP-6180 A bug causing the emulator to hang when exiting a process that is exception traced has been fixed. OTP-6196 Increased the reduction cost for sending messages in the SMP emulator so it behaves more like the non-SMP emulator. OTP-6198 ets:rename/1 could deadlock, or crash the SMP emulator when the table wasn't a named table. ets:next/2, and ets:prev/2 could return erroneous results on the SMP emulator. OTP-6199 A memory allocation bug could cause the SMP emulator to crash when a process had executed a receive after with a larger timeout than 10 minutes. OTP-6202 The runtime system with SMP support did not slowly adjust it's view of time when the system time suddenly changed. Timeouts could sometimes timeout too early on the runtime system with SMP support. OTP-6204 A port running a dynamically linked-in driver that exits due to the driver being unloaded now exits with exit reason driver_unloaded. Previously the port exited with exit reason -1. OTP-6208 Changed name of the erlang:system_info/1 argument scheduler to scheduler_id. This since the scheduler argument so easily could be mixed up with the schedulers argument (both returning integers). OTP-6211 The changes below were made by Mikael Pettersson, HiPE. HiPE runtime system: Reduce overheads in the HiPE runtime system's BIF glue code. Fix bug when exceptions are thrown from BEAM to HiPE. Support SPARC on Linux. Support x86 on FreeBSD. Floating-point exceptions: Reduce overheads in checking results of floating-point operations. Minor bug fix in SSE2 floating-point exception handling. Support SSE2 floating-point exceptions on 32-bit x86 machines. Make FP exceptions work in the SMP runtime system on FreeBSD/x86. Support floating-point exceptions on SPARCs running Linux. Runtime system: Minor scheduler optimisation in the non-SMP runtime system. Substantial reduction of I/O thread overheads in the SMP runtime system if the separate timer thread is used. (In R11B-1, the separate timer thread is not used.) --- hipe-3.5.6 ------------------------------------------------------------ OTP-6127 Improved compilation of receives for the SMP runtime system. Improved code quality in HiPE compiler on ARM. Fix bug in handling of re-raised exceptions in try-catch. (HiPE loader) When native code is incompatible with the current runtime system, fall back to loading the BEAM code. --- inets-4.7.5 ------------------------------------------------------------ OTP-6018 [FTP] Change documentation so that it agrees with the default behaviour of the code regarding use of transfer type, which is right according to rfc959. OTP-6035 [ftp] The application handles the case if the owning process terminates with the reason 'shutdown'. OTP-6036 [ftp] Handle file errors from the FTP server. OTP-6135 Added an application interface module (inets.erl). OTP-6145 Header parsing of reply from cgi script incorrect. OTP-6184 The timeout given in the ftp:open call was not properly used, which could leave the caller hanging forever. OTP-6189 HTTPD request handler does not handle unexpected info properly, which causes an unneccessarily obscure error message. OTP-6191 Misc fixes in the URI parsing module. --- kernel-2.11.1 ------------------------------------------------------------ OTP-6163 In R11B-0, the erl_ddll server process is always started. Despite that, the configuration parameter start_ddll for the Kernel application was still obeyed, which would cause the erl_ddll server to be started TWICE (and the system shutting down as a result). In this release, start_ddll is no longer used and its documentation has been removed. OTP-6197 Late arriving tcp_closed and udp_closed messages are now removed from the message queue of a process calling gen_tcp:close/1, gen_udp:close/1, and inet:close/1. OTP-6200 The kernel option {dist_auto_connect,once} could block out nodes that had never been connected, causing persistent partitioning of networks. Furthermore, partial restarts of networks could cause inconsistent global name databases. Both problems are now solved. --- megaco-3.4.2 ------------------------------------------------------------ OTP-5769 Added support for another pre version of v3 (prev3c). This is basically the complete v3 with exception of segments. OTP-5980 The SDP support has received a major updated. Added two new function's to decode and encode SDP. OTP-6030 Added the possibillity to conditionally request immediate acknowledgement of a reply. OTP-6048 Modify the way the stack handles the reply-timer. Now, if an incremental timer is used, every time there is an intermediate timeout, the timer is restarted (just as before) but the reply is also resent! OTP-6051 Added another config option long_request_resend. The purpose of this option is to make the megaco application to continue re-sending requests, even after having received a pending message, until it receives the reply or it gives up (timeout). OTP-6052 Add possibillity to override send options when sending reply messages. This is done by adding another return alternative to the handle_trans_request callback function. OTP-6055 Handling failure to send reply. Previously, when megaco was unable to send a reply (built from the action list returned by handle_trans_request), nothing was done, except for sending an error message. This has now been changed so that the error will be returned to the user via a call to the callback function, handle_trans_ack (unless ack_action = discard_ack). OTP-6089 Bad formated debug printout in transaction sender. OTP-6090 Removed unnecessary error report. In a special case two (error_logger) error reports could be sent: When receiving a transaction request for which an reply, with immediade-ack-requested, has already been send, the reply is resent. But if the sending failes, two (error_logger) error reports is sent. This has been corrected (so that only one is sent). OTP-6108 Fix release notes history. OTP-6113 Incorrect version string(s) in appup file. Most of the version strings in the appup file was malformed, which most likely made up-/downgrade impossible. OTP-6148 Pending limit exceeded error message was incorrectly composed as a message error instead of a TransactionReply (transactionError) error. --- megaco-3.4.3 ------------------------------------------------------------ OTP-6170 Added a number of v3 related error codes (defined in H248.08) OTP-6171 Added check for the illegal option reply_data in the Options (third) argument to the megaco:call function. The valid options was documented but never checked. OTP-6172 Miscellaneous documentation fixes --- mnesia-4.3.2 ------------------------------------------------------------ OTP-6193 Mnesia sometimes failed to remove [d]ets table fixation, when using mnesia:first/1,mnesia:next/2 or qlc this could cause that deleted records are not actually deleted in the [d]ets table and mnesia:[dirty_]first/1 reported the wrong key. --- os_mon-2.1.1 ------------------------------------------------------------ OTP-6136 Did not build on Mac OS X. Added support for IRIX. (Thanks to Michel Urvoy and Daniel Solaz.) OTP-6153 disksup: Now using round(T*100) instead of trunc(T*100) when setting the threshold value given a float T. --- sasl-2.1.3 ------------------------------------------------------------ OTP-6162 release_handler:upgrade_app/2 and release_handler:downgrade_app/2,3 -- used for testing application upgrade and downgrade according to the .appup file -- now update application configuration parameters correctly. (Thanks to Serge Aleynikov) --- snmp-4.8 ------------------------------------------------------------ OTP-6137 Added a config option, sndbuf, for the net_if-module(s). OTP-6149 Improve error handling of the log_to_txt function(s). [snmpm|snmpa]:log_to_txt on a non-existing log-file causes an obscure error reason. OTP-6150 [compiler] Allow empty definitions for SMI-II mibs, i.e. mibs are allowed to only contain the MODULE-IDENTITY construct. OTP-6164 Performance improvement when converting audit trail logs. --- snmp-4.8.1 ------------------------------------------------------------ OTP-6177 Removed an io:format in mini mib utility (used when converting logs). --- ssh-0.9.3 ------------------------------------------------------------ OTP-6138 Added way for cli to get peer name --- ssh-0.9.4 ------------------------------------------------------------ OTP-6183 Unnecessary explicit start of crypto application in ssh application. This has been removed. The app-file specifies that ssh depends on the crypto app. This is enough. Also changed some error reports to info reports. --- stdlib-1.14.1 ------------------------------------------------------------ OTP-6140 The functions c:y/1,2 which call yecc:file/1,2 are now listed by c:help/0. Documentation of c:y/1,2 has been added to c(3). The fact that the control sequence character s recognizes binaries and deep character lists has been documented in io(3). This feature was added in R11B-0 (OTP-5403). OTP-6166 The shell command rr() sometimes failed to read record definitions from file(s). This problem has been fixed. OTP-6169 The nonlocal function handler in erl_eval, which is used for implementing the restricted mode of the Erlang shell, did not handle calls to erlang:apply/3 correctly. This bug has been fixed. OTP-6198 ets:rename/1 could deadlock, or crash the SMP emulator when the table wasn't a named table. ets:next/2, and ets:prev/2 could return erroneous results on the SMP emulator. OTP-6206 When closing a Dets table the space management data was sometimes saved in such a way that opening the table could not be done without repairing the file. This bug has been fixed. --- tools-2.5.1 ------------------------------------------------------------ OTP-6152 eprof now works somewhat better in the SMP emulator.