Bug fix release : otp_src_R10B-6
Build date      : 2005-06-22

This is a bug fix release 6 for the R10B release.
You can download the full source distribution from
 
  http://www.erlang.org/download/otp_src_R10B-6.tar.gz
  http://www.erlang.org/download/otp_src_R10B-6.readme (this file)

Note: To unpack the TAR archive you need a GNU TAR compatible program.

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-6.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-6.tar.gz
  http://www.erlang.org/download/otp_doc_man_R10B-6.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-5616  Corrected code that generated code causing badarith warning.

--- compiler ------------------------------------------------------------

    OTP-5553  In some circumstances, having two try/catch constructs
	      following each in a function body, would cause an internal
	      error to be generated (when in fact the generated code was
	      correct). (Thanks to Fredrik Thulin.)

	      Incorrect calls such as M:42() would crash the compiler. The
	      compiler now generates a warning. (Thanks to Ulf Wiger.)

    OTP-5584  The new 'fun M:F/A' construct creates a fun that refers to
	      the latest version of M:F/A. This syntax is meant to replace
	      tuple funs '{M,F}' which have many problems.

	      The new type test 'is_function(Fun, A)' (which may be used in
	      guards) test whether Fun is a fun that can be applied with A
	      arguments. (Currently, Fun can also be a tuple fun.)

--- crypto --------------------------------------------------------------

    OTP-5630  Added support for RFC 3826 - The Advanced Encryption Standard
	      (AES) Cipher Algorithm in the SNMP User-based Security Model.
	      (Thanks to Martin Bjorklund.)

--- edoc ----------------------------------------------------------------

    OTP-5594  Flatten lists in macro expansion

--- erl_interface -------------------------------------------------------

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

    OTP-5575  The clock_gettime configure test for erl_interface is
	      performed correctly now.
	      
