Bug fix release : otp_src_R11B-4 Build date : 2007-03-28 This is bug fix release 4 for the R11B release. You can download the full source distribution from http://www.erlang.org/download/otp_src_R11B-4.tar.gz http://www.erlang.org/download/otp_src_R11B-4.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-4.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-4.tar.gz http://www.erlang.org/download/otp_doc_man_R11B-4.tar.gz We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- HIGHLIGHTS ------------------------------------------------------------ OTP-6505 There is a new escript program that can be used for writing scripts in Erlang. Erlang scripts don't need to be compiled and any arguments can be passed to them without risk that they are interpreted by the Erlang system. OTP-6546 Dialyzer (in the modes where either source or BEAM code which contains debug_info is analyzed) spits out line information for all discrepancies. This has been a major change, worth of increasing the version number. We warn users that *considerably* more discrepancies are identified by this version of Dialyzer compared with previous ones and applications. If, for some reason, warnings generated by previous versions of Dialyzer are preferable, the command line option --old_style can be employed. --- documentation ------------------------------------------------------------ OTP-6510 Fixed some small errors and typos in the system documentation. (Thanks to Ulf Wiger, Bob Ippolito). --- appmon-2.1.8 ------------------------------------------------------------ OTP-6534 Removed some dead code from the appmon_info and process_info modules. Also rewritten large parts of process_info to make it easier to read and more efficient. --- asn1-1.4.4.14 ------------------------------------------------------------ OTP-6405 Now it is possible to use 'asn1config' and 'inline' options together. It is also possible to use 'inline' on a single file like: asn1ct:compile("MyASN1spec.asn",[inline]). OTP-6462 Data in info/0 in generated code is moved to attribute asn1_info, thus vsn value remains the same if compiler options for asn1-spec differs but the generated code is the same. OTP-6506 Dialyzer warnings on asn1 are removed, i.e. dead code removed. --- compiler-4.4.4 ------------------------------------------------------------ OTP-6461 Incorrect code could be generated for bit syntax matching if the old inliner was used with aggressive settings. --- cosNotification-1.1.4 ------------------------------------------------------------ OTP-6527 Removed some unused code. --- cosProperty-1.1.2 ------------------------------------------------------------ OTP-6527 Removed some unused code. --- cosTransactions-1.2.1 ------------------------------------------------------------ OTP-6527 Removed some unused code. --- debugger-3.1.1 ------------------------------------------------------------ OTP-6552 Removed some dead code from dbg_ieval. --- dialyzer-1.6.0 ------------------------------------------------------------ OTP-6546 Dialyzer (in the modes where either source or BEAM code which contains debug_info is analyzed) spits out line information for all discrepancies. This has been a major change, worth of increasing the version number. We warn users that *considerably* more discrepancies are identified by this version of Dialyzer compared with previous ones and applications. If, for some reason, warnings generated by previous versions of Dialyzer are preferable, the command line option --old_style can be employed. OTP-6547 Dialyzer handles term comparison operators more precisely and is able to identify more discrepancies in 'if' or 'case' statements with comparisons. Dialyzer has more precise type information for many standard OTP functions. --- edoc-0.7.2 ------------------------------------------------------------ OTP-6457 Some missing files have been added: ~/include/edoc_doclet.hrl, ~/priv/edoc.dtd, ~/priv/erlang.png OTP-6568 Undefined macros only cause warnings, not errors. New, built-in @version macro. Documented the @docfile and @headerfile generic tags. Added recognition of "TODO:" as a wiki equivalent for @todo tags. Added documentation about overview pages. 'where' and ',' are allowed as separators in specs. Corrected ambiguity in spec grammar (possible incompatibility issue - parentheses may need to be added in some cases, in existing code). Experimental (and undocumented) support for @param and @return tags and corresponding "..." annotations on @spec parameters. --- erts-5.5.3.1 ------------------------------------------------------------ OTP-6430 Faster system calls for keeping the time accurate are used on newer Linux kernels, which can result in a significant speed-up of the emulator on those systems. OTP-6431 erlang:system_flag(multi_scheduling, block) could cause the emulator with SMP support to deadlock. OTP-6432 The runtime system with SMP support failed to call the driver timeout callback of ports in state closing. This could cause ports to fail flushing their I/O queues. OTP-6437 The {Port, closed} message from a closed port could arrive at the port owner before Port had been removed from the result of erlang:ports/0 in the runtime system with SMP support. OTP-6438 The async id of async jobs created via driver_async wasn't created in a thread safe manner in the runtime system with SMP support. This could in worst case cause driver_async_cancel() to cancel another async job than intended. OTP-6440 Added number of async threads and number of scheduler threads to the system information that can be retrieved via driver_system_info(). For more information see the erl_driver(3) documentation. OTP-6447 Under rare circumstances a terminating connection between two nodes could cause an instantaneous reconnect between the two nodes to fail on the runtime system with SMP support. OTP-6452 In the documentation of the driver entry field extended_marker of erts version 5.5.3 (driver_entry(3)), the following is stated: "The following fields are ignored if this field is equal to 0". This is a documentation bug and has been changed to: "If this field is equal to 0, all the fields following this field also have to be 0, or NULL in case it is a pointer field". The runtime check for detection of old incompatible drivers made when loading drivers has been improved. The emulator can, however, not make sure that a driver that doesn't use the extended driver interface isn't incompatible. Therefore, when loading a driver that doesn't use the extended driver interface, there is a risk that it will be loaded also when the driver is incompatible. When the driver use the extended driver interface, the emulator can verify that it isn't of an incompatible driver version. You are therefore advised to use the extended driver interface. For more information see the erl_driver(3) and driver_entry(3) documentation. OTP-6465 When SIGUSR1 is received by the runtime system with SMP support, the erl_crash.dump is now written by a special thread, instead of as before directly from the signal handler. OTP-6473 An erroneous packet size could be used for the first messages passed through a newly established connection between two Erlang nodes. This could cause messages to be discarded, or termination of the connection. OTP-6475 When terminating ports on the runtime system with SMP support, removal of links to processes was done without locking the link lock on processes. This could cause an emulator crash. OTP-6479 The emulator with SMP support could crash when a port flushed its I/O queue by calling driver_async() from the timeout driver callback. OTP-6494

