Bug fix release : otp_src_R14B01
Build date      : 2010-12-07

This is R14B01, the first maintenance release for the R14B major release.

You can find the README file for the release at

  http://www.erlang.org/download/otp_src_R14B01.readme (this file)

The source distribution and binary distribution for Windows can be
downloaded from

  http://www.erlang.org/download/otp_src_R14B01.tar.gz
  http://www.erlang.org/download/otp_win32_R14B01.exe

The distribution can also be downloaded using the BitTorrent
protocol. Use the following torrent files to download the source
distribution and binary distribution for Windows:

  http://www.erlang.org/download/otp_src_R14B01.tar.gz.torrent
  http://www.erlang.org/download/otp_win32_R14B01.exe.torrent

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

For installation instructions please read the README file that is part
of the distribution.

The on-line documentation can be found at: http://www.erlang.org/doc/
You can also download the complete HTML documentation or the Unix manual files

  http://www.erlang.org/download/otp_doc_html_R14B01.tar.gz
  http://www.erlang.org/download/otp_doc_man_R14B01.tar.gz

We also want to thank those that sent us patches, suggestions and bug
reports,

The OTP Team


--- HIGHLIGHTS ----------------------------------------------------------

    OTP-8922  == erts stdlib ==

	      New ETS option compressed, to enable a more compact storage
	      format at the expence of heavier table operations. For test
	      and evaluation, erl +ec can be used to force compression on
	      all ETS tables.

    OTP-8926  == erts kernel ==

	      There is now a new function inet:getifaddrs/0 modeled after C
	      library function getifaddrs() on BSD and LInux that reports
	      existing interfaces and their addresses on the host. This
	      replaces the undocumented and unsupported inet:getiflist/0
	      and inet:ifget/2.


--- otp -----------------------------------------------------------------

    OTP-8942  Fixed pretty rare infinite loop when refining the types of an
	      SCC whose functions all returned none() (thanks to Stavros
	      Aronis).

	      Fixed pretty rare crash when taking the infimum of two
	      tuple_sets.

	      Fixed pretty rare crash when using parameterized types
	      containing unbound variables (thanks to Nicolas Trangez for
	      reporting it).

	      Deeper unfolding of recursive types (thanks to Maria
	      Christakis).

	      Fixed some incomplete and erroneous specs in modules of
	      kernel and stdlib.

	      Fixed problems in the handling of remote types in records
	      used as types (thanks to Nico Kruber for the report and to
	      Maria Christakis for the fix).

	      Fixed handling of nested opaque types (thanks to Thorsten
	      Schuett for reporting it and to Maria Christakis for fixing
	      it).


--- ssh -----------------------------------------------------------------

    OTP-8807  The processes ssh_subsystem_sup and one ssh_channel_sup was
	      not terminated when a connection was closed.

    OTP-8908  The fix regarding OTP-8863 was not included in the previous
	      version as stated.


--- asn1-1.6.15 ---------------------------------------------------------

    OTP-8866  The encoding of ExtensionAdditionGroup (for PER and UPER) is
	      corrected.

    OTP-8948  A race condition when several processes in parallel start to
	      do encode/decode using the driver could cause an error log
	      regarding crashing port owner process. This race is now
	      eliminated.


--- common_test-1.5.1.1 -------------------------------------------------

    OTP-8894  Added vts.tool file to common_test so that vts shows up 
              in webtool


--- common_test-1.5.2 ---------------------------------------------------

    OTP-8895  Updated ct:get_status documentation to describe
	      no_tests_running return value.

    OTP-8907  ct:parse_table can now handle multiline sql rows

    OTP-8921  Fixed race condition test failures in the test suites testing
	      common test's parallel groups feature.

    OTP-8935  The include directive of testspecs now work when used on a
	      remote node.

    OTP-8936  The run_test executable has been renamed to the less generic
	      ct_run to better work with other applications. run_test will
	      remain until R16B at which point it will be removed.


--- compiler-4.7.2 ------------------------------------------------------

    OTP-8864  The compiler would translate binary comprehensions containing
	      tail segments in a way that would would confuse Dialyzer. For
	      instance:

	      [42 || <<_:8/integer, _/bits>> <= Bits]

	      would produce a Dialyzer warning.

    OTP-8865  Code such as foo(A) -> <<A:0>> would crash the compiler.

    OTP-8888  The compiler could fail with an internal error when variables
	      were exported from a receive block but the return value of
	      the receive block were not used. (Thanks to Jim Engquist for
	      reporting this error.)

    OTP-8949  Two compiler bugs (that would cause the compiler to
	      terminate) reported by Christopher Williams have been fixed.


