Bug fix release : otp_src_R7B-2
From snapshot   : 20010305


There is no patch from otp_src_R7B-1 to otp_src_R7B-2, you have
to download the full release.

There is still a configure bug that has the unfortunate effect that
configure fails but it looks like a success. The "make" command will
fail instead. The reason of the configure failure was that the SSL
library was not found.
 
If you have this problem you will find the line
 
  configure: error: No OpenSSL or SSLeay found
 
in the configure output. SSL is not required to build Erlang/OTP, do
 
  % ./configure --without-ssl
 
or find out where your SSL files are and do
 
  % ./configure --with-ssl=PATH-TO-SSL-TOP-DIR

---------------------------------------------------------------------------

The patch handling was changed so now there are new releases and one
patch to get you from the previous release to the current release.  In
more detail:

    1. We release fully tested source base releases. This is R7B-0,
       R8A-0, i.e. those ending in "-0".

    2. We release selected source snapshots. This is snapshots that
       contains important changes and that passed the testing. These
       snapshots will be named R7B-1, R7B-2, ......

    3. We will release combined patches, i.e. one large patch that
       patch from R7B-0 to R7B-1, a second one from R7B-1 to R7B-2
       etc.  Note that the result after patching will not be exactly
       the same as the snapshot. Some precompiled BEAM files in the
       bootstrap part may differ.

    4. When a move from one source release to the next require changes
       in the bootstrap compiler, then there will be no patch to
       upgrade. This forces a complete source release download with
       the correct binary BEAM files.

    5. Binary releases for Linux, FreeBSD and Windows will be built
       from the complete source snapshots, i.e. not from a base source
       release with applied patches.

---------------------------------------------------------------------------

