Bug fix release     : otp_src_R10B-4
Build from snapshot : 2005-03-23

This is a bug fix release 4 for the R10B release.
You can download the full source distribution from
 
  http://www.erlang.org/download/otp_src_R10B-4.tar.gz
  http://www.erlang.org/download/otp_src_R10B-4.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.


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-4.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-4.tar.gz
  http://www.erlang.org/download/otp_doc_man_R10B-4.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-5302  A bug due to representation of open_type values is now fixed.
	      It could cause problem if one used the EXTERNAL type.

    OTP-5378  Due to an internal error the same code could have been
	      generated more than one time. This happened for the exclusive
	      deocode functionality.
	      
--- compiler ------------------------------------------------------------

    OTP-5404  In rare circumstances, inccorrect code for record or tuple
	      access could be generated. The incorrect code would either
	      trigger an internal error in the compiler or cause an
	      exception at run time. (Thanks to Martin Bjorklund.)
	      Corrected a bug in in bit syntax matching where clauses
	      could match in the wrong order. (Thanks to Ulf Wiger.)

    OTP-5436  Complex functions could cause the internal validator in the
	      compiler to generate an internal error even though the
	      generated code was correct.
	      
--- erl_interface ------------------------------------------------------------

    OTP-5456  A configuration test error caused erl_interface to be built
	      without support for threads. This has been corrected.

--- erts ------------------------------------------------------------

    OTP-5388  The c option for the +B flag has been introduced which makes
	      it possible to use Ctrl-C (Ctrl-Break on Windows) to
	      interrupt the shell process rather than to invoke the
	      emulator break handler. All new +B options are also supported
	      on Windows (werl) as of now. Furthermore, Ctrl-C on Windows
	      has now been reserved for copying text (what Ctrl-Ins was
	      used for previously). Ctrl-Break should be used for break
	      handling. Lastly, the documentation of the system flags has
	      been updated.

    OTP-5420  If a process had node links (created by monitor_node/2),
	      excuting process_info(Pid, memory) for that process would
	      crash the emulator.

    OTP-5428  Minor corrections to the help text printed by 'erlc -help'.
	      The documentation for erlc was also slightly updated.

    OTP-5430  32-bit words were used for offsets in the garbage collector.
	      This caused the emulator to crash on 64-bit machines when
	      heaps were moved more than 4 GB during garbage collection.

    OTP-5448  is_boolean(42.5) failed to load if optimization was
	      explicitly turned off.

    OTP-5450  If there was a call to Module:foo/X from any loaded module,
	      the returned by M:module_info(exports) would always include
	      {foo,X} (even though Module:foo/X if was not defined).
	      
--- hipe ------------------------------------------------------------

    OTP-5463  The hipe application is now included in the Windows binary
	      package, so that Dialyzer can be used.

    OTP-5469  The type analyzer in the hipe application has been updated to
	      eliminate some false warnings in Dialyzer.

--- ic ------------------------------------------------------------

    OTP-5375  In C back-ends, the compiler crashed when generating C code
	      for error reports when a scoped name was used as a type in a
	      union.
	      
--- inets ------------------------------------------------------------

    OTP-5380  Sometimes EWS modules where called with an Info record where
	      the peername field was {-1, "unknown"}. This could happen
	      when a client was making a lot of requests which it discards
	      before they where answered by the server. The server now
	      ignores such requests and does not call the EWS modules in
	      this case.

    OTP-5409  The HTTP-server now returns the 408 status code upon a
	      request timeout as expected instead of the previous faulty
	      behavior of sending a 500 status code.

    OTP-5410  The content length was put in to the HTTP-headers as an
	      integer instead of as a string.

    OTP-5411  It was wrongly presumed that code:priv_dir would always be
	      writable due to how the test-server works. The directory is
	      now a configuration parameter in the inets-application
	      configuration file. Failing to configure it will result in
	      that all cookies are treated as session cookies.

    OTP-5419  An undocumented beta version of tftp is included.

    OTP-5443  Tunneling of SSL through a proxy has now been implemented.
	      However, due to lack of test sites, this has only partially
	      been verified, it is likely that there will have to be 
	      future improvements in this area.

    OTP-5442  The pipeline timeout was changed to be zero by default to
	      avoid that people by accident would create connection
	      processes that never die and eat up the socket resources.
	      *** POTENTIAL INCOMPATIBILITY *** 

    OTP-5444  Altered the way spawn_link is used in mod_esi to avoid
	      getting, in this senario, unwanted error reports from
	      spawn_link. (The behavior of spawn_link was altered in a 
	      not backwards compatible way.)

    OTP-5453  When further testing the functionality of https requests that
	      goes through a proxy. We realised that alas this can not
	      currently be supported as it requires features from the ssl
	      implementation that is not currently available. So for now an
	      error message will be returned when trying to use this
	      functionality.

    OTP-5454  When trying to get a url from a server that does not exist
	      the client hanged instead of returning an error message. Bug
	      introduced in inets-4.3.
	      
