Bug fix release : otp_src_R10B-5 Build date : 2005-05-11 This is a bug fix release 5 for the R10B release. You can download the full source distribution from http://www.erlang.org/download/otp_src_R10B-5.tar.gz http://www.erlang.org/download/otp_src_R10B-5.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. Note: This release does not build on Mac OS X 10.4 "Tiger". We plan to provide a separate patch to fix that problem soon after the release of R10B-5. 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-5.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-5.tar.gz http://www.erlang.org/download/otp_doc_man_R10B-5.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-5457 Compiler now correctly crashes when compiling bad values. Failed for instance on INTEGER value that was a reference to a defined value. Also solved problem with a union constraint on an INTEGER. OTP-5466 Additional coverage of object set syntax. OTP-5457 Compiler now correctly crashes when compiling bad values. Failed for instance on INTEGER value that was a reference to a defined value. Also solved problem with a union constraint on an INTEGER. OTP-5466 Additional coverage of object set syntax. OTP-5457 Compiler now correctly crashes when compiling bad values. Failed for instance on INTEGER value that was a reference to a defined value. Also solved problem with a union constraint on an INTEGER. OTP-5466 Additional coverage of object set syntax. --- compiler ------------------------------------------------------------ OTP-5460 It is now possible to encrypt the debug information in Beam files, to help keep the source code secret. See the documentation for compile on how to provide the key for encrypting, and the documentation for beam_lib on how to provide the key for decryption so that tools such as the Debugger, Xref, or Cover can be used. OTP-5481 Fixed a bug in the validator of the generated code (beam_validator) which caused an internal compiler error even though the generated code was indeed correct. OTP-5541 Further improvements of encrypted debug info: New option 'encrypt_debug_info' for compiler. --- debugger ------------------------------------------------------------ OTP-5460 It is now possible to encrypt the debug information in Beam files, to help keep the source code secret. See the documentation for compile on how to provide the key for encrypting, and the documentation for beam_lib on how to provide the key for decryption so that tools such as the Debugger, Xref, or Cover can be used. --- erl_interface ------------------------------------------------------------ OTP-5507 The erl_fp_compare function is no longer declared static. --- inets ------------------------------------------------------------ OTP-5513 The server did not handle HTTP-0.9 messages with an implicit version. OTP-5514 An internal server timeout killed the request handling process without sending a message back to the client. As this timeout only affects a single request it has been set to infinity (if the main server process dies the request handling process will also die and the client will receive an error). This might make a client that does not use a timeout hang for a longer period of time, but that is an expected behavior! OTP-5516 That a third party closes the http servers accept socket is recoverable for inets, hence intes will only produce an info report as there was no error in inets but measures where taken to avoid failure due to errors elsewhere. OTP-5517 The HTTP client proxy settings where ignored. Bug introduced in inets-4.3. OTP-5521 Inets only sent the "WWW-Authenticate" header at the first attempt to get a page, if the user supplied the wrong user/password combination the header was not sent again. This forces the user to kill the browser entirely after a failed login attempt, before the user may try to login again. Inets now always send the authentication header. OTP-5537 A major rewrite of big parts of the HTTP server code was performed. There where many things that did not work satisfactory. Cgi script handling can never have worked properly and the cases when it did sort of work, a big unnecessary delay was enforced. Headers where not always treated as expected and HTTP version handling did not work, all responses where sent as version HTTP/1.1 no matter what. --- mnesia ------------------------------------------------------------ OTP-5438 pid_sort_order could cause a deadlock in locker. OTP-5473 Mnesia could return from mnesia:wait_for_tables/2 to early. OTP-5474 Mnesia can now handle mixing and nesting dirty (and ets) activities inside transactions. Calling mnesia:[a]sync_dirty/[1|2] inside a transaction no longer get evaluated in dirty context, because the results could previously be different depending on how the mixed nesting was done, and only one nesting level could be handled. *** POTENTIAL INCOMPATIBILITY *** OTP-5483 Safer startup of mnesia, deleting tables when mnesia started could cause problems. OTP-5495 Mnesia fold[l|r]/3 couldn't handle calling transaction inside the fun sent to fold (note: it's NOT a good idea to do it). OTP-5475 mnesia:dirty_update_counter/[2|3] set the value to 0 if key did not exist, now it sets the value to the increment value if it is larger than 0. *** POTENTIAL INCOMPATIBILITY *** --- orber ------------------------------------------------------------ OTP-5202 In some cases, it was possible for a user to delete the NameService root context. OTP-5526 Invoking two, or more, concurrent oe_register operations it could corrupt the IFR. If this is the case, the INTF_REPOS system exception is raised. The risk for this to occur is rather slim. --- erts ---------------------------------------------------------------- OTP-5467 Some math libraries do not always throw floating-point exceptions on errors. In order to be able to use these libraries, floating-point errors are now more thoroughly checked. Misc floating-point fixes for Linux and MacOSX. OTP-5484 binary_to_term/1 could cause the emulator to crash when given invalid pids or funs. OTP-5489 Some more stability problems were fixed in the hybrid-heap emulator. OTP-5492 An internal buffer was sometimes not cleared which caused garbage to appear in error messages sent to the error logger. errno was sometimes clobbered which caused erroneous error reports about poll() errors. Only emulators on unix platforms were affected by these bugs. OTP-5515 The ethread library now works on OpenBSD OTP-5519 Corrected a bug in the (undocumented and unsupported) option '{packet,http}' for gen_tcp. (Thanks to Claes Wikstrom and Luke Gorrie.) OTP-5522 After werl was closed with the window minimized, it was not possible to restart werl with an open window. A temporary solution has so far been implemented that restores the initial window settings every time werl is started. --- hipe ---------------------------------------------------------------- OTP-5493 Updates and corrections. --- kernel -------------------------------------------------------------- OTP-5396 Under certain circumstances the net_kernel could emit spurious nodedown messages. This bug has been fixed. OTP-5496 Eliminated Dialyzer warnings (caused by dead code) in the init and prim_file modules. OTP-5497 Removed description of the keep_zombies configuration parameter in the kernel man page. OTP-5512 inet_config now also checks the environment variable ERL_INETRC for a possible user configuration file. See the ERTS User's Guide for details. --- otp ----------------------------------------------------------------- OTP-5392 Various minor changes made to make it possible to use and test erl_interface on simulated VxWorks. OTP-5488 Correction in the Install for building and installing man pages on OpenBSD. (Thanks to Geoff White.) Updated 'configure' to properly detect the OpenSSL library on OpenBSD. --- runtime_tools ------------------------------------------------------- OTP-5373 The dbg manual page has been updated with information about how to avoid deadlock when tracing. --- odbc ---------------------------------------------------------------- OTP-5501 /usr was added as a default place for configure to look for the odbc library on unix/linux platforms. OTP-5502 A legacy timer in the c port program was set to infinity. All timeout handling is handled by the erlang code and a extra timeout in the c code will just lead to confusion if it is released. OTP-5504 When using a parameterized query on a windows platform the data is inserted in the table on the sql server but for some reason the connection is lost. --- snmp ------------------------------------------------------------ OTP-5491 Fixed a perl related problem in the mibs Makefile. OTP-5499 [manager] Failed to register usm users. Both using the usm config file (usm.conf) or the API functions snmpm:register_usm_user/3. Fixed in SNMP Development Toolkit 4.1.3. Improvements and new features: OTP-5468 Added utility functions for updating agent and manager config files Reported Fixed Bugs and Malfunctions: OTP-5464 [agent] Error replies was composed with invalid OIDs for the following error counters: usmStatsWrongDigests (RFC 2574, chap 3.2, point 6), usmStatsUnsupportedSecLevels (point 5) and usmStatsDecryptionErrors (point 8a). OTP-5465 [agent] Malformed Oid returned from a get_next operation as part of a get-bulk-request causes the agent to crash. OTP-5479 [agent] Missing catch on decode function call (detected by Dialyzer). OTP-5480 [manager] Invalid check for illegal options. OTP-5482 Faulty utility function for generation of agent config file target_addr.conf. --- stdlib -------------------------------------------------------------- OTP-5460 It is now possible to encrypt the debug information in Beam files, to help keep the source code secret. See the documentation for compile on how to provide the key for encrypting, and the documentation for beam_lib on how to provide the key for decryption so that tools such as the Debugger, Xref, or Cover can be used. The beam_lib:chunks/2 functions now accepts an additional chunk type 'compile_info' to retrieve the compilation information directly as a term. (Thanks to Tobias Lindahl.) OTP-5487 When opening a Dets table read only an attempt was sometimes made to re-hash the table resulting in an error message. This problem has been fixed. OTP-5523 filelib:wildcard/2 was broken (it ignored its second argument). Also, filelib:wildcard("Filename") (where the argument does not contain any meta-characters) would always return ["Filename"]. Corrected so that an empty list will be returned if "Filename" does not actually exist. (Same correction in filelib:wildcard/2.) (This change is a slight incompatibility.) filelib:wildcard/1,2 will generate a different exception when given bad patterns such as "{a,". The exception used to be caused by 'exit(missing_delimiter)' but is now 'erlang:error({badpattern,missing_delimiter})'. --- tools ------------------------------------------------------------ OTP-5460 It is now possible to encrypt the debug information in Beam files, to help keep the source code secret. See the documentation for compile on how to provide the key for encrypting, and the documentation for beam_lib on how to provide the key for decryption so that tools such as the Debugger, Xref, or Cover can be used. OTP-5487 When opening a Dets table read only an attempt was sometimes made to re-hash the table resulting in an error message. This problem has been fixed. --- xmerl ------------------------------------------------------------ OTP-5498 Better identification of errors in xml code. OTP-5500 Some minor bugs fixed. OTP-5531 Parser failed on PE reference as EnumeratedType AttType, now corrected.