Bug fix release : otp_src_R12B-5 Build date : 2008-11-05 This is bug fix release 5 for the R12B release. You can find the README file for the release at http://www.erlang.org/download/otp_src_R12B-5.readme (this file) The source distribution and binary distribution for Windows can be downloaded from http://www.erlang.org/download/otp_src_R12B-5.tar.gz http://www.erlang.org/download/otp_win32_R12B-5.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-5.tar.gz.torrent http://www.erlang.org/download/otp_win32_R12B-5.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-5.tar.gz http://www.erlang.org/download/otp_doc_man_R12B-5.tar.gz We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- HIGHLIGHTS ------------------------------------------------------------ OTP-7531 Processes spawned using proc_lib (including gen_server and other library modules that use proc_lib) no longer keep the entire argument list for the initial call, but only the arity. Also, if proc_lib:spawn/1 is used to spawn a fun, the actual fun is not kept, but only module, function name, and arity of the function that implements the fun. The reason for the change is that keeping the initial fun (or a fun in an argument list), would prevent upgrading the code for the module. A secondary reason is that keeping the fun and function arguments could waste a significant amount of memory. The drawback with the change is that the crash reports will provide less precise information about the initial call (only Module:Function/Arity instead of Module:Function(Arguments)). The function proc_lib:initial_call/1 still returns a list, but each argument has been replaced with a dummy atom. OTP-7586 In user-defined attributes, Name/Arity is now allowed and will be translated to {Name,Arity}. (An implementation of EEP-24 by Richard O'Keefe.) The module_info/{0,1} functions automatically inserted into each compiled modules are now documented in the Modules section in the Reference Manual. OTP-7630 The eunit application (for unit testing of Erlang modules) by Richard Carlsson is now included in OTP. --- asn1-1.6.1 ------------------------------------------------------------ OTP-7166 Now supports REAL type of base 2 and 10 OTP-7174 Bug regarding propagation of parameters of parameterized type fixed. OTP-7204 By the asn1 compiler option {record_name_prefix Name} a prefix is choosen to the name of the record generated in the .hrl and used in the generated .erl files. OTP-7295 The TypeFromObject production now covered OTP-7299 A bug, related to instatiation of a parameterized type with a type definition in the parameterlist, has been removed. The defininition of the parameter type was in another module than the instance definition causing limited module info. OTP-7306 Extended support for ObjectSetFromObjects. Production occured as a part of the RootElementSetSpec of the ObjectSetSpec. Added also support for Exclusion of Element in ObjectSetSpec. OTP-7322 Removed hardcoded name that may cause name collision. OTP-7332 Object set of a class with id with properties UNIQUE OPTIONAL and the id field is lacking in the object is for now treated as a object without a unique identifier, i.e. no table is generated for this object. OTP-7334 Now implements RELATIVE-OID OTP-7476 Compiler crashed when failed to handle a OID as ValueFromObject. OTP-7533 A corrupted encoding may cause a loop when a buffer of at least two bytes of zero matches tag and length of a SET component. This behaviour occured only with decoder generated with ber or ber_bin optionsNow a control breaks the loop. OTP-7602 Encode of BIT STRING longer than 255 bits with a SIZE(integer()) constraint caused a crash when spec was compiled with per_bin, optimize options. --- asn1-1.6.2 ------------------------------------------------------------ OTP-7608 comparison of two value definitions failed due to new module name field in valuedef record. It is now corrected. --- common_test-1.3.4 ------------------------------------------------------------ OTP-7528 Common Test now uses the re application instead of the previous rx driver to perform regular expression matching on telnet strings. Since re works on all supported operating systems, it is now possible to run telnet sessions also on platforms such as e.g. Windows (which was not the case with the previous rx driver). Note that the rx driver is obsolete from now on, and will be removed from Common Test after OTP R12B. --- compiler-4.5.5 ------------------------------------------------------------ OTP-7556 In bit syntax expressions which started with a binary segment, and was followed by at least two segments of variable size, too little space could be allocated for the binary, leading to memory corruption. OTP-7586 In user-defined attributes, Name/Arity is now allowed and will be translated to {Name,Arity}. (An implementation of EEP-24 by Richard O'Keefe.) The module_info/{0,1} functions automatically inserted into each compiled modules are now documented in the Modules section in the Reference Manual. OTP-7591 Matching on a zero-width segment in the bit syntax would crash the compiler. (Thanks to Will.) --- cosEvent-2.1.4 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. --- cosEventDomain-1.1.4 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. --- cosFileTransfer-1.1.6 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. OTP-7599 When using predefined native file copy the return values from file operation was not handled correctly. --- cosNotification-1.1.9 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. --- cosProperty-1.1.7 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. --- cosTime-1.1.4 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. --- cosTransactions-1.2.5 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. --- crypto-1.5.3 ------------------------------------------------------------ OTP-7545 Added new functions: dss_verify/3, rsa_verify/3, rsa_verify/4, dss_sign/2, rsa_sign/2, rsa_sign/3, rsa_public_encrypt, rsa_private_decrypt/3, rsa_private_encrypt/3, rsa_public_decrypt/3, dh_generate_key/1, dh_generate_key/2, dh_compute_key/3. --- debugger-3.1.1.4 ------------------------------------------------------------ OTP-7548 There is now experimental support for loading of code from archive files. See the documentation of code, init, erl_prim_loader and escript for more info. The error handling of escripts has been improved. An escript may now set explicit arguments to the emulator, such as -smp enabled. An escript may now contain a precompiled beam file. An escript may now contain an archive file containing one or more applications (experimental). The internal module code_aux has been removed. --- dialyzer-1.8.3 ------------------------------------------------------------ OTP-7632 Added the --no_check_plt option that makes the startup time faster when working with stable PLTs that do not change. Changed the phrasing of some warnings so that they do not cause confusion to some users and correspond better to reality. --- edoc-0.7.6.1 ------------------------------------------------------------ OTP-7539 Correction to work with new versions of STDLIB that no longer has the erl_internal:obsolete/3 function. --- edoc-0.7.6.2 ------------------------------------------------------------ OTP-7642 Minor updates. --- erl_interface-3.5.9 ------------------------------------------------------------ OTP-7577 A type-casting bug in ei_skip_term and ei_printterm on 64bit platforms rendering undefined results is now corrected. OTP-7593 A bug in the hostent copying code of erl_interface on MacOS X/Darwin is now corrected. OTP-7611 A problem with building erl_interface on FreeBSD has been fixed (Thanks to Akira Kitada). --- erts-5.6.4.1 ------------------------------------------------------------ OTP-7540 A new erts_alloc parameter +Mrmbcmt (relative multiblock carrier move threshold) has been added. It determines when to force a moving realloc in a multiblock carrier when a block is shrunk. For more information see the erts_alloc(3) documentation. OTP-7578 The new option +d can be given to erl to suppress the crash dump generation if an internal error is detected. As a result, a more useful core dump is produced. --- erts-5.6.4.2 ------------------------------------------------------------ OTP-7582 A process calling one of the following BIFs could under very rare conditions deadlock in the runtime system with SMP support: check_process_code/2, garbage_collect/1, process_info/[1,2], system_flag/2, and erlang:suspend_process/[1,2]. OTP-7583 A couple of statistics variables were not managed in a thread safe manner in the runtime system with SMP support. OTP-7584 An extremely rare race condition when terminating a process could potentially cause a runtime system crash. OTP-7592 Under certain conditions and when using run_erl/to_erl, the terminal Erlang driver (ttsl_drv) could crash the emulator by doing a division by zero due to incorrect handling of terminals reporting a zero width. For terminals reporting zero width, the driver now fallbacks to a default width of 80 and a default height of 24 (vt100), as a fallback behaviour. This fixes the crashes and also makes output on "dumb" terminals much more readable. --- erts-5.6.5 ------------------------------------------------------------ OTP-6542 A bug in inet_drv concerning gen_tcp:connect has been corrected. A connect towards a non-open port through open firewalls could sometimes erroneously be successful. Any subsequent operation would fail, though. OTP-6900 The driver entry of a dynamically loaded driver is now copied when loaded which enables some internal optimizations. Note that drivers that modify the driver entry during execution will not work anymore. Such a miss-use of the driver interface is however not supported. OTP-7237 Floating point arithmetics in drivers could cause a runtime system crash and/or unexpected results on runtime systems with floating point exceptions enabled. Floating point exceptions are disabled unless explicitly enabled or if hipe is enabled. OTP-7420 A bug when many sockets got signalled simultaneously causing the emulator to panic with the message "Inconsistent, why isnt io reported?" is now corrected. OTP-7461 Starting erl with option "-detached" now disconnects correctly from terminal session on Unix. OTP-7514 The split function is now added to the re library. Exceptions and errors from both run, replace and split are made more consistent. OTP-7530 Fixed harmless compiler warnings when building the emulator and minor build changes in order to avoid unnecessary rebuilds. OTP-7538 Mended gdb etp-commands for ETS access. OTP-7543 erlang:decode_packet/3 allows white space between HTTP header tag and colon according to RFC2616. OTP-7548 There is now experimental support for loading of code from archive files. See the documentation of code, init, erl_prim_loader and escript for more info. The error handling of escripts has been improved. An escript may now set explicit arguments to the emulator, such as -smp enabled. An escript may now contain a precompiled beam file. An escript may now contain an archive file containing one or more applications (experimental). The internal module code_aux has been removed. OTP-7551 An emulator compiled for SCTP now starts even if the dynamic libraries are not present. The SCTP driver is then of course not loaded. OTP-7555 The reallocation functionality part of the ERTS internal memory allocators, now consider current block in combination with surrounding free blocks as an alternative location for a reallocation. OTP-7559 There could remain false references from a process to a module that has been called earlier, so that the process would be killed if the module was reloaded. (Thanks to Richard Carlsson.) Also, the fix for this bug also made it possible to make stack backtraces (as returned from erlang:get_stacktrace/0 and other functions) more correct in that the immediate caller is always included in the stack backtrace (it could sometimes be missing). OTP-7560 Improved locking in IO-handling for better smp performance. OTP-7562 To build on Mac OS X, 10.3.0 or later is now required because of fixes for two problems: There would be a resource leak when erl_ddl attempted to unload a driver. This problem has been corrected by using dlopen() (which works on all modern Unix-like platforms) instead of the Mac OS X specific API calls. Signal handling in the run-time system for HiPE has been updated to work on later versions of Mac OS X than 10.2.x. Therefore, --enable-hipe now works on Mac OS X with Intel CPUs. Thanks to Geoff Cant for the patches. OTP-7587 Improved BIF rescheduling functionanality. OTP-7590 Loading a module compiled with Erlang/OTP R9C and calling module_info/0 in the module would crash the emulator. The emulator now refuses to load any module compiled with R9C or earlier. (Note: only trivial modules compiled with R10B or earlier could be loaded anyway.) (Thanks to Martin Kjellin.) OTP-7594 Corrected some information about the protocol between EPMD and Erlang nodes. (Thanks to Michael Regen.) OTP-7622 When using erlang:system_monitor(Pid,{long_gc,Time}), and the GC time exceeded 1 second, it sometimes erroneously showed up as about 4300 seconds. (This bug was corrected in R9C, but re-introduced in R12B.) (Thanks to Chris Newcombe.) --- eunit-2.0 ------------------------------------------------------------ OTP-7630 The eunit application (for unit testing of Erlang modules) by Richard Carlsson is now included in OTP. OTP-7634 The documentation is now correctly built. --- hipe-3.6.9 ------------------------------------------------------------ OTP-7631 The --disable-hipe option for the configure will now completely disable the hipe run-time in the emulator, as is the expected behaviour. --- ic-4.2.19 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. --- inets-5.0.11 ------------------------------------------------------------ OTP-7574 Transient bug related to hot code swap of the TFTP server is now fixed. It could happen that the first TFTP server that was started after a code upgrade to Inets-5.0.6 crashed with a function clause error in tftp_engine:service_init/2. OTP-7597 [httpd] - Validation of ssl_password_callback_module was incorrect. OTP-7598 [httpd] - Misspelling in old apachelike configuration directive TransferDiskLogSize has been corrected. OTP-7605 Minor problems found by dialyzer has been fixed. --- inets-5.0.12 ------------------------------------------------------------ OTP-7636 [httpd] - Updated inets so that it not uses the deprecated function ssl:accept/[2,3]. --- jinterface-1.4.2 ------------------------------------------------------------ OTP-7624 A bug when Jinterface did not detect remote node disconnects has been corrected. --- kernel-2.12.5 ------------------------------------------------------------ OTP-7531 Processes spawned using proc_lib (including gen_server and other library modules that use proc_lib) no longer keep the entire argument list for the initial call, but only the arity. Also, if proc_lib:spawn/1 is used to spawn a fun, the actual fun is not kept, but only module, function name, and arity of the function that implements the fun. The reason for the change is that keeping the initial fun (or a fun in an argument list), would prevent upgrading the code for the module. A secondary reason is that keeping the fun and function arguments could waste a significant amount of memory. The drawback with the change is that the crash reports will provide less precise information about the initial call (only Module:Function/Arity instead of Module:Function(Arguments)). The function proc_lib:initial_call/1 still returns a list, but each argument has been replaced with a dummy atom. OTP-7537 The documentation of rpc:pmap/3 has been corrected. (Thanks to Kirill Zaborski.) OTP-7542 io:get_line/1 when reading from standard input is now substantially faster. There are also some minor performance improvements in io:get_line/1 when reading from any file opened in binary mode. (Thanks to Fredrik Svahn.) OTP-7548 There is now experimental support for loading of code from archive files. See the documentation of code, init, erl_prim_loader and escript for more info. The error handling of escripts has been improved. An escript may now set explicit arguments to the emulator, such as -smp enabled. An escript may now contain a precompiled beam file. An escript may now contain an archive file containing one or more applications (experimental). The internal module code_aux has been removed. OTP-7561 code:is_sticky/1 is now documented. (Thanks to Vlad Dumitrescu.) OTP-7563 The listen socket used for the distributed Erlang protocol now uses the socket option 'reuseaddr', which is useful when you force the listen port number using kernel options 'inet_dist_listen_min' and 'inet_dist_listen_max' and restarts a node with open connections. OTP-7615 Fixed memory leak of unclosed TCP-ports. A gen_tcp:send() followed by a failing gen_tcp:recv() could in some cases cause the port to linger after being closed. OTP-7617 In the job control mode, the "s" and "r" commands now take an optional argument to specify which shell to start. (Thanks to Robert Virding.) OTP-7618 net_adm:world/0,1 could crash if called in an emulator that has not been started with either the -sname or -name option; now it will return an empty list. (Thanks to Edwin Fine.) --- megaco-3.8.2 ------------------------------------------------------------ OTP-7534 [text] Messages with property parm values "containing" keywords confused the parser when using the flex scanner. --- megaco-3.9 ------------------------------------------------------------ OTP-7431 [text] The text codec(s) has been optimized. The parsing of "property parameters" has been moved to the scanner(s). Which means that when decoding messages containing property parameters, using the flex scanner, decode time(s) will be reduced. The reduction depends on the message, but can be as large as 25% --- megaco-3.9.1 ------------------------------------------------------------ OTP-7573 The flex scanner did not allow an empty quotedString in propertyParm. OTP-7576 [text] Unable to decode a version 2 message with a topologyTriple containing an (optional) eventStream. --- megaco-3.9.1.1 ------------------------------------------------------------ OTP-7614 Miscellaneous dialyzer related and test case cleanup. --- mnesia-4.4.6 ------------------------------------------------------------ OTP-7585 mnesia:restore aborted if a EXIT message appeared in the client message queue. --- mnesia-4.4.7 ------------------------------------------------------------ OTP-7524 Disallowed match patterns ('_', and '$n') as argument to mnesia:delete_object/1 and friends. OTP-7625 Introduced a few new functions in Mnesia: mnesia:read/2, mnesia:first/3, mnesia:last/3, mnesia:prev/4, mnesia:next/4, mnesia_frag:first/1, mnesia_frag:last/1, mnesia_frag:prev/2, mnesia_frag:next/2. --- orber-3.6.10 ------------------------------------------------------------ OTP-7595 Documentation source included in open source releases. --- os_mon-2.1.8 ------------------------------------------------------------ OTP-7441 A problem with OTP-OS-MON-MIB.mib for 64-bit environments has now been fixed. The mib has been extended with 64-bit memory retrieval counterparts. In addition, a new function get_os_wordsize/0 has been added in the memsup module OTP-7558 An error in memsup.c caused the compilation to crash on bsd environments. This has now been fixed. --- percept-0.7.3 ------------------------------------------------------------ OTP-7515 External pids caused the webserver to crash. This has now been fixed. OTP-7544 Fixed a timestamp problem where some events could be sent out of order. Minor fixes to presentation of data. OTP-7616 Performance enhancement for the egd render engine (Thanks to Magnus Thoäng). --- public_key-0.1 ------------------------------------------------------------ OTP-7637 First version. --- runtime_tools-1.7.3 ------------------------------------------------------------ OTP-7544 Fixed a timestamp problem where some events could be sent out of order. Minor fixes to presentation of data. --- sasl-2.1.5.4 ------------------------------------------------------------ OTP-7635 A Dialyzer warning was eliminated --- snmp-4.11.2 ------------------------------------------------------------ OTP-7570 [manager] Erroneous engine-id check when receiving version 3 informs. OTP-7575 Receiving an snmp message with a very large version number could cause the erlang node to run out of memory and consequently crash. The standard specifies the snmp version as an (unlimited) INTEGER, but today only 0 (version 1), 1 (version 2) and 3 (version 3) is actually used. So, when decoding a message, a limit has been put on the snmp version integer in order to not allow this kind of a problem. --- snmp-4.12 ------------------------------------------------------------ OTP-7346 Improve the mib-server performance with the introduction of a cache. OTP-7525 [agent] Improvement of the inform reporting. It was previously not certain how many acks an application received, 0, 1 or 2. This has now been fixed, so that only 1 (one) ack is issued. --- ssh-1.0.1 ------------------------------------------------------------ OTP-7305 [sftp] - Option added to set timeout value in sftp. OTP-7318 [sftp] - When listing a directory with more than 100 files only the first 100 where listed. This has now been fixed. OTP-7564 When restarting an ssh-system the expected return value from ssh_system_sup:restart_acceptor/2 was incorrect, this is no longer the case. OTP-7565 A few minor bugs where fixed in ssh_userreg.erl and ssh_connection_manager and a a ssh_cli option was added to restore backwards compatiblity with the old ssh_cm - API. OTP-7566 Fixed bug in ipv6 support and added option to disable ipv6 as a workaround for badly configured computers. --- ssh-1.0.2 ------------------------------------------------------------ OTP-7141 [sftpd] - Listing of symbolic link directories should now work as expected. --- ssl-3.10 ------------------------------------------------------------ OTP-6894 All handling of X509-certificates and public keys have been moved to the new appliction public_key. OTP-7037 New ssl now supports SSL-3.0 and TLS-1.0 OTP-7039 New ssl now supports all inet-packet types. OTP-7150 The new ssl-server is now able to send a certificate request to the client. However new options may be introduced later to fully support all features regarding certificate requests. OTP-7258 Error log entries are now formatted correctly. --- stdlib-1.15.5 ------------------------------------------------------------ OTP-7514 The split function is now added to the re library. Exceptions and errors from both run, replace and split are made more consistent. OTP-7531 Processes spawned using proc_lib (including gen_server and other library modules that use proc_lib) no longer keep the entire argument list for the initial call, but only the arity. Also, if proc_lib:spawn/1 is used to spawn a fun, the actual fun is not kept, but only module, function name, and arity of the function that implements the fun. The reason for the change is that keeping the initial fun (or a fun in an argument list), would prevent upgrading the code for the module. A secondary reason is that keeping the fun and function arguments could waste a significant amount of memory. The drawback with the change is that the crash reports will provide less precise information about the initial call (only Module:Function/Arity instead of Module:Function(Arguments)). The function proc_lib:initial_call/1 still returns a list, but each argument has been replaced with a dummy atom. OTP-7548 There is now experimental support for loading of code from archive files. See the documentation of code, init, erl_prim_loader and escript for more info. The error handling of escripts has been improved. An escript may now set explicit arguments to the emulator, such as -smp enabled. An escript may now contain a precompiled beam file. An escript may now contain an archive file containing one or more applications (experimental). The internal module code_aux has been removed. OTP-7549 Enabled explicit control of which types of files that should be compressed in a ZIP archive. OTP-7552 A bug in the qlc module has been fixed: when merge joining two query handles the temporary file used for equivalence classes was not truncated properly which could result in poor performance. OTP-7589 The characters 16#C0 and 16#E0 ("A" and "a" with grave accent), were not properly converted by the string:to_lower/1 and string:to_upper/1 functions. (Thanks to Richard O'Keefe.) OTP-7603 The function pool:attach/1 now returns already_attached if the node is already attached, rather than allready_attached (sic!). (Thanks to Edwin Fine.) OTP-7604 The documentation for io:get_line/1,2 now mentions that the return value can also be {error,Reason}. OTP-7617 In the job control mode, the "s" and "r" commands now take an optional argument to specify which shell to start. (Thanks to Robert Virding.) --- syntax_tools-1.5.6 ------------------------------------------------------------ OTP-7642 Minor updates. --- test_server-3.2.4 ------------------------------------------------------------ OTP-7527 Miscellaneous updates. --- typer-0.1.5 ------------------------------------------------------------ OTP-7633 Miscellaneous updates.