Bug fix release : otp_src_R10B-8 Build date : 2005-10-25 This is a bug fix release 8 for the R10B release. You can download the full source distribution from http://www.erlang.org/download/otp_src_R10B-8.tar.gz http://www.erlang.org/download/otp_src_R10B-8.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_R10B-8.exe The documentation at http://www.erlang.org will be updated. You can also download the complete HTML documentation or the Unix manual files http://www.erlang.org/download/otp_doc_html_R10B-8.tar.gz http://www.erlang.org/download/otp_doc_man_R10B-8.tar.gz For some OTP applications there are more detailed release notes in the HTML documentation. We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- asn1-1.4.4.8 ------------------------------------------------------------ OTP-5687 The dynamic sort of SET OF values now correctly handles values encoded in the "ber_bin, der, optimize" mode, the value of a SET OF is a list of binaries. OTP-5688 Bad code was generated for an INTEGER with valuerange. If the value that was encoded had a lower bound with negative value it caused a crash. This bug is now removed. OTP-5689 Compiler now handles wrong include paths by returning an error if a referenced module is not available. OTP-5701 Better handling of filename paths OTP-5710 The bug causing a runtime error when encoding a type defined by: BIT STRING {a(1),b(2)} with the value [] in per_bin mode is now removed. --- compiler-4.3.10 ------------------------------------------------------------ OTP-5714 When given the new option 'strict_record_tests', the compiler will generate code that verifies the record type for 'R#record.field' operations (in body context only, not in guards). See the documentation for the compile module for more information. The beam validator pass of the compiler could crash given in rare circumstances when given certain combinations of catches and record operations. (Thanks to Mats Cronqvist.) Attributes containing binaries (such as -a(<<1,2,3>>)) would crash the compiler. (Thanks to Roger Price.) Multiple behaviours in the same module will no longer generate a warning, unless one or more callbacks for the behaviours overlap. For instance, using both the 'application' and 'supervisor' behaviours in the same module will NOT generate any warning, but using 'gen_server' and 'gen_fsm' will. OTP-5777 The pre-processor used to complain that the macro definition '-define(S(S), ??S).' was circular, which it isn't. (Thanks to Richard Carlsson.) --- crypto-1.4 ------------------------------------------------------------ OTP-5631 The previously undocumented and UNSUPPORTED ssh application has been updated and documented. This release of the ssh application is still considered to be a beta release and (if necessary) there could still be changes in its API before it reaches 1.0. Also, more cryptographic algorithms have been added to the crypto application. --- debugger-3.0 ------------------------------------------------------------ OTP-5730 Debugger can now handle try-catch. This meant large parts of the interpreter had to be rewritten. Also, some small changes to the GUI have been made. --- edoc-0.6.7 ------------------------------------------------------------ OTP-5776 documented package-reference syntax `package.*' paragraph breaking in html text == Heading == and {@section Heading} [http://...] notation (http, ftp, file) in html text @TODO/@todo and todo-option @throws type localdefs parameter name hints from record patterns and ++-patterns @headerfile and @docfile tags (not yet documented) record type syntax (not yet documented) --- erts-5.4.9.1 ------------------------------------------------------------ OTP-5716 On VxWorks, epmd did not handle file descriptors with higher numbers than 63. Also, if epmd should get a file descriptor with a number >= FD_SETSIZE, it will close a the file descritport and write a message to the log (instead of mysteriously fail); the Erlang node that tried to register will fail with a duplicate_name error (unfortunately, epmd has no way to indicate to the Erlang node why the register attempt failed). --- erts-5.4.9.2 ------------------------------------------------------------ OTP-5751 The native resolver has gotten an control API for extended debugging and soft restart. It is: inet_gethost_native:control(Control) Control = {debug_level,Level} | soft_restart Level = integer() in the range 0-4 --- erts-5.4.10 ------------------------------------------------------------ OTP-5709 The BIFs iolist_size/1 and iolist_to_binary/1 has been added. The BIF list_to_existing_atom/1 has been added. Minor bug fix: The exception reason could be changed to error inside nested try/catch constructs if the erlang:raise/3 BIF was called with an empty stacktrace. (Calling erlang:raise/3 with an empty stacktrace is NOT recommended.) Minor bugfix: On Windows, file:open/2 will now return the documented error reason {error,eisdir} if the filename refers to a directory (it used to return {error,eacces}. The message in the documentation for erlang:system_monitor/2, description of busy_dist_port, was corrected. OTP-5715 The previously undocumented and UNSUPPORTED zlib module has been updated in an incompatible way and many bugs have been corrected. It is now also documented. OTP-5749 -D_GNU_SOURCE is now always passed on the compile command line on linux. This in order to ensure that all included system headers see _GNU_SOURCE defined. _GNU_SOURCE is now also defined on linux in configure when looking for features. Some minor (harmless) configure bugs were also fixed. OTP-5756 New socket options priority and tos for platforms that support them (currently only Linux). OTP-5757 Some compiler warnings and Dialyzer warnings were eliminated in the tools application. When tracing to a port (which fprof does), there could be fake schedule out/schedule in messages sent for a process that had exited. OTP-5758 Only the emulator is now linked with termcap library in order to decrease library dependencies for other otp programs. --- hipe-3.5.3 ------------------------------------------------------------ OTP-5774 Some register allocation / spill minimisation improvements, and some type analysis updates. --- inets-4.5.4 ------------------------------------------------------------ OTP-5705 [ftp, client] - Timing related issues could sometimes cause the ftp response to be delayed. OTP-5706 [http, server, esi] - The dispatching of the post body to the esi callback fuction was broken. --- inets-4.6 ------------------------------------------------------------ OTP-5711 [ftp, client] - Improvement of error handling if something goes wrong while handling the option list in ftp:open/[1,2,3]. OTP-5712 [ftp, client] - Error when parsing a multiple FTP response line. The last line in a multiple response must be the response code followed by a space. A server may have intermidate lines that start with the response code even if this is not recommended. The parsing missed to make sure that that space was present in what it considered to be the last line. OTP-5728 [http, client] - The HTTP client will now retry a pipelined request that was unsuccessful due to the fact that the server unexpectedly closed the pipeline connection. OTP-5729 [http, server] - The HTTP request handling was remoduled to have a more straight forward error-handling. And the internal debug strategy was changed to use tracing instead of debug macros, which means we do not have to write special debug code. OTP-5731 ftp:ls towards different ftp servers resulted in different return results. E.g. the solaris 9 default server caused {ok,[]} while older servers caused {error,epath} as the result. For backwards compatibility the behaviour has been changed to the old result. OTP-5735 [http, server, esi] - Under some circumstances mod_esi would send a corrupted content-length header. OTP-5738 FTP: a data connection setup to the ftp server that failed caused a crash of the client. Now it is handled smothely. OTP-5752 [http, server] - The documentation for the HTTP server has been partly rewritten and very restructured too provide a better overall picture. Lots of information provided by "semi manual pages" has been moved to the Users Guide. OTP-5753 FTP: verbose mode now also prints what the client sends on the control channel. OTP-5762 [http, server, get] - Removed debug printout which caused a confusing "Socket closed"-printout at high load. OTP-5764 [ftp] If host name is a ipv4 tuple ftp erronous tries to connect as a ipv6 address with the ipv4 address. OTP-5765 [ftp] Handles connect to ipv6/ipv4 address differently according to a change in inet:getaddr. --- inets-4.6.1 ------------------------------------------------------------ OTP-5766 [http, client] The verbose mode prints what was sent and received during a request. Added a verbose option that can be used by http:set_options/1 OTP-5773 [http, client] If an Ipv4-mapped ipv6 address is used the client now falls back on ipv4. OTP-5775 [http,server] Content-length may got a too low value, causing loss of data in clients. --- kernel-2.10.10.1 ------------------------------------------------------------ OTP-5751 The native resolver has gotten an control API for extended debugging and soft restart. It is: inet_gethost_native:control(Control) Control = {debug_level,Level} | soft_restart Level = integer() in the range 0-4 --- kernel-2.10.11 ------------------------------------------------------------ OTP-5563 Several bug fixes and improvements in the global name registration facility (see global(3)): the name resolving procedure did not always unlink no longer registered processes; the global name could sometimes hang when a nodedown was immediately followed by a nodeup; global names were not always unregistered when a node went down; it is now possible to set and delete locks at the same time as the global name server is resolving names--the handling of global locks has been separated from registration of global names; As of this version, global no longer supports nodes running Erlang/OTP R7B or earlier. OTP-5715 The previously undocumented and UNSUPPORTED zlib module has been updated in an incompatible way and many bugs have been corrected. It is now also documented. OTP-5724 Added application interface functions which_applications/1, set_env/4 and unset_env/3, which take an additional Timeout argument. To be used in situations where the standard gen_server timeout (5000ms) is not adequate. OTP-5737 The functions global:set_lock/3 and global:trans/4 now accept the value 0 (zero) of the Retries argument. OTP-5743 The inet:getaddr(Addr, Family) no longer validates the Addr argument if it is a 4 or 8 tuple containing the IP address, except for the size of the tuple and that it contains integers in the correct range. The reason for the change is that validation could cause the following sequence of calls to fail: {ok,Addr} = inet:getaddr(localhost, inet6), gen_tcp:connect(Addr, 7, [inet6]) OTP-5754 Improved documentation regarding synchronized start of applications with included applications (using start phases and application_starter). OTP-5756 New socket options priority and tos for platforms that support them (currently only Linux). OTP-5770 The global name server has been optimized when it comes to maintaining a fully connected network. --- megaco-3.1 ------------------------------------------------------------ OTP-5542 Encoding of SDP was in text not done strictly according RFC2327. Each line should be terminated with carriage return and newline (0x0d0a), but was only terminated with single newline (0x0a). OTP-5597 Misc bugs detected by Dyalizer OTP-5600 Incorrect text encoding of embedded Signal. OTP-5601 Incorrect text encoding of embedded Events. OTP-5619 The megaco_incr_timer has been tweaked so that the max_retries field can now also take the value infinity_restartable. This means that the only way to actually restart the timer is if some external event occurs, such as a pending message whe the long request timer is running. That is, if the timeout time actually expires, then so does the timer. OTP-5664 Added function (megaco:format_versions/1) to (format) print the extended version info produced by the megaco:versions1/0 and megaco:versions2/0 functions. --- megaco-3.2 ------------------------------------------------------------ OTP-5717 Added support for another pre version of v3 (prev3b). This is basically the same as prev3a except that context priority (in contextProperties) has been "fixed" so that it is backward compatible with v2. OTP-5750 The (digit map) test and eval function(s) was lacking result info on what kind of completion was done; full or unambiguous --- mnemosyne-1.2.5.1 ------------------------------------------------------------ OTP-5722 Mnemosyne has been updated to eliminate warnings by the compiler and Dialyzer. Also includes very minor bug fixes. --- mnesia-4.2.3 ------------------------------------------------------------ OTP-5638 Dumping log files (during start),containing a add_index operation on disc_only_copies tables failed, which caused that the remaining operations in the log file was never executed. --- sasl-2.1 ------------------------------------------------------------ OTP-5761 A new option {update_paths,Bool} has been added for release_handler:install_release/2. It indicates if all application code paths should be updated (Bool==true), or if only code paths for modified applications should be updated (Bool==false, default). release_handler:set_unpacked/2 now returns an error tuple if a specified application directory does not exist. --- snmp-4.4 ------------------------------------------------------------ OTP-5666 Updated and extended the agent info retrieval function. Also added an info retrieval function for the manager. OTP-5668 [manager] Add simple start function (start with default values). OTP-5669 [manager] Added get-bulk functionality, see snmpm:gb and snmpm:agb for more info. OTP-5675 [manager] Mini-MIB not properly initiated which could cause a server crash if the name_to_oid or oid_to_name functions where called (if no mib's where loaded). OTP-5676 [manager] The out packet counter was not incremented for sent v1/v2 messages. OTP-5678 [manager] The request GC process was started with the wrong default value (idle) which could (unlikely but still) cause problems after a code-change. OTP-5703 Bad handling of error cases (corrupt log file) when converting log files (i.e. when calling the function log_to_txt). --- snmp-4.4.1 ------------------------------------------------------------ OTP-5719 [manager] If sending a set-request containing an 'OCTET STRING' with an invalid integer (valid integer are 0-255), the encoding will fail and cause the net_if process to crash. OTP-5720 [manager] Add monitoring of the SNMP manager. The SNMP application consists of two different runtime parts, the agent and the manager. They are independent of each other. The agent is "permanent" and the manager "transient". In order to handle manager crashes a simple monitor function has been added. --- snmp-4.5 ------------------------------------------------------------ OTP-5581 [manager] In order to present the various error reason's returned by the manager, a format_reason function has been added. The error reasons this function handles are those returned by the (sync and async) get, get-next, get-bulk and set-functions as well as the Reason argument of the handle_error function of the user callback module. OTP-5726 [manager] In order to improve application behaviour all callback function (the snmpm_user behaviour) calls are now done by spawned processes (and not as previously by the SNMP manager server process). OTP-5727 Explicitly sync all audit trail log's upon termination. OTP-5732 [agent] Table get-request failure in some cases. OTP-5733 [manager] Introduced the "inform-request-behaviour" configuration option to allow the user to specify how/when the manager shall acknowledge the request. OTP-5740 [agent] Check of notification name collision could fail due to incorrect record name (assumed to be #trap, but could also be #notification). This only cases a problem when the application is compiled with the strict_record_tests option. OTP-5742 [manager] The (error) report according to RFC 2572, chapter 7.2 point 6) was never sent. --- ssh-0.9 ------------------------------------------------------------ OTP-5631 The previously undocumented and UNSUPPORTED ssh application has been updated and documented. This release of the ssh application is still considered to be a beta release and (if necessary) there could still be changes in its API before it reaches 1.0. Also, more cryptographic algorithms have been added to the crypto application. --- ssl-3.0.8 ------------------------------------------------------------ OTP-5702 A process reading only a portion of a sufficiently large amount of data from an accepted socket, and then quering the ssl library (e.g. ssl:getpeername()), would cause a global deadlock in the esock port program. OTP-5708 A spelling error in the module ssl_pkix caused the call to ssl:peercert/2 to fail when the option subject was used. OTP-5755 Because fopen() on Solaris 8 can't handle file descriptor numbers above 255, reading of certificate files would fail if all file descriptors below 256 were in use (typically, if many connections were open). This problem has been worked around. The ssl application's port program used to use select(), which meant that it could not handle more than FD_SETSIZE file descriptors (usually 1024). To eliminate that limitation, poll() is now used on all platforms that support it. Solaris/Sparc, 64-bit emulator: The SO_REUSEADDR option was not set for listen sockets, which essentially made the ssl application unusuable. Corrected. The default listen queue size for ssl port program was changed to 128 (from 5). --- ssl-3.0.9 ------------------------------------------------------------ OTP-5784 The port program for the ssl application could waste huge amounts of CPU time if a write could not be completed directly and was put in the write queue. (Only on platforms where poll() is used, such as Solaris and Linux.) --- stdlib-1.13.10 ------------------------------------------------------------ OTP-5739 A couple of type errors have been fixed in sofs. OTP-5777 The pre-processor used to complain that the macro definition '-define(S(S), ??S).' was circular, which it isn't. (Thanks to Richard Carlsson.) --- tools-2.4.6 ------------------------------------------------------------ OTP-5746 Emacs: erlang-man-function and erlang-man-module used a pattern matching to find the requested module that sometimes yielded unexpected results. For example, erlang-man-module file would display the man page for CosFileTransfer_File. OTP-5757 Some compiler warnings and Dialyzer warnings were eliminated in the tools application. When tracing to a port (which fprof does), there could be fake schedule out/schedule in messages sent for a process that had exited.