--- cosNotification-1.1.15 ----------------------------------------------

    OTP-8846  Switched from using the deprecated regexp to re instead. 

    OTP-8900  A corbaloc http string could return an EXIT message, instead 
              of a system exception, if the HTTP server closed the socket 
              without returning a complete message. I.e. header and a 
              body containing a stringified IOR.


--- crypto-2.0.2 --------------------------------------------------------

    OTP-8752  AES CTR encryption support in crypto.


--- debugger-3.2.5 ------------------------------------------------------

    OTP-8976  Miscellaneous updates


--- dialyzer-2.4.0 ------------------------------------------------------

    OTP-8962  - Added ability to supply multiple PLTs for the analysis
	      (option --plts). Currently these PLTs must be independent
	      (i.e., no module appears in more than one PLT) and there must
	      not include files with module name clashes.

	      - Strengthened and streamlined hard-coded type information
	      for some BIFs and key library functions.

    OTP-8979  - Fixed pretty rare infinite loop when refining the types of
	      an SCC whose functions all returned none() (thanks to Stavros
	      Aronis).

	      - Fixed pretty rare crash when taking the infimum of two
	      tuple_sets.


--- docbuilder-0.9.8.9 --------------------------------------------------

    OTP-8946  Fix compatibility issues with docbuilder for R11
	      documentation patches.


--- edoc-0.7.6.8 --------------------------------------------------------

    OTP-8855  Compiler warnings were eliminated.


--- erl_docgen-0.2.3 ----------------------------------------------------

    OTP-8600  Fix format_man_pages so it handles all man sections and
	      remove warnings/errors in various man pages.

    OTP-8720  Support for using Dialyzer specifications and types has been
	      added. This is an experimental release; changes are expected
	      before the new functionality is used when building the OTP
	      documentation.


--- erl_interface-3.7.1.1 -----------------------------------------------

    OTP-8874  The erl_interface tracelevel for erlang messages was incorrect. 
              This has now been fixed.


--- erl_interface-3.7.2 -------------------------------------------------

    OTP-8890  erl_call: remove get_hostent

	      get_hostent does not properly handle IPv4 addresses on little
	      endian platforms and fails with hostnames beginning with a
	      number. Remove get_hostent and use ei_gethostbyname directly
	      since gethostbyname supports IPv4 addresses.

	      (Thanks to Michael Santos)

    OTP-8891  teach ei_x_format to handle unary - and + (Thanks to Steve
	      Vinoski)

    OTP-8893  Fix zero byte allocation in registry. (Thanks to Michael
	      Santos)

    OTP-8943  Check the length of the node name to prevent an overflow.
	      Memory error control of ei_alloc_big. (Thanks to Michael
	      Santos)

    OTP-8945  erl_term_len() in erl_interface could returned too large
	      values for integers (since R14B) and too small values for
	      refs (since R9B).


--- erts-5.8.1.2 --------------------------------------------------------

    OTP-8875  Fix that the documentation top index generator can handle 
              an Ericsson internal application group. 

    OTP-8902  In embedded mode, on_load handlers that called code:priv_dir/1 
              or other functions in code would hang the system. Since 
              the crypto application now contains an on_loader handler 
              that calls code:priv_dir/1, including the crypto application 
              in the boot file would prevent the system from starting. 
              Also extended the -init_debug option to print information 
              about on_load handlers being run to facilitate debugging.