term_to_binary/2 with compression is now faster.

term_to_binary/2 now accepts the option '{compressed,Level}' for specifying the compression level. Level must be in the range 0 (no compression) through 9 (highest compression level). Default is 6.

Future compatibility bugfix: binary_to_term/1 did not handle the Uniq and Index fields correctly.

OTP-6516 Removed unnecessary reallocation when initializing kernel-poll set. OTP-6521 Large exit reasons could under rare circumstances cause the runtime system with SMP support to crash. --- erts-5.5.4 ------------------------------------------------------------ OTP-6336 An interface towards the SCTP Socket API Extensions has been implemented.It is an Open Source patch courtesy of Serge Aleynikov and Leonid Timochouk. The Erlang code parts has been adapted by the OTP team, changing the Erlang API somewhat. The Erlang interface consists of the module gen_sctp and an include file -include_lib("kernel/include/inet_sctp.hrl"). for option record definitions. The gen_sctp module is documented. The delivered Open Source patch, before the OTP team rewrites, was written according to http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-13 and was claimed to work fine, tested on Linux Fedora Core 5.0 (kernel 2.6.15-2054 or later) and on Solaris 10 and 11. The OTP team rewrites used the same standard document but might have accidentally broken some functionality. If so it will soon be patched to working state. The tricky parts in C and the general design has essentially not changed. During the rewrites the code was hand tested on SuSE Linux Enterprise Server 10, and briefly on Solaris 10. Feedbach on code and docs is very much appreciated. The SCTP interface is in beta state. It has only been hand tested and has no automatic test suites in OPT meaning everything is most certainly not tested. Socket active mode is broken. IPv6 is not tested. The documentation has been reworked due to the API changes, but has not been proofread after this. Thank you from the OTP team to Serge Aleynikov and Leonid Timochouk for a valuable contribution. We hope we have not messed it up too much. OTP-6433 Corrected misspelling of '-pz' in the help text for erlc. (Thanks to Ulf Wiger.) OTP-6434 A {minor_version,Version} option is now recognized by term_to_binary/2. {minor_version,1} will cause floats to be encoded in an exact and more space-efficient way compared to the previous encoding. OTP-6459 The MD5 calculation of a BEAM file done by code:module_md5/1, beam_lib:md5/1, and by the compiler for the default value of the vsn attribute have all been changed so that its result will be the same on all platforms; modules containing funs could get different MD5s on different platforms. OTP-6504 The emulator could dump core while writing an erl_crash.dump file if there were funs with a large terms in its environment. Since there is no way to inspect a fun's environment in the crashdump_viewer application anyway, a variables in the environment are now set to [] before dumping the fun. (Thanks to Jean-Sebastien Pedron.) OTP-6505 There is a new escript program that can be used for writing scripts in Erlang. Erlang scripts don't need to be compiled and any arguments can be passed to them without risk that they are interpreted by the Erlang system. OTP-6519 Setting and getting socket options in a "raw" fashion is now allowed. Using this feature will inevitably produce non portable code, but will allow setting ang getting arbitrary uncommon options on TCP stacks that do have them. OTP-6525 Miscellaneous signal handling improvements on the Erlang runtime system with SMP support. The fallback implementation of spin locks and atomic operations are now implemented using pthread spin locks when pthread spin locks are found on the system. The Erlang runtime system with SMP support can now run on Linux systems that has Linuxthreads instead of NPTL (Native POSIX Thread Library). Note that the SMP support hasn't been as thoroughly tested with Linuxthreads as with NPTL. A runtime system with SMP support will therefore not be built by default on Linux when NPTL isn't found. In order to force a build of the runtime system with SMP support, pass --enable-smp-support to configure when building OTP. OTP-6528 {Port, {exit_status, S}} messages from ports opened with the exit_status option could under rare circumstances be delayed. This bug was present on Erlang runtime systems without SMP support on all unix operating systems other than SunOS. OTP-6530 A bug in linuxthreads could cause the emulator to dump core when dlerror() was called before the first call to dlopen(). As a workaround the emulator always makes a call to dlopen() on initialization when linuxthreads is used as thread library. OTP-6531 file:sync/1 did not do anything on Windows. Now it calls the system function for flushing buffers (FlushFileBuffers()). (Thanks to Matthew Sackman.) OTP-6536 open_port/2 could on the runtime system with SMP support fail with the wrong exit reason when a port couldn't be created. When this happened the exit reason was typically eintr, or ebusy instead of eagain. OTP-6538 The file driver (efile_drv) did not flush data written using the option 'delayed_write' after the set timeout time, rather at the next file operation. This bug has now been corrected. --- gs-1.5.6 ------------------------------------------------------------ OTP-6541 Removed some dead code from gstk_editor and tcl2erl. --- hipe-3.6.1.1 ------------------------------------------------------------ OTP-6449 Dialyzer could fail to analyze certain beam files that used try/catch. --- hipe-3.6.2 ------------------------------------------------------------ OTP-6577 Miscellanous improvements. --- ic-4.2.12 ------------------------------------------------------------ OTP-6575 Dead code was deleted from the following modules: ic_cclient, ic_code, ic_cserver, ic_erlbe, ic_java_type, ic_noc, ic_plainbe, ic_pp, ic_pragma, icscan, icstruct, ictype, icunion. --- inets-4.7.9 ------------------------------------------------------------ OTP-6476 Bug in in handling of request timers has been corrected. OTP-6480 [tftp] - Daemon was only able to process one request when fd option was given. --- inets-4.7.10 ------------------------------------------------------------ OTP-6484 [httpd] - The server no longer produces error messages when the client resets the the connection. This is not an error as far as the server is concerned. OTP-6498 [tftp] The server is now silent by default. Error messages can however be displayed by setting the debug level to 'error' (new) or higher. --- inets-4.7.11 ------------------------------------------------------------ OTP-6511 [http] - Chunked encoding updated to handle the empty chunk. OTP-6522 [http] - Removed minor bugs and dead code found by dialyzer. --- inviso-0.2 ------------------------------------------------------------ OTP-6426 This ticket includes several improvements and bugfixes to both runtime_tools and inviso. The overload mechanism can now also react to incomming messages. This is useful if an external overload watch-dog is used. Some improvements of variable bindings has been done to the default autostart mechanism - inviso_autostart_server. Autostart "jobs" can now be done in paralell, allowing for some jobs to hang waiting for some parts of the traced system to become ready before proceeding. Previously when using named meta-match-specs (tpm_ms) ending up with zero match-specs still kept the meta trace pattern active. This caused zero match-specs to be equal to unlimited meta tracing on that particular function. If the internal database becomes empty of meta match specs, meta trace pattern is removed for that function. Standard public loop data in the inviso runtime meta tracer process is now extended to a 2-tuple. The functions ctp/1 and ctpl/1 are added making it possible to remove trace patterns for a list of functions rather than one by one. Inviso_rt_meta will now accept a list of binaries to be output into the trace information file, in additions to a single binary. Further it is also possible to make own output to the trace information file using the write_ti/1 function. An error was discovered in inviso_rt making the inviso_rt_meta remain rather than terminate if the inviso_rt terminated due to "running alone" (not allowed to run without a control component). A new tool, inviso_tool, has been added to the inviso application. --- inviso-0.2.1 ------------------------------------------------------------ OTP-6576 Misc improvements. --- kernel-2.11.3.1 ------------------------------------------------------------ OTP-6430 Faster system calls for keeping the time accurate are used on newer Linux kernels, which can result in a significant speed-up of the emulator on those systems. OTP-6431 erlang:system_flag(multi_scheduling, block) could cause the emulator with SMP support to deadlock. OTP-6432 The runtime system with SMP support failed to call the driver timeout callback of ports in state closing. This could cause ports to fail flushing their I/O queues. OTP-6437 The {Port, closed} message from a closed port could arrive at the port owner before Port had been removed from the result of erlang:ports/0 in the runtime system with SMP support. OTP-6438 The async id of async jobs created via driver_async wasn't created in a thread safe manner in the runtime system with SMP support. This could in worst case cause driver_async_cancel() to cancel another async job than intended. OTP-6440 Added number of async threads and number of scheduler threads to the system information that can be retrieved via driver_system_info(). For more information see the erl_driver(3) documentation. OTP-6447 Under rare circumstances a terminating connection between two nodes could cause an instantaneous reconnect between the two nodes to fail on the runtime system with SMP support. OTP-6452 In the documentation of the driver entry field extended_marker of erts version 5.5.3 (driver_entry(3)), the following is stated: "The following fields are ignored if this field is equal to 0". This is a documentation bug and has been changed to: "If this field is equal to 0, all the fields following this field also have to be 0, or NULL in case it is a pointer field". The runtime check for detection of old incompatible drivers made when loading drivers has been improved. The emulator can, however, not make sure that a driver that doesn't use the extended driver interface isn't incompatible. Therefore, when loading a driver that doesn't use the extended driver interface, there is a risk that it will be loaded also when the driver is incompatible. When the driver use the extended driver interface, the emulator can verify that it isn't of an incompatible driver version. You are therefore advised to use the extended driver interface. For more information see the erl_driver(3) and driver_entry(3) documentation. OTP-6465 When SIGUSR1 is received by the runtime system with SMP support, the erl_crash.dump is now written by a special thread, instead of as before directly from the signal handler. OTP-6473 An erroneous packet size could be used for the first messages passed through a newly established connection between two Erlang nodes. This could cause messages to be discarded, or termination of the connection. OTP-6475 When terminating ports on the runtime system with SMP support, removal of links to processes was done without locking the link lock on processes. This could cause an emulator crash. OTP-6479 The emulator with SMP support could crash when a port flushed its I/O queue by calling driver_async() from the timeout driver callback. OTP-6494

