Bug fix release : otp_src_R9B-1 Build from snapshot : 2003-03-05 This is a bug fix release R9B-1. You can download the full source distribution from http://www.erlang.org/download/otp_src_R9B-1.tar.gz http://www.erlang.org/download/otp_src_R9B-1.readme (this file) If you have access to the Ericsson intranet you can find the same files at http://erlang.ericsson.se/opensource/download/ Note that to unpack the TAR archive you need a GNU TAR compatible program. For example 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. There is no support for building a Windows version from source. The Windows binary distribution can be downloaded from http://www.erlang.org/download/otp_win32_R9B-1.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_html_R9B-1.tar.gz http://www.erlang.org/download/otp_man_R9B-1.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 -- erts ------------------------------------------------------------------- OTP-4555 A seq_trace token on an unread message in a process that did a garbage collect that caused the heap to be reallocated to a new address, caused the garbage collector to read freed memory, which caused a segmentation fault. This bug is now corrected OTP-4563 The emulator sometimes mixed up port identities when many ports had been closed, so an old (dead) port identity could be used, but accessed another (new) port. OTP-4571 The possibility to allocate binaries with sl_alloc has been added. The command line switch "+Sb true" enables this feature. See the sl_alloc man page for more information. OTP-4578 The maximum number of ports can now be changed to an arbitrary value using the environment variable ERL_MAX_PORTS on windows, corresponding to the behaviour on other operating systems. The maximum number of simultaneously open i.e. sockets or port programs is now only limited by operating system imposed limits. OTP-4603 An unneccessary garbage collection at process exit for processes with heap fragments is removed. OTP-4612 The script 'start' now spawns off an run_erl that's completely disconnected from the controlling terminal and that ignores sighup (run_erl -daemon) OTP-4625 Some internal memory allocation routines (used in BIFs) would allocate more memory than necessary, especially if the default mininum heap size had been raised. Corrected. OTP-4626 A mixup of read buffers in the inet driver could cause unpredictable results when communicating over TCP and for distributed erlang. -------- An bug in the parsing of GET request on the form semi broken HTTP 0.9 requests was corrected. -------- Missing driver symbols is now exported for Windows DLL Erlang drivers. -- compiler --------------------------------------------------------------- OTP-4557 Three compiler problems fixed: 1) Constant expression were not evaluated at compile time as they should be (unless inlining was turned on). 2) In unusual cases, incorrect code would be generated for "," or "and" in guards. 3) A floating point expressions that failed (e.g. with overflow) and whose value was not used would cause the next floating point expression to fail on some Pentium platforms (Linux, possibly FreeBSD; not on Windows). -- kernel & stdlib -------------------------------------------------------- OTP-4516 A bug in sofs:partition/2 has been fixed. OTP-4519 c:memory() only reported half of the amount of ets memory allocated on 64-bit architectures. This bug has now been fixed. OTP-4530 The disk_log module has been slightly changed for the purpose of reducing the risk of memory problems due to corrupt files. The chunk commands have been optimized by increasing the chunk size from 8 kilobytes to 64 kilobytes. OTP-4554 New function dets:is_compatible_bchunk_format/2 to be used in conjunction with the new info tag bchunk_format. OTP-4568 If a naughty child process did unlink(Supervisor), and then the supervisor decides to terminate that child, it would hang forever. The supervisor now uses erlang:monitor instead of waiting for exit-signals, so that naughty child processes can not make a supervisor hang. OTP-4585 Fixes bug introduced in patch erl_458 that might have damaging effects on the supervisor causing unwanted behavior in the node. OTP-4600 The names of temporary files created by the module file_sorter are now more unique than they used to be. OTP-4609 A bug in Dets that could cause a loop has been fixed. OTP-4641 A file descriptor leak was removed in the error logger. -- odbc ------------------------------------------------------------------- OTP-4593 API function commit/3 is now exported. OTP-4605 Improved error messages so that the implementation not shall shine through. Added possibility to let a connection return rows as tuples instead of lists. OTP-4606 If an ODBC API function times out it will cause the client to exit with reason timeout. If this exit was caught and the client continued using the connection, the next request could get the answer meant for the previously timed out request, this is no longer the case. OTP-4624 Scrollable cursors are nice but causes some overhead. For some connections speed might be more important than flexible data access and then you can disable scrollable cursor for a connection, limiting the API but gaining speed. OTP-4636 Some error messages originating from the sql-driver where corrupted so that odbc only returned the end of the error message. This has now been fixed. OTP-4639 The erlang odbc process will now die normally if a connection can not be established. No connection no process it is expected. And as the client has already received the error message that would be the reason with which the erlang process would be stopped, the supervisor report will be superfluous. Naturally you may still get supervisor reports if the erlang process is stopped for any other reason than the above. -- os_mon ----------------------------------------------------------------- OTP-4223 A configurable "helper timeout" has been added to memsup. It defines how long timeout time, in seconds, the memsup process should use when communicating with the memsup_helper process (an application internal server). The default is 30 seconds. The "helper timeout" can be set with the memsup_helper_timeout configuration parameter, or the memsup:set_helper_timeout/1 function. memsup:get_helper_timeout/0 can be used to retrieve the currently used "helper timeout". OTP-4515 A bug which could cause memsup to be erroneously initialized has been fixed. The erroneous initialization could in turn cause the system_memory_high_watermark alarm to be set too early. -- orber ------------------------------------------------------------------ OTP-4577 If a call-back module illegally caused an EXIT, clients residing on another ORB was not notified (hanged). OTP-4576 The stub/skeleton-files generated by IC have been improved, i.e., depending on the IDL-files, reduced the size of the erl- and beam-files and decreased dependencies off Orber's Interface Repository. It is necessary to re-compile all IDL-files and use COS-applications, including Orber, compiled with IC-4.2. OTP-4541 It is now possible to configure Orber to use the host name in exported IOR:s instead of the IP-number. OTP-4542 When Orber acted as server-side ORB and one tried to setup a SSL-connection and using native Interceptors at the same time it failed. OTP-4543 Oneway operations, using a multi-node Orber, failed for inter-node communication. -- mnesia ----------------------------------------------------------------- OTP-4564 Nested transactions could be aborted with {aborted,{node_not_running,Node}}. OTP-4524 Mnesia could not load dets files of old format over the network. OTP-4565 mnesia:change_table_copy_type/3 failed to copy data when changing storage type from disc_only_copies to ram_copies. OTP-4596 Calls to mnesia:transaction() which makes a badarg, e.g. calls to mnesia:select/2 with a bad match spec as argument, loops forever. OTP-4597 Mnesia could be deadlocked during start of several nodes. OTP-4599 Mnesia used table names as the name on opened disk_log files, which could cause strange behavoiurs if the name interfered with other opened disk_log files. OTP-4610 Mnesia-4.1.2 couldn't load tables from mnesia-3.10.* nodes. -- megaco ----------------------------------------------------------------- -------- Added support for the Megaco mib. OTP-4566 Result of catch gen_udp:open not properly handled. OTP-4632 Service change reason text encoding now always quoted string. -- inets ------------------------------------------------------------------ OTP-4549 FTP client now supports chunked receive. Proposal of Luke Gorrie provided inspiration but not algorithm. OTP-4552 HTTP client updated to jnets-0.1, now supporting proxy. Author: Johan Blom of Mobile Arts AB. OTP-4548, OTP-4207 Body length calculation incorrect. OTP-4550 HTTP-request with a BODY length longer than 0 does not work. OTP-4551 Calculation of remaining chunk size incorrect. OTP-4556 Wrong module name used when attempting to stop the security server (mod_sec_server instead of mod_security_server). OTP-4588 HTTP client now updated to jnets-0.1. OTP-4628 HTTP client called undefined function in HTTP server (httpd_response:send_status/3). -- asn1 ------------------------------------------------------------------- OTP-4559 It was an internal failure when permitted alphabet constraint existed together with for instance a size constraint. E.g. when a referenced type is constrained by a size constraint and the defined type in turn is constrained by a permitted alphabet constraint. OTP-4560 Record is generated in hrl file for a CHOICE with extension mark that has an internal SEQUENCE/SET definition. OTP-4590 Now is the length of a SEQUENCE/SET OF correctly encoded/decoded (PER). OTP-4591 The problem with unordered decoded terms when a component is a ObjectClassFieldType has been solved. OTP-4592 To gain performance in decode the runtime module now makes use of a driver to do the tlv decode. OTP-4631 More complex definitions with TableConstraints where the SimpleTable and ComponentRelation are on different levels is now fully supported. OTP-4633 Now is the Default value for an ENUMERATED returned as the name from the NamedList when decoding. -- ic --------------------------------------------------------------------- OTP-4521 Operation names were always scoped in C server backend, irrespective of the setting of the option scoped_op_calls. OTP-4532 IDL-files containing 'result' or 'Result' as, for example, parameter name, caused an exit with reason bad_match. OTP-4537 Uninitialized variables were used in ic_init_ref for C backends. OTP-4538 CORBA_Environment_alloc() left some fields uninitialized in the returned pointer to an CORBA_Environment for C backends. OTP-4539 The function ic_compare_refs() for C backends could find two unequal references to be equal. OTP-4576 The CORBA stub/skeleton-files generated by IC have been improved, i.e., depending on the IDL-files, reduced the size of the erl- and beam-files and decreased dependencies off Orber's Interface Repository. It is necessary to re-compile all IDL-files and use COS-applications, including Orber, compiled with IC-4.2. -- crypto ----------------------------------------------------------------- -------- 'des_ede3_cbc_encrypt' was added -- tools ------------------------------------------------------------------ OTP-4572 The make option 'par' is removed Emakefiles can now contain compiler options -- observer --------------------------------------------------------------- OTP-4527 Missing priv dir in observer application -- gs --------------------------------------------------------------------- OTP-4522 The communication between Erlang and the external Tcl/Tk process was improved. Compatibility problems with the Microsoft Windows version of Tcl/Tk 8 and menu handling was solved. The grid handing code was corrected to avoid intermittent crashes. gs:info() was changed not to crash when called with the wrong argument. -- misc ------------------------------------------------------------------- -------- Support for cursor keys in X/MacOS X was added. -- EOF --