The changes from the previous patch level are

  runtime_tools/kernel/erts

    OTP-3401  Heart could time out due to system time adjustments. Heart
              is now modified to use timestamps unrelated to system dates.

    OTP-3815  zlib in the emulator (used during compress/decompress of 
              files) did not use the right memory allocation routines
              on vxworks.
    OTP-3819  Instability problems in the erlang emulator introduced in R7 
              are now corrected:

                - The R7B01 emulator may now be restarted after halting 
                  without rebooting the VxWorks node.
                - Parallel portprogrm execution no longer may cause memory
                  access errors in tExecTask.
                - Use of list_to_binary may no longer cause stack overruns 
                  for the emulator.

    OTP-3824  Name clashes between Erlang emulator and erl_interface
              on VxWorks removed.

    OTP-3832  A bug in efile_drv that randomly caused memory access 
              violation when using file:get_cwd() has been fixed.

    OTP-3845  In some cases, the debugger would in a call to undefined
              function erts_debug:apply/4.

    OTP-3888  Running erlang in an console on Windows (erl) no longer
              causes output from erlang to be blocked. Using Ctrl-C to
              interrupt emulator now works as expected.

    OTP-3747  A number of bug fixes and improvements have been done
    OTP-3592  to applications runtime_tools, 
    OTP-3744  kernel and erts:

                - A read timeout no longer resets the sequential
		  trace token. This is an incompatibility towards
		  the previous behaviour. Use seq_trace:set_token([])
		  to reset the sequential trace token.

                - seq_trace:get_token/0 and  seq_trace:set_token/1 now
 		  have compatible token formats. 

                - dbg:trace_port/2 and dbg:trace_client/2,3 now supports
                  trace to and read from a size limited "wrap file set".

                - dbg:trace_port_control/1 now supports operation
 		  get_listen_port for the ip trace driver.

                - New match spec functions {is_seq_trace} and 
		  {get_seq_trace} has been added to test and
		  read the sequential trace token in match specs.

                - New match spec functions {get_tcw} and {set_tcw Value}
		  that reads and sets a "trace control word" in the node
		  has been added. The "trace control word" is a word in
		  each Erlang node of at least 24 bits. There are also
		  enhancements of BIFs erlang:system_info(trace_control_word)
		  and erlang:system_flag(trace_control_word, Value)
		  for the same purpose.

                - A new match spec function {silent, TrueOrFalse} for
		  setting a silent call trace flag per process that inhibits
		  call trace messages, both local and global, has
		  been added. The BIF erlang:trace/3 has been extended to 
		  recognize the flag 'silent' to start a call
		  trace in silent mode.

                - Some bugs in the dbg module has been fixed, e.g the 
	 	  'old_trace_call' flag has been removed from the 'all'
		  flags list, and the dbg server no longer hangs if the
		  supplied tracer fails to start.

                - A bug in the emulator that made 'EXIT' messages
		  from a process involved in a sequential call trace
		  get overwritten by the sequential trace token
		  itself has been fixed.

                - The documentation regarding the above has
		  been updated. Especially, the fact that the match spec
		  function {return_trace} destroys the 
		  tail recursiveness of the traced function has been 
		  pointed out.


  asn1

    OTP-3830  PER: Trailing zeroes in a BIT STRING declared without named
	      bits should not be removed in the encodings.

    OTP-3713  PER: Constraints are not propagated when types are
	      referring to each other. Example:
 
                TBCD-STRING ::= OCTET STRING
 
                LAI ::= TBCD-STRING (SIZE(3))
 
              The size constraint is not passed on during encode,decode
              resulting in wrong encoding for PER , it is
              coded with a length determinant which should not be there
              when the length is fixed. For BER this does not matter
              because the constraints does
              not affect the encodings.

    OTP-3796  The generated code gets wrong if there are several ENUMERATED
              fields in a SEQUENCE or SET.

    OTP-3811  BER:Decode of a type T ::= SEQUENCE OF C fails if C is
              encoded with indefinite length.


  compiler

    OTP-3831  Modules containing long literals string concatenated with
	      variables would take long time to compile and the beam module
	      would be unecesserialy large.

    OTP-3885  By default, debug information is no longer included in
 	      beam modules. Use the compiler option debug_info
	      to include debug information.


  debugger

    OTP-3829  The debugger could not be run in embedded mode, because the
              dbg_ets module was not listed in the app file.

    OTP-3845  In some cases, the debugger would in a call to undefined
              function erts_debug:apply/4.


  erl_interface

    OTP-3809  A race-condition bug in the term allocation routines was 
              corrected.

    OTP-3810  erl_interface could not be linked with pthreads.

    OTP-3820  The TCB of VxWorks processes no longer grows when erl_errno 
              is accessed. On Pthreads plattforms the use of erl_errno no
              longer crashes programs using multithreading.

    OTP-3824  Name clashes between Erlang emulator and erl_interface
	      on VxWorks removed.


  gs

    OTP-3789  A timing problem sometimes caused a crash when a window
              was destroyed.


  inets

    --------  Better handling of invalid server response (e.g. as a result
              of an erroneous server config). 

    OTP-3892  Invalid guard in function ftp:open/2. This problem exist
              only in inets-2.5.4. Use ftp:open/3 instead.

    OTP-3751  Support for choosing port number when opening FTP connection.
              It is now possible to open a connection using a user specified
              port number. Default is still 21.

    OTP-3755  Wrong return value from FTP function recv_bin. The function
              actually returned: {ok,{ok,binary()}} instead of {ok,binary()}

    OTP-3793  The HTTP server hangs due to unhandled info: 
              {'EXIT',<0.12542.6>,badsig} Crash of the listener process
              for this reason not handled.


  kernel

    OTP-3773  A hanging bug in the protocol between dist_ac and
	      application_controller has been fixed. It occurred
	      when dist_ac had stopped an application with 
	      {ac_change_application_req,AppName,stop_it} and then
	      tried to start it with {ac_change_application_req,
	      AppName,{takeover,FromNode,RestartType}}.

    OTP-3780  If a new application was added using code:replace_path/2,
	      the code:lib_dir/1 function would fail on the new application
	      name.

    OTP-3798  The internal inet_db counter next_id did not keep within
              the bounds [0, 65535] imposed by DNS query field width.
              The reply was then not recognized since the reply
              id was truncated to 16 bits. This bug is now fixed.

    OTP-3807  The default receive buffer size for UDP has been 
              restored to 8192 bytes, which it was before R7.

    OTP-3823  gen_upd:recv/2,3 now works better. The option 
              combination [binary, {active, false}] was broken.

    OTP-3836  gen_tcp:connect/3,4, and gen_udp:send/4 now exits with 
	      badarg if an IP address tuple with a field
	      integer value that is is not in the range 0 through 
	      255 is passed as argument. Previously this caused a 
	      function clause.

    OTP-3883  The function inet:gethostbyname/2,3 sometimes returned
	      {error, timeout} when failing to lookup a name. This
	      has been changed to the more appropriate response
	      {error, nxdomain}.

    OTP-3886  The function inet:gethostbyname/2,3 now accepts an
	      IP-string as the Name argument for all resolver
	      types. This previously did not work for the built in
	      DNS resolver, nor for the /etc/hosts file resolver.

    OTP-3887  The native version of the resolver for erlang no longer may 
	      crash the system due to external causes like catatonic DNS 
	      servers.

    OTP-3894  When a host machine was misconfigured so that 
	      inet:gethostbyname/1 returned an empty hostname
	      for the host on which an erlang node was started, 
	      inet_config crashed with a function clause during node 
	      start on some platforms. This has now been fixed.


  stdlib

    OTP-3909  Dets file repair failed with {error, eaccess} on the Windows
	      platforms in stdlib-1.9.3 (patched R7B). This is now corrected
	      and dets files can be repaired.

    OTP-3877  Ets:info/2 and dets:info/2 no longer returns values other than
	      'undefined' for non existing ets/dets tables. The behaviour is
	      now as described in the documentation.

    OTP-3882  The (betatest) ets:select/2 call in R7B may no longer
	      crash the emulator. This only affects customers beta testing
	      this functionality.

    OTP-3746  The ets module now contains iterator functions
	      foldl/3 and foldr/3 analogous to the ones
	      in the lists module.

    OTP-3782  Somewhat faster repair of dets files.


  tools

    OTP-3879  The functions xref:m/1 and xref:d/1 return 
	      a list of undefined functions in case the BEAM files do not 
	      contain debug information.