--- kernel ------------------------------------------------------------

    OTP-5374  net_kernel:monitor_nodes/2 which takes a flag and, an option
	      list has been added. By use of net_kernel:monitor_nodes/2 one
	      can subscribe for nodeup/nodedown messages with extra
	      information. It is now possible to monitor hidden nodes, and
	      get nodedown reason. See the net_kernel(3) documentation for
	      more information.

    OTP-5388  The c option for the +B flag has been introduced which makes
	      it possible to use Ctrl-C (Ctrl-Break on Windows) to
	      interrupt the shell process rather than to invoke the
	      emulator break handler. All new +B options are also supported
	      on Windows (werl) as of now. Furthermore, Ctrl-C on Windows
	      has now been reserved for copying text (what Ctrl-Ins was
	      used for previously). Ctrl-Break should be used for break
	      handling. Lastly, the documentation of the system flags has
	      been updated.

    OTP-5391  Documentation for erlang:binary_to_float/1 deleted. The
	      BIF itself was removed several releases ago. Updated
	      documentation for apply/2 and apply/3.

    OTP-5406  The possibility to start the erlang shell in parallell with
	      the rest of the system was reintroduced for backwards
	      compatibility in stdlib-1.13.1. The flag to be used for this
	      is now called async_shell_start and has been documented. New
	      shells started from the JCL menu are not syncronized with
	      init anymore. This makes it possible to start a new shell
	      (e.g. for debugging purposes) even if the initial shell
	      hasn't come up.
	      
--- megaco ------------------------------------------------------------

    OTP-5401  Pending limit cleanup error's. In some situations (high load), 
	      reply-records where never removed, blocking new requests with 
	      the same transaction id.

    OTP-5446  Added utility functions to retrieve some system and application 
	      info, see versions1 and versions2.

    OTP-5446  When the enable_trace function is called with the File argument, 
	      it sets up dbg so that trace events are written as plain text 
	      to the given file (using io:format).
	      Incompatibilities:

    OTP-5446  The File argument to the function enable_trace no longer sets up 
	      dbg to write the trace events directly to file but instead to be 
	      written to a plain text file using io:format. 
	      Also enable_trace no longer accepts the argument {io, Verbosity}.
	      Fixed bugs and malfunctions:

    OTP-5401  Pending limit cleanup error's. In some situations (high load), 
	      reply-records where never removed, blocking new requests with 
	      the same transaction id.

    OTP-5446  Added utility functions to retrieve some system and application 
	      info, see versions1 and versions2.

    OTP-5446  When the enable_trace function is called with the File argument, 
	      it sets up dbg so that trace events are written as plain text 
	      to the given file (using io:format).
	      Incompatibilities:

    OTP-5446  The File argument to the function enable_trace no longer sets up 
	      dbg to write the trace events directly to file but instead to be 
	      written to a plain text file using io:format. 
	      Also enable_trace no longer accepts the argument {io, Verbosity}.
	      
--- observer --------------------------------------------------------

    OTP-5408  The crashdump viewer is faster when showing message,
	      dictionary, and stack dump for large processes.

