Bug fix release : otp_src_R10B-4 Build from snapshot : 2005-03-23 This is a bug fix release 4 for the R10B release. You can download the full source distribution from http://www.erlang.org/download/otp_src_R10B-4.tar.gz http://www.erlang.org/download/otp_src_R10B-4.readme (this file) Note: To unpack the TAR archive you need a GNU TAR compatible program. For instance, on MacOS X you need to 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-4.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-4.tar.gz http://www.erlang.org/download/otp_doc_man_R10B-4.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-5302 A bug due to representation of open_type values is now fixed. It could cause problem if one used the EXTERNAL type. OTP-5378 Due to an internal error the same code could have been generated more than one time. This happened for the exclusive deocode functionality. --- compiler ------------------------------------------------------------ OTP-5404 In rare circumstances, inccorrect code for record or tuple access could be generated. The incorrect code would either trigger an internal error in the compiler or cause an exception at run time. (Thanks to Martin Bjorklund.) Corrected a bug in in bit syntax matching where clauses could match in the wrong order. (Thanks to Ulf Wiger.) OTP-5436 Complex functions could cause the internal validator in the compiler to generate an internal error even though the generated code was correct. --- erl_interface ------------------------------------------------------------ OTP-5456 A configuration test error caused erl_interface to be built without support for threads. This has been corrected. --- erts ------------------------------------------------------------ OTP-5388 The c option for the +B flag has been introduced which makes it possible to use Ctrl-C (Ctrl-Break on Windows) to interrupt the shell process rather than to invoke the emulator break handler. All new +B options are also supported on Windows (werl) as of now. Furthermore, Ctrl-C on Windows has now been reserved for copying text (what Ctrl-Ins was used for previously). Ctrl-Break should be used for break handling. Lastly, the documentation of the system flags has been updated. OTP-5420 If a process had node links (created by monitor_node/2), excuting process_info(Pid, memory) for that process would crash the emulator. OTP-5428 Minor corrections to the help text printed by 'erlc -help'. The documentation for erlc was also slightly updated. OTP-5430 32-bit words were used for offsets in the garbage collector. This caused the emulator to crash on 64-bit machines when heaps were moved more than 4 GB during garbage collection. OTP-5448 is_boolean(42.5) failed to load if optimization was explicitly turned off. OTP-5450 If there was a call to Module:foo/X from any loaded module, the returned by M:module_info(exports) would always include {foo,X} (even though Module:foo/X if was not defined). --- hipe ------------------------------------------------------------ OTP-5463 The hipe application is now included in the Windows binary package, so that Dialyzer can be used. OTP-5469 The type analyzer in the hipe application has been updated to eliminate some false warnings in Dialyzer. --- ic ------------------------------------------------------------ OTP-5375 In C back-ends, the compiler crashed when generating C code for error reports when a scoped name was used as a type in a union. --- inets ------------------------------------------------------------ OTP-5380 Sometimes EWS modules where called with an Info record where the peername field was {-1, "unknown"}. This could happen when a client was making a lot of requests which it discards before they where answered by the server. The server now ignores such requests and does not call the EWS modules in this case. OTP-5409 The HTTP-server now returns the 408 status code upon a request timeout as expected instead of the previous faulty behavior of sending a 500 status code. OTP-5410 The content length was put in to the HTTP-headers as an integer instead of as a string. OTP-5411 It was wrongly presumed that code:priv_dir would always be writable due to how the test-server works. The directory is now a configuration parameter in the inets-application configuration file. Failing to configure it will result in that all cookies are treated as session cookies. OTP-5419 An undocumented beta version of tftp is included. OTP-5443 Tunneling of SSL through a proxy has now been implemented. However, due to lack of test sites, this has only partially been verified, it is likely that there will have to be future improvements in this area. OTP-5442 The pipeline timeout was changed to be zero by default to avoid that people by accident would create connection processes that never die and eat up the socket resources. *** POTENTIAL INCOMPATIBILITY *** OTP-5444 Altered the way spawn_link is used in mod_esi to avoid getting, in this senario, unwanted error reports from spawn_link. (The behavior of spawn_link was altered in a not backwards compatible way.) OTP-5453 When further testing the functionality of https requests that goes through a proxy. We realised that alas this can not currently be supported as it requires features from the ssl implementation that is not currently available. So for now an error message will be returned when trying to use this functionality. OTP-5454 When trying to get a url from a server that does not exist the client hanged instead of returning an error message. Bug introduced in inets-4.3. --- kernel ------------------------------------------------------------ OTP-5374 net_kernel:monitor_nodes/2 which takes a flag and, an option list has been added. By use of net_kernel:monitor_nodes/2 one can subscribe for nodeup/nodedown messages with extra information. It is now possible to monitor hidden nodes, and get nodedown reason. See the net_kernel(3) documentation for more information. OTP-5388 The c option for the +B flag has been introduced which makes it possible to use Ctrl-C (Ctrl-Break on Windows) to interrupt the shell process rather than to invoke the emulator break handler. All new +B options are also supported on Windows (werl) as of now. Furthermore, Ctrl-C on Windows has now been reserved for copying text (what Ctrl-Ins was used for previously). Ctrl-Break should be used for break handling. Lastly, the documentation of the system flags has been updated. OTP-5391 Documentation for erlang:binary_to_float/1 deleted. The BIF itself was removed several releases ago. Updated documentation for apply/2 and apply/3. OTP-5406 The possibility to start the erlang shell in parallell with the rest of the system was reintroduced for backwards compatibility in stdlib-1.13.1. The flag to be used for this is now called async_shell_start and has been documented. New shells started from the JCL menu are not syncronized with init anymore. This makes it possible to start a new shell (e.g. for debugging purposes) even if the initial shell hasn't come up. --- megaco ------------------------------------------------------------ OTP-5401 Pending limit cleanup error's. In some situations (high load), reply-records where never removed, blocking new requests with the same transaction id. OTP-5446 Added utility functions to retrieve some system and application info, see versions1 and versions2. OTP-5446 When the enable_trace function is called with the File argument, it sets up dbg so that trace events are written as plain text to the given file (using io:format). Incompatibilities: OTP-5446 The File argument to the function enable_trace no longer sets up dbg to write the trace events directly to file but instead to be written to a plain text file using io:format. Also enable_trace no longer accepts the argument {io, Verbosity}. Fixed bugs and malfunctions: OTP-5401 Pending limit cleanup error's. In some situations (high load), reply-records where never removed, blocking new requests with the same transaction id. OTP-5446 Added utility functions to retrieve some system and application info, see versions1 and versions2. OTP-5446 When the enable_trace function is called with the File argument, it sets up dbg so that trace events are written as plain text to the given file (using io:format). Incompatibilities: OTP-5446 The File argument to the function enable_trace no longer sets up dbg to write the trace events directly to file but instead to be written to a plain text file using io:format. Also enable_trace no longer accepts the argument {io, Verbosity}. --- observer -------------------------------------------------------- OTP-5408 The crashdump viewer is faster when showing message, dictionary, and stack dump for large processes. --- odbc ----------------------------------------------------------- OTP-5437 Odbc now uses configure as all "normal" applications instead of providing special Makefiles for each commercial supported platform. This also makes it easier to build odbc on non supported platforms. --- os_mon ---------------------------------------------------------- OTP-5421 memsup.c will now compile on OpenBSD. (Thanks to Geoff White and Jay Nelson.) The disksup and cpu_sup modules now work on Mac OS X (tested on Mac OS 10.3.8). The memsup module should now work on Linux 2.6.* as well as on older Linuxes. (The format of /proc/meminfo has slightly different formats in different releases of Linux.) --- parsetools ------------------------------------------------------ OTP-5461 A bug in Yecc that was introduced in R9B has been removed. Another bug concerning precedence declaration "one level up" has been fixed. --- snmp ------------------------------------------------------------ OTP-5390 [agent] Export utility function to create agent config files. OTP-5423 [agent] Documented instrumentation utility functions (e.g. snmpa:current_request_id/0). Reported Fixed Bugs and Malfunctions: OTP-5370 [manager] If the client crashes after having issued an async request, the server will crash when trying to perform cleanup. OTP-5394 Failure to convert an audit-trail-log to textfile when using the default log name. OTP-5414 [manager] Corrected the discovery handling of the manager. OTP-5415 [manager] Manager statistics counter creation correction. OTP-5424 [agent] When using the old style agent configuration (pre 4.0), it was not possible to specify a different error report module (the agent allways choose snmpa_error_logger). A similar problem existed for the config option force_config_load, which allways reverted to false. OTP-5431 [manager] The manager net_if process failed to properly handle the case bind_to option value true. OTP-5433 [agent] Various minor mnesia-related fixes. "Martin Bjorklund" OTP-5441 [manager] Missing interface functions for loading and unloading mibs into/from the manager. OTP-5445 Added utility functions to retrieve some system and application info, see versions1/0 and versions2/0. --- stdlib ---------------------------------------------------------- OTP-5402 Closing a Dets table kept in RAM would cause a crash if the file could not be written. This problem has been fixed by returning an error tuple. OTP-5406 The possibility to start the erlang shell in parallell with the rest of the system was reintroduced for backwards compatibility in stdlib-1.13.1. The flag to be used for this is now called async_shell_start and has been documented. New shells started from the JCL menu are not syncronized with init anymore. This makes it possible to start a new shell (e.g. for debugging purposes) even if the initial shell hasn't come up. OTP-5412 erl_pp now correctly pretty-prints 'fun F/A'. OTP-5425 The compiler will now produce warnings when using the deprecated functions in the snmp module. OTP-5432 The function c:zi/0 has been removed. Use c:i/0 instead. OTP-5435 The Erlang shell failed if the compiler was not in the code path. This problem has been fixed, but in order to evaluate records the compiler is still needed. OTP-5452 Corrected the example in the documentation for ets:match/2. Also clarified that ets:update_counter/3 updates the counter atomically. (Thanks to Anders Svensson.) OTP-5462 Corrected two minor bugs found by the Dialyzer: Calling a parameterized module from a restricted shell (i.e. if shell:start_restricted/1 has been used) would crash the shell evaluator. A debug printout in gen_fsm had a clause that would never match; causing less information to be printed. And a somewhat more serious one also found by Dialyzer: rpc:yield/1 would crash unless the call started by rpc:async_call/4 had already finished; rpc:nb_yield(Key, infinity) would also crash. Cleaned up and removed redundant code found by Dialyzer in erlang:dmonitor_p/2. --- tools ----------------------------------------------------------- OTP-5418 The cover tool could not analyze empty modules on module level.