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 <c>setopts</c>
                   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 --