Bug fix release : otp_src_R10B-6 Build date : 2005-06-22 This is a bug fix release 6 for the R10B release. You can download the full source distribution from http://www.erlang.org/download/otp_src_R10B-6.tar.gz http://www.erlang.org/download/otp_src_R10B-6.readme (this file) Note: To unpack the TAR archive you need a GNU TAR compatible program. 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-6.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-6.tar.gz http://www.erlang.org/download/otp_doc_man_R10B-6.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 ---------------------------------------------------------------- OTP-5616 Corrected code that generated code causing badarith warning. --- compiler ------------------------------------------------------------ OTP-5553 In some circumstances, having two try/catch constructs following each in a function body, would cause an internal error to be generated (when in fact the generated code was correct). (Thanks to Fredrik Thulin.) Incorrect calls such as M:42() would crash the compiler. The compiler now generates a warning. (Thanks to Ulf Wiger.) OTP-5584 The new 'fun M:F/A' construct creates a fun that refers to the latest version of M:F/A. This syntax is meant to replace tuple funs '{M,F}' which have many problems. The new type test 'is_function(Fun, A)' (which may be used in guards) test whether Fun is a fun that can be applied with A arguments. (Currently, Fun can also be a tuple fun.) --- crypto -------------------------------------------------------------- OTP-5630 Added support for RFC 3826 - The Advanced Encryption Standard (AES) Cipher Algorithm in the SNMP User-based Security Model. (Thanks to Martin Bjorklund.) --- edoc ---------------------------------------------------------------- OTP-5594 Flatten lists in macro expansion --- erl_interface ------------------------------------------------------- OTP-5456 A configuration test error caused erl_interface to be built without support for threads. This has been corrected. OTP-5575 The clock_gettime configure test for erl_interface is performed correctly now. --- erts ------------------------------------------------------------ OTP-5532 The cpu_timestamp option for erlang:trace/3 is now also supported on Linux. OTP-5544 The last known werl window size/position is now saved correctly when werl is stopped with the window minimized. A problem with the placement not being saved if the emulator is halted or stopped from the JCL menu has also been fixed. OTP-5561 to_erl could close unexpectedly on Linux systems. Also, output from the emulator could be lost. Corrected. OTP-5572 ets:delete/1 now allows other Erlang process to run when a large table is being deleted. OTP-5582 A bug regarding tcp sockets which results in hanging gen_tcp:send/2 has been corrected. To encounter this bug you needed one process that read from a socket, one that wrote more date than the reader read out so the sender got suspended, and then the reader closed the socket. (Reported and diagnosed by Alexey Shchepin.) Updated the documentation regarding the second argument to gen_tcp:recv/2, the Length to receive. OTP-5584 The new 'fun M:F/A' construct creates a fun that refers to the latest version of M:F/A. This syntax is meant to replace tuple funs '{M,F}' which have many problems. The new type test 'is_function(Fun, A)' (which may be used in guards) test whether Fun is a fun that can be applied with A arguments. (Currently, Fun can also be a tuple fun.) OTP-5595 Erlang/OTP will now build on Mac OS X 10.4 "Tiger" (the problem was that 10.4 has a partially implemented poll() function that can't handle devices). Also, on Mac OS X 10.3 "Panther", Erlang/OTP will now use select() instead of poll() (because poll() on Mac OS X 10.3 is implemented using select()). OTP-5596 In the hipe application, there's a new experimental register allocator (optimistic coalescing), and the linear scan register allocator is now also available on ppc. Plus lots of cleanups. Minor hybrid heap corrections. The maximum size of a heap used to be articially limited so that the size of a heap would fit in 28 bits; that limitation could cause the emulator to terminate in a garbage collection even if there still was available memory. Now the largest heap size for a 32 bit CPU is 1,699,221,830 bytes. (Thanks to Jesper Wilhelmsson.) Also removed the undocumented +H emulator option. OTP-5618 A bug in the file driver when opening a file in compressed mode, and the returned allocated pointer from the compressing library was in very high memory (>= 2GB), causing e.g. file:read/2 to return {error,ebadf}, has been corrected. --- hipe ---------------------------------------------------------------- OTP-5596 In the hipe application, there's a new experimental register allocator (optimistic coalescing), and the linear scan register allocator is now also available on ppc. Plus lots of cleanups. Minor hybrid heap corrections. The maximum size of a heap used to be articially limited so that the size of a heap would fit in 28 bits; that limitation could cause the emulator to terminate in a garbage collection even if there still was available memory. Now the largest heap size for a 32 bit CPU is 1,699,221,830 bytes. (Thanks to Jesper Wilhelmsson.) Also removed the undocumented +H emulator option. --- inets ------------------------------------------------------------ OTP-5148 The ftp client now supports passive mode. Actually the ftp client will always try to use passive mode and if it fails it will use active mode instead. It is also possible to force the ftp-client to use active mode, if that is desired, by calling ftp:force_active/1 this way you can get the old behavior. OTP-5549 Wrapper function http_transport:accept/3 did error-handling that it should not do because only the caller of the wrapper can determine what action to take. So timeouts where handled twice, once in http_transport and once in httpd_acceptor. Clean up of the wrapper module http_transport changed the action of the wrapper module and made the unwanted behavior noticeable in in OTP error logs. And now the unwanted error handling has been removed. The cleanup helped us find bad code but alas it also generates a lot of log printouts that are quite disturbing to the user of the HTTP-server. OTP-5551 In the rewrite for 4.4 some mod_esi-environment values where mistaken for ordinary header values and where incorrectly transformed to strings. They are now atoms again. OTP-5552 The HTTP server now handles "GET /\r\n\r\n" as well as "GET / \r\n\r\n". According to the RFC the whitespace is not nedded. OTP-5141 The HTTP server now supports ipv6 in the case that the underlying mechanisms also do so. (ssl does not yet support ipv6.) OTP-5142 The FTP client now supports ipv6 in the case that the underlying mechanisms also do so. OTP-5623 The internal design of using blocking gen_tcp:recv with a timeout and retries resulted in code that was hard to get a good overview of, and ultimate led to situations where the client got the wrong answer or no answer at all. The errors where many times very timing dependent and mainly effected the chunk-related functions so if you where lucky you proably would not have noticed. The internal design was changed to use gen_tcp active once semantics. The API is not effected except for the function ftp:quote/2 which now returns a list of strings (ftp result lines) where the line endings "\r\n" has been removed. This was the original intention for the return value of ftp:quote/2 but it was non trivial to make a good such solution with the old design and a compromise was made. OTP-5624 The new implementation of pipelining in inets-4.1 alas was slightly broken and unfortunately not caught by the test suite that apparently needs some additions. The result was that requests that ought to have been pipelined where not, this has now been fixed. OTP-5625 An option was added to disable the ipv6 support in the HTTP client. This to provide a workaround possibility for buggy ipv6-stacks. OTP-5626 When generating dynamic HTTP response bodies the the default content-type is now set to "text/html" instead of "text/plain" which is more intuitive. OTP-5627 When using the latest esi interface with the callback interface of arity 3, HTTP Content-Type headers where ignored, this due to a subtle difference between this interface and the old ones in how they viewed HTTP delimiters. --- kernel ------------------------------------------------------------ OTP-5449 In case of a DNS lookup loop, inet_db:getbyname ends up building an infinite list. This has been fixed. OTP-5576 When doing an inet6 name lookup on an IPv4 address it was possible to get an address on IPv4 format back. This has been corrected. Some other minor inconsistencies regarding IPv6 name lookup have also been corrected. OTP-5393 At startup, the erlang resolver hosts table was used to look up the name of the local (and possibly stand alone) host. This was incorrect. The configured resolver method is now used for this purpose. OTP-5543 'erl -config sys.config' would fail to start if the sys.config file did not contain any whitespace at all after the dot. (Thanks to Anders Nygren.) OTP-5555 The erlang:port_info/1 BIF is now documented. Minor corrections of the documentation for erlang:port_info/2. Added a note to the documentation of the math module that all functions are not available on all platforms. Added more information about the '+c' option in the erl man page in the erts documentation. OTP-5582 A bug regarding tcp sockets which results in hanging gen_tcp:send/2 has been corrected. To encounter this bug you needed one process that read from a socket, one that wrote more date than the reader read out so the sender got suspended, and then the reader closed the socket. (Reported and diagnosed by Alexey Shchepin.) Updated the documentation regarding the second argument to gen_tcp:recv/2, the Length to receive. OTP-5584 The new 'fun M:F/A' construct creates a fun that refers to the latest version of M:F/A. This syntax is meant to replace tuple funs '{M,F}' which have many problems. The new type test 'is_function(Fun, A)' (which may be used in guards) test whether Fun is a fun that can be applied with A arguments. (Currently, Fun can also be a tuple fun.) OTP-5603 According to the documentation Global implements the equivalent of register/2, which returns badarg if a process is already registered. As it turns out there is no check in Global if a process is registered under more than one name. If some process is accidently or by design given several names, it is possible that the name registry becomes inconsistent due to the way the resolve function is called when name clashes are discovered (see register_name/3 in global(3)). In OTP R11B Global will not allow the registration of a process under more than one name. To help finding code where no will be returned, a Kernel application variable, global_multi_name_action, is hereby introduced. Depending on its value (info, warning, or error), messages are to the error logger when Global discovers that some process is given more than one name. The variable only affects the node where it is defined. --- orber ------------------------------------------------------------ OTP-5567 It is now possible to define a Access Control List (ACL), which limits the host and ports Orber may connect to or accept connections from. OTP-5568 It is now possible to add, and remove, listen interfaces. For more information, consult the User's Guide and the orber module Reference Manual. OTP-5569 It is now possible to activate and deactivate Audit/Trail logging. One of the three built in interceptors will be used depending on the requested verbosity. OTP-5570 It is now possible to configure Orber to add the interface, to exported local IOR:s, a Request came via. OTP-5571 It is now possible to instruct Orber which local interface an outgoing Request shall be sent via. To accomplish this the Orber generic context must be added added to each invocation. OTP-5583 It is now possible to define a default local interface, which Orber will use when connecting to another ORB. --- os_mon -------------------------------------------------------------- OTP-5559 Corrected several problems in the error handling/error recovery (especially when os_mon is starting up). --- snmp ------------------------------------------------------------ OTP-5506 [manager] Late (async) reply incorrectly delivered to user via handle_pdu instead of handle_error. OTP-5562 [agent] Add mapping of notification oid to aliasname. Martin Björklund. Reported Fixed Bugs and Malfunctions: OTP-5505 [manager] Registering of USM users erroneous. OTP-5508 [manager] Security engine id lookup errors OTP-5539 [manager] User unregistration after reboot causes process crash (snmpm_server). OTP-5547 [agent] Failure to stop the snmp application when started with the old config type. OTP-5548 [manager] Error's reported by the SecModule (v3) when generating outgoing message was not handled correctly in message processing dispatcher module. And also when encryption failed, the real error (unsupportedSecurityLevel) was masked into encryptionError. OTP-5550 [agent] Error's reported by the SecModule (v3) when generating outgoing message was not handled correctly in message processing dispatcher module. OTP-5556 [manager] Set-request without specifying the variable type failed. The type of the oid had to be found in the loaded MIB. This lookup was erroneous. OTP-5557 [manager] Cannot handle version-1 traps. OTP-5560 [manager] (v3) encryption/decryption failure OTP-5564 [manager] (v3) Security level handled incorrectly. Improvements and new features: OTP-5574 [manager] Added another get, get-next and set function with another argument, ExtraInfo. This argument is passed on to the net-if process. The net-if process included in this application makes no use of this info, but other implementations might. OTP-5578 [manager] report with incorrect securtyModel and/or securityLevel is ignored (dropped, except for incrementing the proper error counter) even if all other info is correct. This has been changed so that in this situation, the user will be informed, either via the return value from a synchronous call or via a call to the handle_error callback function. OTP-5580 [manager] Added function to unregister USM-user, snmpm:unregister_usm_user. OTP-5590 [agent] Added functions to retrieve lists of loaded tables and variables. Reported Fixed Bugs and Malfunctions: OTP-5579 [manager] Incorrect SHA-key length check when updating usm-user info (should have been 20 but was 16). OTP-5591 [compiler] Incorrect error report when the name of the field and object is the same. OTP-5592 [manager] Arguments Port and CtxName where swapped in function snmpm:g/5 when forwarding call. Incompatibilities: OTP-5574 [manager] The snmpm_network_interface behaviour has changed. One more argument (ExtraInfo) was added to the function send_pdu (see send_pdu). --- ssl ------------------------------------------------------------ OTP-5429 A configuration option for choosing protocol versions has been added (sslv2, sslv3, and tlsv1). OTP-5429 A configuration option for choosing protocol versions has been added (sslv2, sslv3, and tlsv1). OTP-5429 A configuration option for choosing protocol versions has been added (sslv2, sslv3, and tlsv1). OTP-5620 The R/W buffer length i esock.c was too small. It has been increased from 4k to 32k. --- stdlib -------------------------------------------------------------- OTP-5555 The erlang:port_info/1 BIF is now documented. Minor corrections of the documentation for erlang:port_info/2. Added a note to the documentation of the math module that all functions are not available on all platforms. Added more information about the '+c' option in the erl man page in the erts documentation. OTP-5584 The new 'fun M:F/A' construct creates a fun that refers to the latest version of M:F/A. This syntax is meant to replace tuple funs '{M,F}' which have many problems. The new type test 'is_function(Fun, A)' (which may be used in guards) test whether Fun is a fun that can be applied with A arguments. (Currently, Fun can also be a tuple fun.) OTP-5589 Very minor corrections in beam_lib and its documentation. --- syntax_tools -------------------------------------------------------- OTP-5593 Now syntax_tools correctly handles "CR/LF" in source code files, for edoc purposes. --- tools --------------------------------------------------------------- OTP-5588 The cover tool did not escape '<' and '>' not beeing part of html tags in html log files. --- xmerl --------------------------------------------------------------- OTP-5587 Removed call of undefined function in xmerl_lib.