--- erts-5.8.2 ----------------------------------------------------------

    OTP-8600  Fix format_man_pages so it handles all man sections and
	      remove warnings/errors in various man pages.

    OTP-8847  The configure command line argument
	      --enable-ethread-pre-pentium4-compatibility had no effect.
	      This option is now also automatically enabled if required on
	      the build machine.

    OTP-8859  The help texts produced by the configure scripts in the top
	      directory and in the erts directory have been aligned and
	      cleaned up.

    OTP-8861  When the runtime system had fewer schedulers than logical
	      processors, the system could get an unnecessarily large
	      amount reader groups.

    OTP-8876  Windows 2003 and Windows XP pre SP3 would sometimes not start
	      the Erlang R14B VM at all due to a bug in the cpu topology
	      detection. The bug affects Windows only, no other platform is
	      even remotely affected. The bug is now corrected.

    OTP-8877  The HiPE run-time in the 64-bit emulator could do a 64-bit
	      write to a 32-bit struct field. It happened to be harmless on
	      Intel/AMD processors. Corrected. (Thanks to Mikael
	      Pettersson.)

    OTP-8878  run_rel has been updated to support Solaris's /dev/ptmx
	      device and to load the necessary STREAMS modules so that
	      to_erl can provide terminal echo of keyboard input. (Thanks
	      to Ryan Tilder.)

    OTP-8887  The Erlang VM now supports Unicode filenames. The feature is
	      turned on by default on systems where Unicode filenames are
	      mandatory (Windows and MacOSX), but can be enabled on other
	      systems with the '+fnu' emulator option. Enabling the Unicode
	      filename feature on systems where it is not default is
	      however considered experimental and not to be used for
	      production. Together with the Unicode file name support, the
	      concept of "raw filenames" is introduced, which means
	      filenames provided without implicit unicode encoding
	      translation. Raw filenames are provided as binaries, not
	      lists. For further information, see stdlib users guide and
	      the chapter about using Unicode in Erlang. Also see the file
	      module manual page.

    OTP-8889  A bug in erl_drv_tsd_get() and enif_tsd_get() could cause an
	      emulator crash. These functions are currently not used in
	      OTP. That is, the crash only occur on systems with user
	      implemented NIF libraries, or drivers that use one of these
	      functions.

    OTP-8892  Buffer overflows have been prevented in erlc, dialyzer,
	      typer, run_test, heart, escript, and erlexec. (Thanks to
	      Michael Santos.)

    OTP-8901  The runtime system is now less eager to suspend processes
	      sending messages over the distribution. The default value of
	      the distribution buffer busy limit has also been increased
	      from 128 KB to 1 MB. This in order to improve throughput.

    OTP-8912  The distribution buffer busy limit can now be configured at
	      system startup. For more information see the documentation of
	      the erl +zdbbl command line flag. (Thanks to Scott Lystig
	      Fritchie)

    OTP-8914  Calling erlang:system_info({cpu_topology, CpuTopologyType})
	      with another CpuTopologyType element than one of the
	      documented atoms defined, detected, or used caused an
	      emulator crash. (Thanks to Paul Guyot)

    OTP-8916  The inet driver internal buffer stack implementation has been
	      rewritten in order to reduce lock contention.

    OTP-8922  New ETS option compressed, to enable a more compact storage
	      format at the expence of heavier table operations. For test
	      and evaluation, erl +ec can be used to force compression on
	      all ETS tables.

    OTP-8925  The ERTS internal rwlock implementation could get into an
	      inconsistent state. This bug was very seldom triggered, but
	      could be during heavy contention. The bug was introduced in
	      R14B (erts-5.8.1).

	      The bug was most likely to be triggered when using the
	      read_concurrency option on an ETS table that was frequently
	      accessed from multiple processes doing lots of writes and
	      reads. That is, in a situation where you typically don't want
	      to use the read_concurrency option in the first place.

    OTP-8926  There is now a new function inet:getifaddrs/0 modeled after C
	      library function getifaddrs() on BSD and LInux that reports
	      existing interfaces and their addresses on the host. This
	      replaces the undocumented and unsupported inet:getiflist/0
	      and inet:ifget/2.

    OTP-8932  Tracing to port could cause an emulator crash when unloading
	      the trace driver.

    OTP-8937  Removed use of CancelIoEx on Windows that had been shown to
	      cause problems with some drivers.

    OTP-8939  Support for detection of CPU topology and binding of
	      schedulers on FreeBSD 8 have been added. (Thanks to Paul
	      Guyot)

    OTP-8944  The fallback implementation used when no native atomic
	      implementation was found did not compile. (Thanks to Patrick
	      Baggett, and Tuncer Ayaz)

    OTP-8950  Some integer values used during load balancing could under
	      rare circumstances wrap causing a load unbalance between
	      schedulers.

    OTP-8952  Several bugs related to hibernate/3 and HiPE have been
	      corrected. (Thanks to Paul Guyot.)

    OTP-8955  Support for soft and hard links on Windows versions and
	      filesystems that support them is added.

    OTP-8956  The win32 virtual machine is now linked large address aware.
	      his allows the Erlang VM to use up to 3 gigs of address space
	      on Windows instead of the default of 2 gigs.

    OTP-8958  The windows VM now correctly handles appending to large files
	      (> 4GB).

    OTP-8969  Name resolving of IPv6 addresses has been implemented for
	      Windows versions that support it. The use of ancient resolver
	      flags (AI_V4MAPPED | AI_ADDRCONFIG) to the getaddrinfo()
	      function has been removed since e.g FreeBSD regard mapped
	      IPv4 addresses to be a security problem and the semantics of
	      the address configured flag is uncertain.