term_to_binary/2 with compression is now faster.

term_to_binary/2 now accepts the option '{compressed,Level}' for specifying the compression level. Level must be in the range 0 (no compression) through 9 (highest compression level). Default is 6.

Future compatibility bugfix: binary_to_term/1 did not handle the Uniq and Index fields correctly.

OTP-6516 Removed unnecessary reallocation when initializing kernel-poll set. OTP-6521 Large exit reasons could under rare circumstances cause the runtime system with SMP support to crash. --- kernel-2.11.4 ------------------------------------------------------------ OTP-4575 Added a warning to the documentation for the error_logger functions error_msg/1,2, warning_msg/1,2 and info_msg/1,2 that calling these function with bad arguments can crash the standard event handler. OTP-6336 An interface towards the SCTP Socket API Extensions has been implemented.It is an Open Source patch courtesy of Serge Aleynikov and Leonid Timochouk. The Erlang code parts has been adapted by the OTP team, changing the Erlang API somewhat. The Erlang interface consists of the module gen_sctp and an include file -include_lib("kernel/include/inet_sctp.hrl"). for option record definitions. The gen_sctp module is documented. The delivered Open Source patch, before the OTP team rewrites, was written according to http://tools.ietf.org/html/draft-ietf-tsvwg-sctpsocket-13 and was claimed to work fine, tested on Linux Fedora Core 5.0 (kernel 2.6.15-2054 or later) and on Solaris 10 and 11. The OTP team rewrites used the same standard document but might have accidentally broken some functionality. If so it will soon be patched to working state. The tricky parts in C and the general design has essentially not changed. During the rewrites the code was hand tested on SuSE Linux Enterprise Server 10, and briefly on Solaris 10. Feedbach on code and docs is very much appreciated. The SCTP interface is in beta state. It has only been hand tested and has no automatic test suites in OPT meaning everything is most certainly not tested. Socket active mode is broken. IPv6 is not tested. The documentation has been reworked due to the API changes, but has not been proofread after this. Thank you from the OTP team to Serge Aleynikov and Leonid Timochouk for a valuable contribution. We hope we have not messed it up too much. OTP-6380 A bug in inet_db concerning getting the resolver option 'retry' has been corrected. OTP-6428 Names registered by calling global:register_name() or global:re_register_name() were not always unregistered when the registering or registered process died. This bug has been fixed. OTP-6434 A {minor_version,Version} option is now recognized by term_to_binary/2. {minor_version,1} will cause floats to be encoded in an exact and more space-efficient way compared to the previous encoding. OTP-6466 Clarified the documentation for code:lib_dir/1 and code:priv_dir/1. The functions traverse the names of the code path, they do not search the actual directories. OTP-6481 Monitoring of nodes has been improved. Now the following properties apply to net_kernel:monitor_nodes/[1,2]: nodeup messages will be delivered before delivery of any message from the remote node passed through the newly established connection. nodedown messages will not be delivered until all messages from the remote node that have been passed through the connection have been delivered. Subscriptions can also be made before the net_kernel server has been started. OTP-6508 io:setopts returned {error,badarg}, when called with only an expand_fun. (Thanks to igwan.) OTP-6519 Setting and getting socket options in a "raw" fashion is now allowed. Using this feature will inevitably produce non portable code, but will allow setting ang getting arbitrary uncommon options on TCP stacks that do have them. OTP-6523 Dialyzer warnings have been eliminated. OTP-6535 The documentation for file:delete/1 and file:set_cwd/1 has been updated to clarify what happens if the input arguments are of an incorrect type. --- megaco-3.5.2 ------------------------------------------------------------ OTP-6404 Minor improvement to the text codec error reporting. OTP-6422 Missing (link) anchors. OTP-6490 Improper text encoding of EventSpecs. All codec versions. OTP-6503 Misc cleanup to eliminate some dialyzer warnings. --- megaco-3.5.3 ------------------------------------------------------------ OTP-6520 Miscellaneous minor corrections, such as removing "dead code". Detected by dialyzer. OTP-6549 Using the megaco:call function at high load could cause replies from other transqactions to be returned also. At high load, when a process calls the function megaco:call, which times out, then makes another call, it is possible that the reply to the first request arrives while the process is waiting for reply to the second request. As no checks were made if the reply was actually the expected (transaction-id), this reply was also included in the result. This problem has been fixed by calling the megaco_user callback function handle_unexpected_trans/3 if unexpected transactions are received. --- mnemosyne-1.2.7 ------------------------------------------------------------ OTP-6496 Mnemosyne has been updated to eliminate warnings by Dialyzer. --- mnesia-4.3.4 ------------------------------------------------------------ OTP-6367 Adding fragments to ram_copies tables was allowed on nodes that where down. OTP-6464 Mnesia leaked transaction decisions (memory and disk space). OTP-6545 dirty_update_counter/3 did not work properly on disc tables when the counter was not initiated (Thanks to Sebastien Saint-Sevin). OTP-6548 Chunked mnesia:select on fragmented tables could crash (Thanks to Primanathan Reddy). --- observer-0.9.7.3 ------------------------------------------------------------ OTP-6551 This application has been updated to eliminate warnings by Dialyzer. --- orber-3.6.5 ------------------------------------------------------------ OTP-6527 Removed some unused code. --- pman-2.5.3 ------------------------------------------------------------ OTP-6550 Removed some dead code from pman_process. --- runtime_tools-1.6.3 ------------------------------------------------------------ OTP-6426 This ticket includes several improvements and bugfixes to both runtime_tools and inviso. The overload mechanism can now also react to incomming messages. This is useful if an external overload watch-dog is used. Some improvements of variable bindings has been done to the default autostart mechanism - inviso_autostart_server. Autostart "jobs" can now be done in paralell, allowing for some jobs to hang waiting for some parts of the traced system to become ready before proceeding. Previously when using named meta-match-specs (tpm_ms) ending up with zero match-specs still kept the meta trace pattern active. This caused zero match-specs to be equal to unlimited meta tracing on that particular function. If the internal database becomes empty of meta match specs, meta trace pattern is removed for that function. Standard public loop data in the inviso runtime meta tracer process is now extended to a 2-tuple. The functions ctp/1 and ctpl/1 are added making it possible to remove trace patterns for a list of functions rather than one by one. Inviso_rt_meta will now accept a list of binaries to be output into the trace information file, in additions to a single binary. Further it is also possible to make own output to the trace information file using the write_ti/1 function. An error was discovered in inviso_rt making the inviso_rt_meta remain rather than terminate if the inviso_rt terminated due to "running alone" (not allowed to run without a control component). A new tool, inviso_tool, has been added to the inviso application. --- runtime_tools-1.6.5 ------------------------------------------------------------ OTP-6551 This application has been updated to eliminate warnings by Dialyzer. OTP-6576 Misc improvements. --- sasl-2.1.5 ------------------------------------------------------------ OTP-6499 Removed some dead code from erlsrv:get_service/2, release_handler:do_write_file/2, systools_relup:foreach_baserel_up/7 and systools_relup:foreach_baserel_dn/7. --- snmp-4.9 ------------------------------------------------------------ OTP-6317 [agent] Improve behaviour during massive trap- sending. This is done in two way's. 1) Improving performance of the target(s) cache (which is used during trap/notification sending). 2) A slightly better flow control, making it more difficult to actually overload the agent. OTP-6318 Added utility modules to read, write and update the config files of the snmpa_conf and snmpm_conf. OTP-6383 Include the INET-ADDRESS-MIB mib in the SNMP application. OTP-6415 Minor improvement to the mnesia snmp indexing. OTP-6487 [agent] Improve error handling of missing target params config. OTP-6515 Miscellaneous minor corrections, such as removing "dead code". Detected by dialyzer. OTP-6518 Minor documentation improvement for module snmp_generic. OTP-6529 [manager] Invalid guard on function snmpm:agn/5 made it impossible to reach this particular clause. Detected by dialyzer. OTP-6532 The snmp:config/0 utility function assumes by default current working dir as the directory to write config files. This is a problem since there are two files the same name, usm.conf, one for the agent and the other for the manager. OTP-6533 Incorrect handling of decrypt failure resulting in incorrect error reporting. Applies to both the agent and the manager. Detected by dialyzer. OTP-6540 Added documentation for snmp:passwd2localized_key/3 --- snmp-4.9.1 ------------------------------------------------------------ OTP-6569 [agent] Used wrong DEFVAL for vacmAccessStorageType (volatile instead of nonVolatile) in SNMP-VIEW-BASED-ACM-MIB. Martin Björklund. --- snmp-4.9.2 ------------------------------------------------------------ OTP-6571 [agent] Incorrect default verbosity (trace) for target cache. --- ssh-0.9.7 ------------------------------------------------------------ OTP-6446 [sftp] - The function ssh_sftp:make_symlink/3 was not fully implemented. OTP-6450 [ssh] - An internal value was, due to a bug, always set to undefined even when it was not, this could lead to connections being wrongly refused. OTP-6458 A pattern matching was missing "/binary" resulting in that the internal function ssh_xfer:decode_acl/2 did not work as expected. OTP-6471 [sftp] - read_link/2 did not return the documented value OTP-6483 Removed debugg printouts from ssh_cli.erl OTP-6488 [sftp, ssh] - The connection timeout was overridden by an internal gen_server default timeout. --- ssh-0.9.9 ------------------------------------------------------------ OTP-6379 A race condition that could make the server crash if a client sent a SSH_MSG_USERAUTH_REQUEST packet immediately after its SSH_MSG_SERVICE_REQUEST, is removed. OTP-6524 Corrected minor bugs and removed dead code found by dialyzer. --- stdlib-1.14.3.1 ------------------------------------------------------------ OTP-6491 Added the option {cwd, Dir} to make zip-archives with relative pathnames without having to do (a global) file:set_cwd. OTP-6495 The control sequences p and P of the Format argument of the functions io:fwrite/2,3 and io_lib:fwrite/2 could cause a badarg failure when applied to binaries. This bug was introduced in STDLIB 1.14.3. (Thanks to Denis Bilenko.) --- stdlib-1.14.4 ------------------------------------------------------------ OTP-6443 The functions beam_lib:cmp/1 and beam_lib:strip/1 (and similar functions) have been updated to handle optional chunks (such as "FunT") in more general way in order to be future compatible. The function beam_lib:chunks/3 has been added. The function beam_lib:md5/1 has been added. OTP-6459 The MD5 calculation of a BEAM file done by code:module_md5/1, beam_lib:md5/1, and by the compiler for the default value of the vsn attribute have all been changed so that its result will be the same on all platforms; modules containing funs could get different MD5s on different platforms. OTP-6470 Added base64 as a module to stdlib, encoding and decoding OTP-6472 Added the functions to_upper/1 and to_lower/1 to the string module. These provide case conversion for ISO/IEC 8859-1 characters (Latin1) and strings. OTP-6497 The callback function non_local_allowed/3 used by the restricted shell can now return the value {{restricted,NewFuncSpec,NewArgList},NewState} which can be used for letting the shell call some other function than the one specified. OTP-6505 There is a new escript program that can be used for writing scripts in Erlang. Erlang scripts don't need to be compiled and any arguments can be passed to them without risk that they are interpreted by the Erlang system. OTP-6517 The Format argument of the functions io:fwrite/2,3 and io_lib:fwrite/2 is now allowed to be a binary. OTP-6526 When sorting terms using the file_sorter module (the option Format set to term), file errors were not always properly handled. This bug has been fixed. The directory supplied with the tmpdir option is no longer checked unless it is actually used. The error reason not_a_directory can no longer be returned; instead a file_error tuple is returned OTP-6539 Bugs regarding try/catch have been fixed in the erl_eval module. OTP-6562 When sorting the operands of a join operation, QLC called file:open/3 with bad arguments. This bug has been fixed. --- syntax_tools-1.5.3 ------------------------------------------------------------ OTP-6468 A missing directory (examples) has been added and another broken link in the documentation has been fixed. --- tools-2.5.4 ------------------------------------------------------------ OTP-6513 Minor updates of xref for future compatibility. --- tv-2.1.4 ------------------------------------------------------------ OTP-6455 Removed some dead code from tv_pg_gridfcns:mark_cell_and_notify/4 and tv_nodewin:handle_error/1. --- xmerl-1.1.1 ------------------------------------------------------------ OTP-6402 Bug in xmerl removed so that simple syntax element content is exported correctly. --- xmerl-1.1.2 ------------------------------------------------------------ OTP-6460 Schema processor reprocessed schemas that already were processed, using process_schemas on a system of schemas with circular dependencies. OTP-6507 Dialyzer warnings now removed, i.e. dead code have been removed.