--- odbc  -----------------------------------------------------------

    OTP-5437  Odbc now uses configure as all "normal" applications instead 
	      of providing special Makefiles for each commercial supported 
	      platform. This also makes it easier to build odbc on non 
	      supported platforms. 

--- os_mon ----------------------------------------------------------

    OTP-5421  memsup.c will now compile on OpenBSD. (Thanks to Geoff White
	      and Jay Nelson.)

	      The disksup and cpu_sup modules now work on Mac OS X (tested
	      on Mac OS 10.3.8).

	      The memsup module should now work on Linux 2.6.* as well as
	      on older Linuxes. (The format of /proc/meminfo has slightly
	      different formats in different releases of Linux.)

--- parsetools ------------------------------------------------------

    OTP-5461  A bug in Yecc that was introduced in R9B has been removed.
	      Another bug concerning precedence declaration "one level up"
	      has been fixed.

--- snmp ------------------------------------------------------------

    OTP-5390  [agent] Export utility function to create agent config files.

    OTP-5423  [agent] Documented instrumentation utility functions (e.g.
	      snmpa:current_request_id/0).
	      Reported Fixed Bugs and Malfunctions:

    OTP-5370  [manager] If the client crashes after having issued an async request,
	      the server will crash when trying to perform cleanup.

    OTP-5394  Failure to convert an audit-trail-log to textfile when using
	      the default log name.

    OTP-5414  [manager] Corrected the discovery handling of the manager.

    OTP-5415  [manager] Manager statistics counter creation correction.

    OTP-5424  [agent] When using the old style agent configuration (pre 4.0), it
	      was not possible to specify a different error report module
	      (the agent allways choose snmpa_error_logger). A similar
	      problem existed for the config option force_config_load,
	      which allways reverted to false.

    OTP-5431  [manager] The manager net_if process failed to properly handle the case
	      bind_to option value true.

    OTP-5433  [agent] Various minor mnesia-related fixes. "Martin Bjorklund"
	      <mbj@nortel.com>

    OTP-5441  [manager] Missing interface functions for loading and
	      unloading mibs into/from the manager.

    OTP-5445  Added utility functions to retrieve some system and
	      application info, see versions1/0 and versions2/0.
	      
--- stdlib ----------------------------------------------------------

    OTP-5402  Closing a Dets table kept in RAM would cause a crash if the
	      file could not be written. This problem has been fixed by
	      returning an error tuple.

    OTP-5406  The possibility to start the erlang shell in parallell with
	      the rest of the system was reintroduced for backwards
	      compatibility in stdlib-1.13.1. The flag to be used for this
	      is now called async_shell_start and has been documented. New
	      shells started from the JCL menu are not syncronized with
	      init anymore. This makes it possible to start a new shell
	      (e.g. for debugging purposes) even if the initial shell
	      hasn't come up.

    OTP-5412  erl_pp now correctly pretty-prints 'fun F/A'.

    OTP-5425  The compiler will now produce warnings when using the
	      deprecated functions in the snmp module.

    OTP-5432  The function c:zi/0 has been removed. Use c:i/0 instead.

    OTP-5435  The Erlang shell failed if the compiler was not in the code
	      path. This problem has been fixed, but in order to evaluate
	      records the compiler is still needed.

    OTP-5452  Corrected the example in the documentation for ets:match/2.
	      Also clarified that ets:update_counter/3 updates the counter
	      atomically. (Thanks to Anders Svensson.)

    OTP-5462  Corrected two minor bugs found by the Dialyzer: Calling a
	      parameterized module from a restricted shell (i.e. if
	      shell:start_restricted/1 has been used) would crash the shell
	      evaluator. A debug printout in gen_fsm had a clause that
	      would never match; causing less information to be printed.

	      And a somewhat more serious one also found by Dialyzer:
	      rpc:yield/1 would crash unless the call started by
	      rpc:async_call/4 had already finished; rpc:nb_yield(Key,
	      infinity) would also crash.

	      Cleaned up and removed redundant code found by Dialyzer in
	      erlang:dmonitor_p/2.

--- tools -----------------------------------------------------------

    OTP-5418  The cover tool could not analyze empty modules on module
	      level.