--- et-1.4.2 ------------------------------------------------------------

    OTP-8904  Fix error when module et was used in et_selector trace
	      patterns.


--- eunit-2.1.6 ---------------------------------------------------------

    OTP-8600  Fix format_man_pages so it handles all man sections and
	      remove warnings/errors in various man pages.


--- hipe-3.7.8 ----------------------------------------------------------

    OTP-8855  Compiler warnings were eliminated.


--- inets-5.5.1 ---------------------------------------------------------

    OTP-8600  Fix format_man_pages so it handles all man sections and
	      remove warnings/errors in various man pages.

    OTP-8906  [httpc] Pipelined and queued requests not processed when
	      connection closed remotelly.

    OTP-8927  Miscellaneous inet6 related problems.

    OTP-8940  Updated http-server to make sure URLs in error-messages are
	      URL-encoded. Added support in http-client to use
	      URL-encoding. Also added the missing include directory for
	      the inets application.


--- jinterface-1.5.3.2 --------------------------------------------------

    OTP-8854  The OtpMbox class did not have a hash() method, which it
	      should have because it overrides equals().


--- kernel-2.14.1.1 -----------------------------------------------------

    OTP-8875  Fix that the documentation top index generator can handle 
              an Ericsson internal application group. 

    OTP-8902  In embedded mode, on_load handlers that called code:priv_dir/1 
              or other functions in code would hang the system. Since 
              the crypto application now contains an on_loader handler 
              that calls code:priv_dir/1, including the crypto application 
              in the boot file would prevent the system from starting. 
              Also extended the -init_debug option to print information 
              about on_load handlers being run to facilitate debugging.


--- kernel-2.14.2 -------------------------------------------------------

    OTP-8887  The Erlang VM now supports Unicode filenames. The feature is
	      turned on by default on systems where Unicode filenames are
	      mandatory (Windows and MacOSX), but can be enabled on other
	      systems with the '+fnu' emulator option. Enabling the Unicode
	      filename feature on systems where it is not default is
	      however considered experimental and not to be used for
	      production. Together with the Unicode file name support, the
	      concept of "raw filenames" is introduced, which means
	      filenames provided without implicit unicode encoding
	      translation. Raw filenames are provided as binaries, not
	      lists. For further information, see stdlib users guide and
	      the chapter about using Unicode in Erlang. Also see the file
	      module manual page.

    OTP-8926  There is now a new function inet:getifaddrs/0 modeled after C
	      library function getifaddrs() on BSD and LInux that reports
	      existing interfaces and their addresses on the host. This
	      replaces the undocumented and unsupported inet:getiflist/0
	      and inet:ifget/2.


--- mnesia-4.4.16 -------------------------------------------------------

    OTP-8855  Compiler warnings were eliminated.

    OTP-8960  Sometimes a 'log_header' record was added to tables when
	      invoking mnesia:restore/2 with the option 'recreate_tables'.
	      Thanks Vance Shipley.


--- observer-0.9.8.4 ----------------------------------------------------

    OTP-8857  The multitrace.erl installation example file is now installed
	      in the examples directory. (Thanks to Peter Lemenkov.)


--- odbc-2.10.9 ---------------------------------------------------------

    OTP-8917  Ipv6 is now supported on Windows as well as on UNIX for
	      internal socket communication. (ODBC uses sockets instead of
	      the "Erlang port pipes" as some ODBC-drivers are known to
	      mess with stdin/stdout.) 

	      Loopback address constants are used when connecting the
	      c-side to the erlang-side over local socket API avoiding
	      getaddrinfo problems, and the {ip, loopback} option is added
	      as a listen option on the erlang-side. Also cleaned up the
	      TIME_STAMP contribution.


--- orber-3.6.18 --------------------------------------------------------

    OTP-8846  Switched from using the deprecated regexp to re instead. 

    OTP-8900  A corbaloc http string could return an EXIT message, instead 
              of a system exception, if the HTTP server closed the socket 
              without returning a complete message. I.e. header and a 
              body containing a stringified IOR.


--- parsetools-2.0.5 ----------------------------------------------------

    OTP-8919  The formating of Yecc's error messages has been improved.
	      (Thanks to Joe Armstrong.)


--- public_key-0.10 -----------------------------------------------------

    OTP-8964  Improved dialyzer specs.


