Bug fix release : otp_src_R8B-2 Build from snapshot : 20020807 This is a bug fix release R8B-2. You can download the full source distribution or the patch that take R8B-1 up to R8B-2. http://www.erlang.org/download/otp_src_R8B-2.tar.gz http://www.erlang.org/download/otp_src_R8B-1to2.patch.gz The bug fixes and improvements in this release is described in the release notes http://www.erlang.org/download/otp_src_R8B-2.readme 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. To patch the previos release "otp_src_R8B-1" you use a patch program that understand the "unified" patch format and do % cd otp_src_R8B-X % gzip -dc /location/of/patch/file/otp_src_R8B-1to2.patch.gz | patch -p1 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_R8B-2.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_R8B-2.tar.gz http://www.erlang.org/download/otp_man_R8B-2.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-4389 - The emulator could deadlock on vfork() due to operations performed in the child process before exec() (only observed on multi-processor machines). This bug has now been fixed. OTP-4398 - The possibility to use elib_malloc instead of the default (libc) malloc has been added. The +m command line switch is used in order to enable another malloc than the default (see the erl(1) man page). In order to enable elib_malloc use "+m elib". OTP-4419 - When running the instrumented emulator and sl_alloc release 1, sl_realloc could fail to preserve all information. This has now been fixed. OTP-4420 - Harmless bug (which caused compilation warnings on some platforms) fixed in sl_alloc (release 2) OTP-4421 - Documentation of obsolete system flag +s removed OTP-4415 - Corrects a bug in the socket communication. A gen_tcp:recv/3 could hang infinitely when concurrently sending receiving from the same socket in passive mode. OTP-4422 - Exerimental kernel poll support was added for Linux (/dev/kpoll), FreeBSD (kqueue) and Solaris (/dev/poll) -- kernel ----------------------------------------------------------------- OTP-4274 - The lookup procedure for a standalone host using the internal resolver has been changed for /etc/hosts, so that a lookup request for the own short hostname will match on the fully qualified hostname even if the short hostname did not exist in /etc/hosts. -- stdlib ----------------------------------------------------------------- OTP-4431 - If the pattern was a cons, but the value was not, it resulted in an illegal pattern error, instead of simply a match failure. -- erl_interface ---------------------------------------------------------- OTP-4379 - ei_x_format() was not working correctly for floating point arguments on some platforms. This is now corrected. OTP-4370 - The function erl_receive_msg() no longer try to decode messages that contains no data. OTP-4423 - Sortorder was improved and bignum decoding was added -- os_mon ----------------------------------------------------------------- OTP-4249 - cpu_sup:util/0 and cpu_sup:util/1 which returns information about cpu utilization have been added. For further information see cpu_sup(3). OTP-4344 - process_memory_high_watermark alarm was erroneously set when 1/4 of the limit had been reached. This bug has now been corrected. OTP-4000 - Gen_server calls to the memsup server of the os_mon application could fail due to slow responses from the memsup port program. The memory polling is now handled by a separate process making answers from memsup more or less instant. The disksup server of the os_mon application is modified so that it does not use os:cmd() on Unix systems. The initial version of the patch had a memsup startup race problem that could make memsup crash with messages similar to {bad_return_value,{stop, {unexpected_message, {'$gen_call', {<0.31.0>,#Ref<0.0.0.389>}, get_memory_data}}, []}}. The latest version of this patch removes this bug. -- orber ------------------------------------------------------------------ OTP-4410 - It is now possible to activate automatic typechecking when invoking operations on CORBA Objects locally. For more information, see the configuration and debugging chapters in the User's Guide regarding the local_typecheck option. OTP-4375 - Orber now support the Fixed datatype defined by the OMG. To be able to define Fixed types in an IDL-specification, check that your current IC version supports this type as well. If not, the only option is to encapsulate it in an any type. OTP-4376 - It was not possible to use the function corba:print_object/2, which was introduced in the previous release, only corba:print_object/1. Now it is also possible to use the error_logger or receive the data in string form. -- cosNotification -------------------------------------------------------- OTP-4412 - The exception CosNotifyFilter::InvalidValue, raised by the operation CosNotifyFilter::MappingFilter::add_mapping_constraints, did not contain correct data in the body. Hence, it was not possible to pass this exception to another ORB. OTP-4413, OTP-4414 - It was not possible to set the QoS property PacingInterval to zero and the default value was not compliant with the OMG specification. The default value for MaximumBatchSize have also been changed du to the same reason. OTP-4413, OTP-4414 - The default value, for the QoS properties PacingInterval and MaximumBatchSize, have been changed to zero (i.e. no timeout) and 1 respectively, which is compliant with the OMG specification. -- megaco ----------------------------------------------------------------- OTP-4339 - Adding utility functions for megaco tracing. OTP-4336 - Optional line-number configure for the megaco flex scanner incorrect. The intention was that line-numbering could be replaced with token number in order to improve performance. This did not work (line-numbers was always chosen). This has no runtime effect. OTP-4337 - Improved error reporting from the megaco messenger module. OTP-4357 - Text parsing of type octet string erroneous. OTP-4359 - A message containing a transaction request without the transaction id value is incorrectly reported back to the sender with a just an ErrorDescriptor. The correct behaviour is described in chapter 8.1.1 of RFC 3015. Now the result will be a transactioReply with transaction id = 0 and an ErrorDescriptor. -- inets ------------------------------------------------------------------ OTP-4374 - Use the same read algorithm for socket type ssl as is used for ip_comm. As of version 2.3.5 of the ssl application it is possible to use socket option {active, once}, so the same algorithm can be used for both ip_comm and ssl. -- snmp ------------------------------------------------------------------- OTP-4345 - Improved error handling in snmp_error_report module (ets-lookup failure). OTP-4329 - SNMP NotifiyType error. Calls to the functions snmp_notification_mib:get_targets/0 failes since it assumes that notify type was stored as atoms, which is not always the case. Furthermore the parsing of the notify config file did not convert the 'trap' and 'inform' to their respective integer values 1 and 2. OTP-4394 - SNMP Target mib tag check incorrect. -- ssl -------------------------------------------------------------------- OTP-4380 - Setting of the option `nodelay' caused the SSL port program to dump core. Setting of the option '{active, once}' in setopts was wrong, causing a correct socket message to be regarded as erroneous. OTP-4374 - A self-signed peer certificate was always rejected with the error `eselfsignedcert', irrespective of the `depth' value. -- asn1 ------------------------------------------------------------------- OTP-4129 - Now gives the compiler an apropriate error report when exported undefined types are detected. OTP-4161 - The type ObjectDescriptor is now supported, previously the implementation of encode/decode for this rarely used type was incomplete. OTP-4200 - In case of per and compact_bit_string the rightmost byte were erronous truncated when the rightmost bits of that byte were zeros. This is now corrected. OTP-4232 - Bad match of returnvalue from decode_length in skipvalue/3 has now been fixed. OTP-4234 - Now is decode of ENUMERATED handled correctly, when tagged EXPLICIT. OTP-4242 - The compiler now parses and handles the ValueFromObject construct. OTP-4248 - Now does the compiler handle the case when the object set in simple table and componentrelation constraints is of a CLASS without a UNIQUE field. In this case is the octets, which is assumed to be encoded, encoded as an open type. OTP-4275 - Compiler handles objects in AdditionalElementSetSpec in ObjectSetSpec, i.e. the objects that are referred to after the ellipses in an object set. OTP-4358 - Now are values with a component of type CHOICE encoded with indefinite length correctly decoded. OTP-2741 - The language constructs (from the old 1988 standard) ANY and ANY DEFINED BY are now implemented. OTP-4235 - Now it is checked in run-time if a OBJECT IDENTIFIER value is unvalid. OTP-4247 - The ASN.1 types EXTERNAL,EMBEDDED PDV and CHARACTER STRING now have full support in the compiler. OTP-4355 - A driver in C does the final job (complete) of the PER encoding when files are compiled with per_bin and optimize flags. It gives significant faster encoding for PER. OTP-4381 - Encode and decode of PER encoding has been made faster by moving analysis done in run-time to compile-time. These optimizations are available by compiling ASN.1 files with options per_bin and optimize. OTP-4353 - Proper length encoding and padding implemented for a BIT STRING with NamedNumberList and size constraint as value range. This functionality didn't work in the rare occasion when the NamedNumberList is shorter than the lower bound of the constraint.As in this example: TestS ::= BIT STRING {a (0),b (1)} (SIZE (3..8)) OTP-4354 - Bug in compiler, when an OBJECT IDENTIFIER value consisting of two identifiers (Defined values or Name form identifiers) was falsely interpreted causing a compiling error is now corrected. OTP-4390 - Internal error in check phase that caused crash on ObjectClassFieldType in ber_bin is corrected. OTP-4395 - Tags for open types are handled according to x.680 30.6c, i.e. open types shall not be tagged IMPLICIT. -- ic --------------------------------------------------------------------- OTP-4341 - Module info vsn replaced by app_vsn. OTP-4367 - IC-4.1.2 disabled the definition of float constants beginning with a zero (e.g. 0.14). OTP-4368 - IC did not recognize all reserved words defined in the OMG specification (2.3.1). The new keywords are fixed, abstract, custom, factory, local, native, private, public, supports, truncatable, 'ValueBase' and valuetype. But for now this is only active for the erl_corba backend and only incorrect usage of fixed, since this datatype is now supported, triggers an error for this backend. OTP-4365 - It was not possible to use wchar or wstring inside a union body when using the Java backend. OTP-4386, OTP-3231 - The compile options this and handle_info did not behave as described in the documentation. The timeout now behaves as, for example, handle_info. OTP-4387 - If we typedef a sequence, which contains a struct or a union, the access function id/0 returned an incorrect IFR Id if a prefix pragma was used. OTP-4388, OTP-4392 - If an IDL file contained a prefix pragma, incorrecct IFR-id's was generated in the IFR-registration operation oe_register for aliases (typedef) and attributes. OTP-4391 - For C back-ends, when encodings/decodings failed, memory allocated for variable size parameter types was not freed. OTP-4393 - If an IDL file contained a multiple typedef (e.g. typedef string str1, str2;), the oe_unregister operation failed to remove all data, in this case str2, from the IFR. OTP-4400 - IC did not recognize octet-constants (e.g. const octet octetmax = 255;). OTP-4401 - Negative 'long long' constants was not accepted (e.g. const long long MyConstant = -1;). - - For Erlang and C back-ends an IC version stamp has been added to generated source code. This stamp i preserved in compiled target code. - - For C backends an assert() expression has been added to generated code. That expression asserts that the result of a memory allocation size calculation is strictly positive. An error will result in a printout and an abort(). The assertion can be inhibited by defining the macro NDEBUG (according to ANSI C). - - If the assertion is inhibited, and a size calculation error is detected, an INTERNAL CORBA exception is set. -- debugger --------------------------------------------------------------- OTP-4418 - Debugger would crash in an hipe-enabled emulator -- misc ------------------------------------------------------------------- OTP-4352 - Starting slave nodes (with slave module) could fail on Windows 2000. The problem was incorrect quoting of arguments in combination with the -detached flag to the windows emulator. The quoting is now corrected and the slave module now works as expected. Port programs using WriteFile to standard output from multiple threads could fail due to the fact that the inherited pipe was opened for overlapped I/O on w2k. This is no longer the case, the pipes are opened in "normal" mode (non overlapped) at the port program end. The registry driver could crash the system due to buffersize miscalculations, this is now corrected. - - The limit on simultaneously open ports on one erlang machine under windows is also raised. OTP-4427 - The source was cleaned up to reduce the number of compiler warnings and improve the compatibility. -- EOF --