--- erts ------------------------------------------------------------

    OTP-5532  The cpu_timestamp option for erlang:trace/3 is now also
	      supported on Linux.

    OTP-5544  The last known werl window size/position is now saved
	      correctly when werl is stopped with the window minimized. A
	      problem with the placement not being saved if the emulator is
	      halted or stopped from the JCL menu has also been fixed.

    OTP-5561  to_erl could close unexpectedly on Linux systems. Also,
	      output from the emulator could be lost. Corrected.

    OTP-5572  ets:delete/1 now allows other Erlang process to run when a
	      large table is being deleted.

    OTP-5582  A bug regarding tcp sockets which results in hanging
	      gen_tcp:send/2 has been corrected. To encounter this bug you
	      needed one process that read from a socket, one that wrote
	      more date than the reader read out so the sender got
	      suspended, and then the reader closed the socket. (Reported
	      and diagnosed by Alexey Shchepin.)

	      Updated the documentation regarding the second argument to
	      gen_tcp:recv/2, the Length to receive.

    OTP-5584  The new 'fun M:F/A' construct creates a fun that refers to
	      the latest version of M:F/A. This syntax is meant to replace
	      tuple funs '{M,F}' which have many problems.

	      The new type test 'is_function(Fun, A)' (which may be used in
	      guards) test whether Fun is a fun that can be applied with A
	      arguments. (Currently, Fun can also be a tuple fun.)

    OTP-5595  Erlang/OTP will now build on Mac OS X 10.4 "Tiger" (the
	      problem was that 10.4 has a partially implemented poll()
	      function that can't handle devices). Also, on Mac OS X 10.3
	      "Panther", Erlang/OTP will now use select() instead of poll()
	      (because poll() on Mac OS X 10.3 is implemented using
	      select()).

    OTP-5596  In the hipe application, there's a new experimental register
	      allocator (optimistic coalescing), and the linear scan
	      register allocator is now also available on ppc. Plus lots of
	      cleanups.

	      Minor hybrid heap corrections.

	      The maximum size of a heap used to be articially limited so
	      that the size of a heap would fit in 28 bits; that limitation
	      could cause the emulator to terminate in a garbage collection
	      even if there still was available memory. Now the largest
	      heap size for a 32 bit CPU is 1,699,221,830 bytes. (Thanks to
	      Jesper Wilhelmsson.)

	      Also removed the undocumented +H emulator option.

    OTP-5618  A bug in the file driver when opening a file in compressed
	      mode, and the returned allocated pointer from the compressing
	      library was in very high memory (>= 2GB), causing e.g.
	      file:read/2 to return {error,ebadf}, has been corrected.

--- hipe ----------------------------------------------------------------

    OTP-5596  In the hipe application, there's a new experimental register
	      allocator (optimistic coalescing), and the linear scan
	      register allocator is now also available on ppc. Plus lots of
	      cleanups.

	      Minor hybrid heap corrections.

	      The maximum size of a heap used to be articially limited so
	      that the size of a heap would fit in 28 bits; that limitation
	      could cause the emulator to terminate in a garbage collection
	      even if there still was available memory. Now the largest
	      heap size for a 32 bit CPU is 1,699,221,830 bytes. (Thanks to
	      Jesper Wilhelmsson.)

	      Also removed the undocumented +H emulator option.

--- inets ------------------------------------------------------------

    OTP-5148  The ftp client now supports passive mode. Actually the ftp
	      client will always try to use passive mode and if it fails it
	      will use active mode instead. It is also possible to force
	      the ftp-client to use active mode, if that is desired, by
	      calling ftp:force_active/1 this way you can get the old
	      behavior.

    OTP-5549  Wrapper function http_transport:accept/3 did error-handling
	      that it should not do because only the caller of the wrapper
	      can determine what action to take. So timeouts where handled
	      twice, once in http_transport and once in httpd_acceptor.
	      Clean up of the wrapper module http_transport changed the
	      action of the wrapper module and made the unwanted behavior
	      noticeable in in OTP error logs. And now the unwanted error
	      handling has been removed. The cleanup helped us find bad
	      code but alas it also generates a lot of log printouts that
	      are quite disturbing to the user of the HTTP-server.

    OTP-5551  In the rewrite for 4.4 some mod_esi-environment values where
	      mistaken for ordinary header values and where incorrectly
	      transformed to strings. They are now atoms again.

    OTP-5552  The HTTP server now handles "GET /\r\n\r\n" as well as "GET /
	      \r\n\r\n". According to the RFC the whitespace is not nedded.

    OTP-5141  The HTTP server now supports ipv6 in the case that the
	      underlying mechanisms also do so. (ssl does not yet support
	      ipv6.)

    OTP-5142  The FTP client now supports ipv6 in the case that the
	      underlying mechanisms also do so.

    OTP-5623  The internal design of using blocking gen_tcp:recv with a
	      timeout and retries resulted in code that was hard to get a
	      good overview of, and ultimate led to situations where the
	      client got the wrong answer or no answer at all. The errors
	      where many times very timing dependent and mainly effected
	      the chunk-related functions so if you where lucky you proably
	      would not have noticed. The internal design was changed to
	      use gen_tcp active once semantics. The API is not effected
	      except for the function ftp:quote/2 which now returns a list
	      of strings (ftp result lines) where the line endings "\r\n"
	      has been removed. This was the original intention for the
	      return value of ftp:quote/2 but it was non trivial to make a
	      good such solution with the old design and a compromise was
	      made.

    OTP-5624  The new implementation of pipelining in inets-4.1 alas was
	      slightly broken and unfortunately not caught by the test
	      suite that apparently needs some additions. The result was
	      that requests that ought to have been pipelined where not,
	      this has now been fixed.

    OTP-5625  An option was added to disable the ipv6 support in the HTTP
	      client. This to provide a workaround possibility for buggy
	      ipv6-stacks.

    OTP-5626  When generating dynamic HTTP response bodies the the default
	      content-type is now set to "text/html" instead of
	      "text/plain" which is more intuitive.

    OTP-5627  When using the latest esi interface with the callback
	      interface of arity 3, HTTP Content-Type headers where
	      ignored, this due to a subtle difference between this
	      interface and the old ones in how they viewed HTTP
	      delimiters.
	      
--- kernel ------------------------------------------------------------

    OTP-5449  In case of a DNS lookup loop, inet_db:getbyname ends up
	      building an infinite list. This has been fixed.

    OTP-5576  When doing an inet6 name lookup on an IPv4 address it was
	      possible to get an address on IPv4 format back. This has been
	      corrected. Some other minor inconsistencies regarding IPv6
	      name lookup have also been corrected.

    OTP-5393  At startup, the erlang resolver hosts table was used to look
	      up the name of the local (and possibly stand alone) host.
	      This was incorrect. The configured resolver method is now
	      used for this purpose.

    OTP-5543  'erl -config sys.config' would fail to start if the
	      sys.config file did not contain any whitespace at all after
	      the dot. (Thanks to Anders Nygren.)

    OTP-5555  The erlang:port_info/1 BIF is now documented. Minor
	      corrections of the documentation for erlang:port_info/2.

	      Added a note to the documentation of the math module that all
	      functions are not available on all platforms.

	      Added more information about the '+c' option in the erl man
	      page in the erts documentation.

    OTP-5582  A bug regarding tcp sockets which results in hanging
	      gen_tcp:send/2 has been corrected. To encounter this bug you
	      needed one process that read from a socket, one that wrote
	      more date than the reader read out so the sender got
	      suspended, and then the reader closed the socket. (Reported
	      and diagnosed by Alexey Shchepin.)

	      Updated the documentation regarding the second argument to
	      gen_tcp:recv/2, the Length to receive.

    OTP-5584  The new 'fun M:F/A' construct creates a fun that refers to
	      the latest version of M:F/A. This syntax is meant to replace
	      tuple funs '{M,F}' which have many problems.

	      The new type test 'is_function(Fun, A)' (which may be used in
	      guards) test whether Fun is a fun that can be applied with A
	      arguments. (Currently, Fun can also be a tuple fun.)

    OTP-5603  According to the documentation Global implements the
	      equivalent of register/2, which returns badarg if a process
	      is already registered. As it turns out there is no check in
	      Global if a process is registered under more than one name.
	      If some process is accidently or by design given several
	      names, it is possible that the name registry becomes
	      inconsistent due to the way the resolve function is called
	      when name clashes are discovered (see register_name/3 in
	      global(3)).

	      In OTP R11B Global will not allow the registration of a
	      process under more than one name. To help finding code where
	      no will be returned, a Kernel application variable,
	      global_multi_name_action, is hereby introduced. Depending on
	      its value (info, warning, or error), messages are to the
	      error logger when Global discovers that some process is given
	      more than one name. The variable only affects the node where
	      it is defined.

--- orber ------------------------------------------------------------

    OTP-5567  It is now possible to define a Access Control List (ACL),
	      which limits the host and ports Orber may connect to or
	      accept connections from.

    OTP-5568  It is now possible to add, and remove, listen interfaces. For
	      more information, consult the User's Guide and the orber
	      module Reference Manual.

    OTP-5569  It is now possible to activate and deactivate Audit/Trail
	      logging. One of the three built in interceptors will be used
	      depending on the requested verbosity.

    OTP-5570  It is now possible to configure Orber to add the interface,
	      to exported local IOR:s, a Request came via.

    OTP-5571  It is now possible to instruct Orber which local interface an
	      outgoing Request shall be sent via. To accomplish this the
	      Orber generic context must be added added to each invocation.

    OTP-5583  It is now possible to define a default local interface, which
	      Orber will use when connecting to another ORB.

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

    OTP-5559  Corrected several problems in the error handling/error
	      recovery (especially when os_mon is starting up).

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

    OTP-5506  [manager] Late (async) reply incorrectly delivered to user
	      via handle_pdu instead of handle_error.

    OTP-5562  [agent] Add mapping of notification oid to aliasname. Martin
	      Bj�rklund.
	      Reported Fixed Bugs and Malfunctions:

    OTP-5505  [manager] Registering of USM users erroneous.

    OTP-5508  [manager] Security engine id lookup errors

    OTP-5539  [manager] User unregistration after reboot causes process
	      crash (snmpm_server).

    OTP-5547  [agent] Failure to stop the snmp application when started
	      with the old config type.

    OTP-5548  [manager] Error's reported by the SecModule (v3) when
	      generating outgoing message was not handled correctly in
	      message processing dispatcher module. And also when
	      encryption failed, the real error (unsupportedSecurityLevel)
	      was masked into encryptionError.

    OTP-5550  [agent] Error's reported by the SecModule (v3) when
	      generating outgoing message was not handled correctly in
	      message processing dispatcher module.

    OTP-5556  [manager] Set-request without specifying the variable type
	      failed. The type of the oid had to be found in the loaded
	      MIB. This lookup was erroneous.

    OTP-5557  [manager] Cannot handle version-1 traps.

    OTP-5560  [manager] (v3) encryption/decryption failure

    OTP-5564  [manager] (v3) Security level handled incorrectly.
	      Improvements and new features:

    OTP-5574  [manager] Added another get, get-next and set function with 
	      another argument, ExtraInfo. This argument is passed on to 
	      the net-if process. The net-if process included in this 
	      application makes no use of this info, but other implementations 
	      might.

    OTP-5578  [manager] report with incorrect securtyModel and/or
	      securityLevel is ignored (dropped, except for incrementing
	      the proper error counter) even if all other info is correct.
	      This has been changed so that in this situation, the user
	      will be informed, either via the return value from a
	      synchronous call or via a call to the handle_error callback
	      function.

    OTP-5580  [manager] Added function to unregister USM-user,
	      snmpm:unregister_usm_user.

    OTP-5590  [agent] Added functions to retrieve lists of loaded tables
	      and variables.
	      Reported Fixed Bugs and Malfunctions:

    OTP-5579  [manager] Incorrect SHA-key length check when updating
	      usm-user info (should have been 20 but was 16).

    OTP-5591  [compiler] Incorrect error report when the name of the field
	      and object is the same.

    OTP-5592  [manager] Arguments Port and CtxName where swapped in
	      function snmpm:g/5 when forwarding call.
	      Incompatibilities:

    OTP-5574  [manager] The snmpm_network_interface behaviour has changed. 
	      One more argument (ExtraInfo) was added to the function 
	      send_pdu (see send_pdu).

--- ssl ------------------------------------------------------------

    OTP-5429  A configuration option for choosing protocol versions has
	      been added (sslv2, sslv3, and tlsv1).

    OTP-5429  A configuration option for choosing protocol versions has
	      been added (sslv2, sslv3, and tlsv1).

    OTP-5429  A configuration option for choosing protocol versions has
	      been added (sslv2, sslv3, and tlsv1).

    OTP-5620  The R/W buffer length i esock.c was too small. It has been
	      increased from 4k to 32k.

--- stdlib --------------------------------------------------------------

    OTP-5555  The erlang:port_info/1 BIF is now documented. Minor
	      corrections of the documentation for erlang:port_info/2.

	      Added a note to the documentation of the math module that all
	      functions are not available on all platforms.

	      Added more information about the '+c' option in the erl man
	      page in the erts documentation.

    OTP-5584  The new 'fun M:F/A' construct creates a fun that refers to
	      the latest version of M:F/A. This syntax is meant to replace
	      tuple funs '{M,F}' which have many problems.

	      The new type test 'is_function(Fun, A)' (which may be used in
	      guards) test whether Fun is a fun that can be applied with A
	      arguments. (Currently, Fun can also be a tuple fun.)

    OTP-5589  Very minor corrections in beam_lib and its documentation.

--- syntax_tools --------------------------------------------------------

    OTP-5593  Now syntax_tools correctly handles "CR/LF" in source code
	      files, for edoc purposes.

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

    OTP-5588  The cover tool did not escape '<' and '>' not beeing part of
	      html tags in html log files.

--- xmerl ---------------------------------------------------------------

    OTP-5587  Removed call of undefined function in xmerl_lib.