--- ssh-2.0.2 -----------------------------------------------------------

    OTP-8849  SSH no longer use deprecated public_key functions. 

    OTP-8863  The ssh_system_sup did not catch noproc and shutdown messages. 

    OTP-8881  In some cases a crash report was generated when a connection 
              was closing down. This was caused by a race condition between 
              two processes.


--- ssh-2.0.3 -----------------------------------------------------------

    OTP-8918  The fix regarding OTP-8849 was not included in the previous 
              version as stated.


--- ssl-4.1.1 -----------------------------------------------------------

    OTP-8870  For testing purposes ssl now also support some anonymous
	      cipher suites when explicitly configured to do so.

    OTP-8897  Correct handling of client certificate verify message When
	      checking the client certificate verify message the server
	      used the wrong algorithm identifier to determine the signing
	      algorithm, causing a function clause error in the public_key
	      application when the key-exchange algorithm and the public
	      key algorithm of the client certificate happen to differ.

    OTP-8930  Sends an error alert instead of crashing if a crypto function
	      for the selected cipher suite fails.


--- stdlib-1.17.2 -------------------------------------------------------

    OTP-8856  When several clients accessed a Dets table simultaneously,
	      one of them calling dets:insert_new/2, the Dets server could
	      crash. Alternatively, under the same conditions, ok was
	      sometimes returned instead of true. (Thanks to John Hughes.)

    OTP-8879  The documentation filelib:wildcard/1,2 now describes the
	      character set syntax for wildcards.

    OTP-8892  Buffer overflows have been prevented in erlc, dialyzer,
	      typer, run_test, heart, escript, and erlexec. (Thanks to
	      Michael Santos.)

    OTP-8898  When several clients accessed a Dets table simultaneously,
	      inserted or updated objects were sometimes lost due to the
	      Dets file being truncated. (Thanks to John Hughes.)

    OTP-8899  When several clients accessed a Dets table simultaneously,
	      modifications of the Dets server's internal state were
	      sometimes thrown away. The symptoms are diverse: error with
	      reason bad_object; inserted objects not returned by lookup();
	      et cetera. (Thanks to John Hughes.)

    OTP-8903  If a Dets table was closed after calling bchunk/2, match/1,3,
	      match_object/1,3, or select/1,3 and then opened again, a
	      subsequent call using the returned continuation would
	      normally return a reply. This bug has fixed; now the call
	      fails with reason badarg.

    OTP-8911  Cover did not collect coverage data for files such as Yecc
	      parses containing include directives. The bug has been fixed
	      by modifying epp, the Erlang Code Preprocessor.

    OTP-8915  Using a float for the number of copies for string:copies/2
	      resulted in an infinite loop. Now it will fail with an
	      exception instead. (Thanks to Michael Santos.)

    OTP-8922  New ETS option compressed, to enable a more compact storage
	      format at the expence of heavier table operations. For test
	      and evaluation, erl +ec can be used to force compression on
	      all ETS tables.

    OTP-8923  If a Dets table with fewer slots than keys was opened and
	      then closed after just a lookup, the contents were no longer
	      well-formed. This bug has been fixed. (Thanks to Matthew
	      Evans.)

    OTP-8938  In a supervisor, when it terminates a child, if that child
	      happens to have exited fractionally early, with normal, the
	      supervisor reports this as an error. This should not be
	      reported as an error.

    OTP-8959  The default maximum number of slots of a Dets table has been
	      changed as to be equal to the maximum number of slots.
	      (Thanks to Richard Carlsson.)


--- syntax_tools-1.6.7 --------------------------------------------------

    OTP-8976  Miscellaneous updates


--- test_server-3.4.2 ---------------------------------------------------

    OTP-8976  Miscellaneous updates


--- tools-2.6.6.2 -------------------------------------------------------

    OTP-8853  eprof: API sort mismatch has now been fixed.

    OTP-8963  eprof: fix division by zero in statistics


--- wx-0.98.8 -----------------------------------------------------------

    OTP-8951  Add wxSystemSettings which was missing in the previous
	      release, despite previous comments.

	      Fix an external loop when stopping erlang nicely.

	      Separate OpenGL to it's own dynamic loaded library, so other
	      graphic libraries can reuse the gl module and it will not
	      waste memory if not used.


--- xmerl-1.2.7 ---------------------------------------------------------

    OTP-8599  An empty element declared as simpleContent was not properly
	      validated.

    OTP-8600  Fix format_man_pages so it handles all man sections and
	      remove warnings/errors in various man pages.

    OTP-8947  Fix entity checking so there are no fatal errors for
	      undefined entities when option skip_external_dtd is used.