Bug fix release : otp_src_R15B01
Build date      : 2012-04-02

This is R15B01, the first maintenance release for the R15B major release.

You can find the README file for the release at

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

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

  http://www.erlang.org/download/otp_src_R15B01.tar.gz
  http://www.erlang.org/download/otp_win32_R15B01.exe
  http://www.erlang.org/download/otp_win64_R15B01.exe

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_R15B01.tar.gz
  http://www.erlang.org/download/otp_doc_man_R15B01.tar.gz

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

The OTP Team


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

    OTP-9858  == erts ==

	      Add erlang:statistics(scheduler_wall_time) to ensure correct
	      determination of scheduler utilization. Measuring scheduler
	      utilization is strongly preferred over CPU utilization, since
	      CPU utilization gives very poor indications of actual
	      scheduler/vm usage.

    OTP-9911  == ssh public_key ==

	      Changed ssh implementation to use the public_key application
	      for all public key handling. This is also a first step for
	      enabling a callback API for supplying public keys and
	      handling keys protected with password phrases. 

	      Additionally the test suites where improved so that they do
	      not copy the users keys to test server directories as this is
	      a security liability. Also ipv6 and file access issues found
	      in the process has been fixed.

	      This change also solves OTP-7677 and OTP-7235

	      This changes also involves some updates to public_keys
	      ssh-functions.

    OTP-9985  == erts stdlib ==

	      When an escript ends now all printout to standard output and
	      standard error gets out on the terminal. This bug has been
	      corrected by changing the behaviour of erlang:halt/0,1, which
	      should fix the same problem for other escript-like
	      applications, i.e that data stored in the output port driver
	      buffers got lost when printing on a TTY and exiting through
	      erlang:halt/0,1.

	      The BIF:s erlang:halt/0,1 has gotten improved semantics and
	      there is a new BIF erlang:halt/2 to accomplish something like
	      the old semantics. See the documentation.

	      Now erlang:halt/0 and erlang:halt/1 with an integer argument
	      will close all ports and allow all pending async threads
	      operations to finish before exiting the emulator. Previously
	      erlang:halt/0 and erlang:halt(0) would just wait for pending
	      async threads operations but not close ports. And
	      erlang:halt/1 with a non-zero integer argument would not even
	      wait for pending async threads operations.

	      To roughly the old behaviour, to not wait for ports and async
	      threads operations when you exit the emulator, you use
	      erlang:halt/2 with an integer first argument and an option
	      list containing {flush,false} as the second argument. Note
	      that now is flushing not dependant of the exit code, and you
	      can not only flush async threads operations which we deemed
	      as a strange behaviour anyway.

	      Also, erlang:halt/1,2 has gotten a new feature: If the first
	      argument is the atom 'abort' the emulator is aborted
	      producing a core dump, if the operating system so allows.

   OTP-10017  == erts runtime_tools ==

	      The DTrace source patch from Scott Lystig Fritchie is
	      integrated in the source tree. Using an emulator with dtrace
	      probe is still not supported for production use, but may be a
	      valuable debugging tool. Configure with
	      --with-dynamic-trace=dtrace (or
	      --with-dynamic-trace=systemtap) to create a build with dtrace
	      probes enabled. See runtime_tools for documentation and
	      examples.

   OTP-10034  == eldap ==

	      Added Torbj�rn T�rnkvists eldap client.

   OTP-10036  == ssh ==

	      Added options for the ssh client to support user keys files
	      that are password protected.


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

    OTP-9082  When building with --enable-native-libs, the hipe application
	      itself did not get hipe compiled. This is now corrected.

    OTP-9846  The readme for windows did not correctly describe how to
	      build OpenSSL. The documentation is now corrected.

    OTP-9914  Update xcomp config for AVR32/buildroot-v3.0.0

	      With Atmel's recent buildroot-v3.0.0 release for AVR32, some
	      changes were needed in order to properly cross compile
	      Erlang/OTP for the platform. Tested with R14B04 on a mk I
	      NGW100. (thanks to Smith Winston)

    OTP-9937  Add documentation about on_load attribute in module
	      attributes section. (Thanks to Jos� Valim)


--- appmon-2.1.14.1 -----------------------------------------------------

    OTP-9907  The GS applications is now deprecated and will be removed in
	      the R16 release. The following GS-based applications have
	      been superseded by the Observer application and will removed
	      in R16: Appmon, Pman, Tv.


--- asn1-1.7 ------------------------------------------------------------

    OTP-9688  Some ASN.1 INTEGER type and SEQUENCE constructor variants
	      previously not handled by the ASN.1 compiler are now
	      correctly handled

    OTP-9946  An INTEGER with a value constraint where unions are used e.g.
	      X1 ::= INTEGER (1..4 | 6 | 8 | 10 | 20) is not handled
	      correctly. For PER the value is encoded in wrong number of
	      bits.


--- common_test-1.6.1 ---------------------------------------------------

    OTP-9595  Common Test adds the test suite directories to the code path
	      before executing the tests. These directories should also be
	      removed from the code path at the end of the test run, which,
	      prior to this fix, was not performed.

    OTP-9634  An entry is now created in the index.html file (i.e. the
	      overview file for the test run) for each repeated test during
	      a test run. This was previously not the case. Note that in
	      the top level (logdir) index file, however, only the last
	      test result is listed. For example, given the test spec:
	      [{merge_tests,false},{dirs,"test1"},{dirs,"test1"}]. In the
	      index file for the test run (under
	      Logdir/ct_run.Node.Date.Time), both tests are listed. In the
	      top level index file (under Logdir), only the last test is
	      listed (one has to find the previous results through the
	      all_runs.html file).

    OTP-9659  A new optional feature has been introduced that enables
	      Common Test to generate priv_dir directory names that are
	      unique for each test case or config function. The name of the
	      option/flag is 'create_priv_dir' and it can be set to value
	      'auto_per_run' (which is the default, existing, behaviour),
	      or 'auto_per_tc' or 'manual_per_tc'. If 'auto_per_tc' is
	      used, Test Server creates a dedicated priv_dir automatically
	      for each test case (which can be very expensive in case of
	      many and/or repeated cases). If 'manual_per_tc' is used, the
	      user needs to create the priv_dir explicitly by calling the
	      new function ct:make_priv_dir/0.

    OTP-9666  After a test case timeout or abortion, the end_per_testcase
	      function executes on a new dedicated process. The group
	      leader for this process should be set to the IO server for
	      the test case, which was not done properly. The result of
	      this error was that no warnings about end_per_testcase
	      failing or timing out were ever printed in the test case log.
	      Also, help functions such as e.g. test_server:stop_node/1,
	      attempting to synchronize with the IO server, would hang. The
	      fault has been corrected.

    OTP-9730  A column for test case group name has been added to the suite
	      overview HTML log file.

    OTP-9830  The ct:get_status/0 function would cause the calling process
	      to receive 'DOWN' messages if no tests were running at the
	      time of the call. This bug has been fixed.

    OTP-9855  It is now possible to use the post_end_per_testcase CT hook
	      function to print a comment for a test case in the overview
	      log file, even if the test case gets killed by a timetrap or
	      unknown exit signal, or if the end_per_testcase function
	      times out.

    OTP-9880  The pre- and post CT hook functions are now always called for
	      all configuration functions, even for configuration functions
	      that are not implemented in the test suite.

    OTP-9894  A deadlock situation could occur if Common Test is forwarding
	      error_handler printouts to Test Server at the same time a new
	      test case is starting. This error has been fixed.

    OTP-9898  A link to the ct_run program is now created, as expected, in
	      the installation bin directory (default /usr/local/bin)
	      during 'make install'.

    OTP-9899  Using the repeat, duration or until option with
	      ct:run_test/1, would cause an infinite loop. This has been
	      fixed.

    OTP-9900  Two or more test cases executing in parallel and printing to
	      screen at the same time with ct:pal/2/3 or ct:print/2/3 could
	      write into each other's "slots" and create a mess of mixed
	      strings. In order to avoid this, only a single IO message is
	      now ever sent per printout call.

    OTP-9904  Common Test will now print error information (with a time
	      stamp) in the test case log file immediately when a test case
	      fails. This makes it easier to see when, in time, the fault
	      actually occured, and aid the job of locating relevant trace
	      and debug printouts in the log.

    OTP-9930  When a test case was killed because of a timetrap timeout,
	      the current location (suite, case and line) was not printed
	      correctly in the log files. This has been corrected.

    OTP-9933  The wrong exit location was printed in the log file when
	      ct:fail/1 or ct_fail/2 was called.

    OTP-9941  Test Server and Common Test would add new error handlers with
	      each test run and fail to remove previously added ones. In
	      the case of Test Server, this would only happen if SASL was
	      not running on the test node. This has been fixed.

    OTP-9955  Test Server has been modified to check the SASL errlog_type
	      parameter when receiving an error logger event, so that it
	      doesn't print reports of type that the user has disabled.

    OTP-9958  If a test case process was terminated due to an exit signal
	      from a linked process, Test Server failed to report the
	      correct name of the suite and case to the framework. This has
	      been corrected.

    OTP-9964  When starting a test with ct_run and adding a directory to
	      the code path using -pa or -pz (preceding -erl_args), Common
	      Test would delete any existing directory in the code path
	      with the same base name (see filename:basename/1) as the
	      directory being added. This has been fixed.

    OTP-9972  The test specification term 'skip_groups' was implemented in
	      Common Test v1.6. It was never documented however, which has
	      now been attended to. Please see the Test Specifications
	      chapter in the User's Guide for information.

    OTP-9973  The Common Test Master has been updated to use a CSS style
	      sheet for the html log files.

    OTP-9975  If passing two or more directories with the same base name
	      (see filename:basename/1) to Common Test with ct_run -pa,
	      only one of the directories would actually be added.

    OTP-9986  If the init_per_group/2 and end_per_group/2 functions are not
	      implemented in the test suite, Common Test calls it's own
	      local init- and end functions - previously named
	      ct_init_per_group/2 and ct_end_per_group/2 - when a group is
	      executed. These functions have been renamed init_per_group/2
	      and end_per_group/2 respectively. Note that this may affect
	      any user event handler identifying events by the old names.

    OTP-9988  By specifying a user defined function ({M,F,A} or fun) as
	      timetrap value, either by means of an info function or by
	      calling ct:timetrap/1, it is now possible to set a timetrap
	      that will be triggered when the user function returns.

    OTP-9989  Configuration data required by the group info function was
	      deleted before the call to post_end_per_group, which made it
	      impossible for the hook function to read and use the data in
	      question. This has been fixed.

    OTP-9992  If the optional configuration functions init_per_suite/1 and
	      end_per_suite/1 are not implemented in the test suite, local
	      Common Test versions of these functions are called instead,
	      and will be displayed in the overview log file. Any printouts
	      made by the pre- or post_init_per_suite and pre- or
	      post_end_per_suite hook functions are saved in the log files
	      for these functions.

    OTP-9995  A hook has been added to common test which outputs surefire
	      XML for usage together with CI tools such as Jenkins. To
	      enable the hook pass '-ct_hooks cth_surefire' to ct_run. See
	      the CTH documentation for more details.

   OTP-10009  Disabling built-in hooks in a test specification was ignored,
	      this has now been fixed.

   OTP-10037  Various typographical errors corrected in documentation for
	      common_test, driver, erl_driver and windows installation
	      instructions. (Thanks to Tuncer Ayaz)


--- compiler-4.8.1 ------------------------------------------------------

    OTP-9842  In rare circumstance, the compiler could crash when compiling
	      a case statement. (Thanks to Hakan Mattsson.)

    OTP-9866  Calling a guard test (such as is_list/1) from the top-level
	      in a guard, would cause a compiler crash if there was a local
	      definition with the same name. Corrected to reject the
	      program with an error message.

    OTP-9867  Using get/1 in a try block could in some cases cause an
	      internal compiler error. (Thanks to Eric Merritt.)

    OTP-9910  An unexported on_load function would not get run if the
	      module was compiled with the inline option. (Thanks to
	      Yiannis Tsiouris.)

    OTP-9917  Fixed a discrepancy in compile_info

	      The BEAM disassembler used the atom 'none' to signify the
	      absence of a compile_info chunk in a .beam file. This clashed
	      with the type declaration of the compile_info field of a
	      #beam_file{} record as containing a list. Now [] signifies
	      the absence of this chunk. This simplifies the code and
	      avoids a dialyzer warning.

    OTP-9919  Fix typo in `compile' doc: unmatched parenthesis (Thanks to
	      Ricardo Catalinas Jim�nez)

    OTP-9982  In a try...catch statement that always returned false, the
	      compiler would remove calls to BIFs that could not cause an
	      exception (such as put/2). Example of such code: try put(K,
	      V), false catch _:_ -> false end.


--- debugger-3.2.8 ------------------------------------------------------

    OTP-9950  Fixed disappearing breakpoints bug, reported by Ricardo
	      Catalinas Jim�nez.


--- dialyzer-2.5.1 ------------------------------------------------------

    OTP-9833  Handle nowarn_unused_function the same way as the compiler
	      does.


--- diameter-1.1 --------------------------------------------------------

    OTP-9824  Fix fault in sending of 'closed' events.

	      The fault made it possible for the 'closed' event not to be
	      sent following a failed capabilities exchange.

    OTP-9826  Fix faulty diameterc -name/-prefix.

	      A minor blunder when introducing the new dictionary parser in
	      diameter-1.0 broke these options.


--- eldap-1.0 -----------------------------------------------------------

   OTP-10034  Added Torbj�rn T�rnkvists eldap client.


--- erl_docgen-0.3.1 ----------------------------------------------------

    OTP-9832  Some links in C libraries were not generated correctly. This
	      bug has been fixed.

    OTP-9877  Optimize and improve handling of multiple func:s.

    OTP-9893  The generation of the libraries' HTML documentation has been
	      optimized.

    OTP-9918  Set `font-family: Courier, monospace' in OTP doc CSS

	      left Courier as the primary original font and also added
	      monospace as secondary for people which in Linux does not
	      have it installed.

	      Also adds minor cosmetic changes to the CSS. (Thanks to
	      Ricardo Catalinas Jim�nez)

    OTP-9970  When generating from edoc it is now possible to use ranges in
	      specs and <img> tags in the description.


--- erl_interface-3.7.7 -------------------------------------------------

   OTP-10016  Minor suppressions and fixes of compilation warnings


--- erts-5.9.1 ----------------------------------------------------------

    OTP-9820  Driver output has been corrected so output of large binaries
	      (> 4 GiB) now does not silently fail or crash the emulator,
	      but either outputs the binary or fails the call. This means
	      that writing a binary > 4 Gib to file now works but on e.g
	      64-bit Windows (that has scatter/gather I/O buffer segment
	      lengths of 32 bits) fails. The behaviour may change in the
	      future to always write the binary, in parts if necessary.

    OTP-9849  erlang:system_profile errorneous profiled the profiler
	      process when observing runnable processes. This has been
	      corrected.

    OTP-9857  Makefiles in erts, hipe and tools have been corrected to
	      enable parallel make, i.e MAKEFLAGS=-jX where X is the
	      parallelity number. As a result of this dependencies were
	      corrected since that is what is needed for parallel make to
	      work.

    OTP-9858  Add erlang:statistics(scheduler_wall_time) to ensure correct
	      determination of scheduler utilization. Measuring scheduler
	      utilization is strongly preferred over CPU utilization, since
	      CPU utilization gives very poor indications of actual
	      scheduler/vm usage.

    OTP-9886  Calling trace_info/2 asking for information about a function
	      that had native could could crash the run-time system.

    OTP-9912  reduce smp locking time range in erts_garbage_collect (thanks
	      to Jovi Zhang)

    OTP-9922  ERTS internal API improvements. In some cases the amount of
	      atomic read operations needed have been reduced due to this.

    OTP-9924  Fix typo in supervisor behaviour doc (Thanks to Ricardo
	      Catalinas Jim�nez)

    OTP-9925  Correct spelling of registered (Thanks to Richard Carlsson)

    OTP-9926  erts: Remove unused variable (Thanks to Jovi Zhang)

    OTP-9932  Fix bug in ETS with compressed option and insertion of term
	      containing large integers (>2G) on 64-bit machines. Seen to
	      cause emulator crash. (Thanks to Diego Llarrull for excellent
	      bug report)

    OTP-9978  Handle Linux OS where /sys/devices/system/node is only
	      readable by root. Fallback to /sys/devices/system/cpu for
	      topology info.

    OTP-9985  When an escript ends now all printout to standard output and
	      standard error gets out on the terminal. This bug has been
	      corrected by changing the behaviour of erlang:halt/0,1, which
	      should fix the same problem for other escript-like
	      applications, i.e that data stored in the output port driver
	      buffers got lost when printing on a TTY and exiting through
	      erlang:halt/0,1.

	      The BIF:s erlang:halt/0,1 has gotten improved semantics and
	      there is a new BIF erlang:halt/2 to accomplish something like
	      the old semantics. See the documentation.

	      Now erlang:halt/0 and erlang:halt/1 with an integer argument
	      will close all ports and allow all pending async threads
	      operations to finish before exiting the emulator. Previously
	      erlang:halt/0 and erlang:halt(0) would just wait for pending
	      async threads operations but not close ports. And
	      erlang:halt/1 with a non-zero integer argument would not even
	      wait for pending async threads operations.

	      To roughly the old behaviour, to not wait for ports and async
	      threads operations when you exit the emulator, you use
	      erlang:halt/2 with an integer first argument and an option
	      list containing {flush,false} as the second argument. Note
	      that now is flushing not dependant of the exit code, and you
	      can not only flush async threads operations which we deemed
	      as a strange behaviour anyway.

	      Also, erlang:halt/1,2 has gotten a new feature: If the first
	      argument is the atom 'abort' the emulator is aborted
	      producing a core dump, if the operating system so allows.

    OTP-9996  Added check to inet driver to avoid building on operating
	      systems that do not yet have IPv6 compatible socket API.
	      (Thanks to Peer Stritzinger)

   OTP-10004  Fix bug when the number of CPUs actually found is lower than
	      the configured value. (Thanks to Benjamin Herrenschmidt)

   OTP-10017  The DTrace source patch from Scott Lystig Fritchie is
	      integrated in the source tree. Using an emulator with dtrace
	      probe is still not supported for production use, but may be a
	      valuable debugging tool. Configure with
	      --with-dynamic-trace=dtrace (or
	      --with-dynamic-trace=systemtap) to create a build with dtrace
	      probes enabled. See runtime_tools for documentation and
	      examples.

   OTP-10019  The runtime system without SMP support and without thread
	      support erroneously busy waited when no work was present.
	      This bug first appeared in erts-5.9.

   OTP-10037  Various typographical errors corrected in documentation for
	      common_test, driver, erl_driver and windows installation
	      instructions. (Thanks to Tuncer Ayaz)

   OTP-10041  Fix memory leak caused by race on exiting process


--- et-1.4.4.1 ----------------------------------------------------------

    OTP-9907  The GS applications is now deprecated and will be removed in
	      the R16 release. The following GS-based applications have
	      been superseded by the Observer application and will removed
	      in R16: Appmon, Pman, Tv.


--- gs-1.5.15.1 ---------------------------------------------------------

    OTP-9907  The GS applications is now deprecated and will be removed in
	      the R16 release. The following GS-based applications have
	      been superseded by the Observer application and will removed
	      in R16: Appmon, Pman, Tv.


--- hipe-3.9.1 ----------------------------------------------------------

    OTP-6454  References to is_constant/1 (which was removed in the R12
	      release) has been removed from documentation and code.

    OTP-9857  Makefiles in erts, hipe and tools have been corrected to
	      enable parallel make, i.e MAKEFLAGS=-jX where X is the
	      parallelity number. As a result of this dependencies were
	      corrected since that is what is needed for parallel make to
	      work.

    OTP-9917  Fixed a discrepancy in compile_info

	      The BEAM disassembler used the atom 'none' to signify the
	      absence of a compile_info chunk in a .beam file. This clashed
	      with the type declaration of the compile_info field of a
	      #beam_file{} record as containing a list. Now [] signifies
	      the absence of this chunk. This simplifies the code and
	      avoids a dialyzer warning.

    OTP-9923  Make dialyzer recognize the process_flag option sensitive add
	      missing specs to documentation (Thanks to Tobias Schlager)

    OTP-9939  Remove hipe_ceach from hipe.app.src to fix reltool-generated
	      release startup. (Thanks to Tim Stewart)


--- ic-4.2.30 -----------------------------------------------------------

    OTP-9998  Add generation of Erlang callback functions to generated
	      Erlang source code to avoid compiler warnings.


--- inets-5.8.1 ---------------------------------------------------------

    OTP-9827  [ftp] Fails to open IPv6 connection due to badly formatted 
              IPv6 address in EPRT command. The address part of the command 
              incorrectly contained decimal elements instead of hexadecimal. 

    OTP-9847  [httpc] Bad Keep Alive Mode. When selecting a session, the 
              "state" of the session (specifically if the server has responded) 
              was not taken into account. 

    OTP-9860  [httpc] The client incorrectly streams 404 responses. 
              The documentation specifies that only 200 and 206 responses 
              shall be streamed.


--- inets-5.9 -----------------------------------------------------------

    OTP-9805  [httpd] Make the server header configurable with new config
	      option server_tokens. The value of the server header, which
	      was previously hard-coded (at compile time), is now possible
	      to manipulate through the means of the server_tokens config
	      option.

    OTP-9960  Improve inets support for inets as an included application.
	      inets_app calls supervisor:start_link/3 directly rather than
	      calling the root supervisor function inets_sup:start_link/0.
	      This precludes using included_applications to start inets
	      without having a wrapper function.

    OTP-9979  [httpc] Add function to retreive current options,
	      httpc:get_options/1,2.

    OTP-9983  The module http_uri now officially supported. Also, the
	      http_uri:parse/1,2 function has been extended with more
	      scheme support and a way to provide your own scheme info.


--- jinterface-1.5.6 ----------------------------------------------------

    OTP-9925  Correct spelling of registered (Thanks to Richard Carlsson)

    OTP-9927  Java 1.5 has a bug where detecting codepoint offsets in
	      strings that are created by String.substring() gives wrong
	      results. The new implementation uses a different method,
	      avoinding the issue. (Thanks to Vlad Dumitrescu)

    OTP-9928  Improve error message when creating a too long OtpErlangAtom.
	      Also print the value that we tried to use for the atom.
	      (Thanks to Vlad Dumitrescu)


--- kernel-2.15.1 -------------------------------------------------------

    OTP-9820  Driver output has been corrected so output of large binaries
	      (> 4 GiB) now does not silently fail or crash the emulator,
	      but either outputs the binary or fails the call. This means
	      that writing a binary > 4 Gib to file now works but on e.g
	      64-bit Windows (that has scatter/gather I/O buffer segment
	      lengths of 32 bits) fails. The behaviour may change in the
	      future to always write the binary, in parts if necessary.

    OTP-9872  erts: minor fix for unnecessary condition erts: change
	      SENDFILE_CHUNK_SIZE from signed to unsigned (Thanks to jovi
	      zhang)

    OTP-9874  Two contracts in gen_sctp have been corrected.

    OTP-9875  If a process calls a module with an running on_load handler,
	      the process is supposed to be suspended. But if the module
	      with the on_load handler was loading used code:load_binary/3,
	      the call would instead fail with an undef exception.

    OTP-9954  File name and error reason is now returned if creation of a
	      cookie fails. (Thanks to Magnus Henoch)

    OTP-9981  Fix port leak in zlib when passing invalid data to
	      compress,uncompress,zip,unzip,gzip,gunzip.

    OTP-9987  Various typographical errors corrected in documentation for
	      the global, error_logger, etop, lists, ets and supervisor
	      modules and in the c_portdriver and kernel_app documentation.
	      (Thanks to Ricardo Catalinas Jim�nez)

    OTP-9990  Fix returned error from gen_tcp:accept/1,2 when running out
	      of ports

	      The {error, enfile} return value is badly misleading and
	      confusing for this case, since the Posix ENFILE errno value
	      has a well-defined meaning that has nothing to do with Erlang
	      ports. The fix changes the return value to {error,
	      system_limit}, which is consistent with e.g. various file(3)
	      functions. inet:format_error/1 has also been updated to
	      support system_limit in the same manner as
	      file:format_error/1. (Thanks to Per Hedeland)

    OTP-9991  erts_debug:size/1 has been corrected to take sharing in the
	      environment of funs into account. For funs it used to always
	      give the same result as erts_debug:flat_size/1.

    OTP-9993  In some cases when the process doing file:sendfile crashes
	      while sending the file the efile_drv code would not clean up
	      after itself correctly. This has now been fixed.

    OTP-9994  On BSD based platforms file:sendfile would sometime go into
	      an infinite loop when sending big files. This has now been
	      fixed.

    OTP-9999  While disk_log eagerly collects logged terms for better
	      performance, collecting too much data may choke the system
	      and cause huge binaries to be written.

	      The problem was addressed in OTP-9764, but the situation was
	      not improved in all cases.

	      (Thanks to Richard Carlsson.)

   OTP-10002  The documentation of .app files incorrectly said that the
	      default value for the mod parameter is undefined. This is now
	      corrected to [].


--- megaco-3.16.0.1 -----------------------------------------------------

    OTP-9949  Removed use of deprecated system flag, scheduler_bind_type,
	      in the measurement tool mstone1.


--- mnesia-4.7 ----------------------------------------------------------

    OTP-9890  Improved table lock algorithm.

   OTP-10015  Returns the same value for mnesia_loader:disc_load_table/2 as
	      mnesia_loader:net_load_table/4 if a table copy can not be
	      found. (Thanks to Uwe Dauernheim)


--- observer-1.1 --------------------------------------------------------

    OTP-9878  Fixed various bugs in observer gui.

	      Tv edit entry dialog crashed on cancel and ok

	      Search with bad regexps caused a crash, thanks Peti G�m�ri. 

	      Process refresh on dead process caused a crash, thanks Eric
	      Pailleau .

	      Several indexes on mnesia tables caused a crash, thanks Eric
	      Pailleau.

	      Fixed report interval in table viewer, thanks Matthew Evans.

    OTP-9891  Implement a system monitor.


--- orber-3.6.24 --------------------------------------------------------

    OTP-9887  Fix number of arguments in orber dbg printout

    OTP-9966  The descriptions of ssl_server_options and ssl_client_options
	      are corrected.<br/> Seq. Id: seq12018

   OTP-10016  Minor suppressions and fixes of compilation warnings


--- os_mon-2.2.9 --------------------------------------------------------

    OTP-9913  Fix segmentation fault in memsup

	      when /proc/meminfo does not include information about
	      buffers/cache (for instance inside OpenVZ container) (Thanks
	      to Anton Vorobev)


--- pman-2.7.1.2 --------------------------------------------------------

    OTP-9907  The GS applications is now deprecated and will be removed in
	      the R16 release. The following GS-based applications have
	      been superseded by the Observer application and will removed
	      in R16: Appmon, Pman, Tv.


--- public_key-0.15 -----------------------------------------------------

    OTP-9911  Changed ssh implementation to use the public_key application
	      for all public key handling. This is also a first step for
	      enabling a callback API for supplying public keys and
	      handling keys protected with password phrases. 

	      Additionally the test suites where improved so that they do
	      not copy the users keys to test server directories as this is
	      a security liability. Also ipv6 and file access issues found
	      in the process has been fixed.

	      This change also solves OTP-7677 and OTP-7235

	      This changes also involves some updates to public_keys
	      ssh-functions.


--- reltool-0.6 ---------------------------------------------------------

    OTP-9792  Miscellaneous corrections:

	      Start of reltool GUI would sometimes crash with a badmatch in
	      reltool_sys_win:do_init. This has been corrected.

	      Minor corrections of documentation and type specifications of
	      app() and mod() are done.

	      If a module name is duplicated in an app file reltool would
	      return an error. This is now changed to a warning.

	      Reltool would earlier not necessarily keep the order of
	      applications as listed in the rel specification in the
	      configuration. This has been corrected.

	      Reltool would earlier set the default for included
	      applications to an empty list if it was not set in the rel
	      specification in the configuration. This was correct
	      according to sasl/systools documentation, but not according
	      to sasl/systools implementation. We decided to change the
	      documentation and reltool to use the value of
	      included_applications from the .app file as default instead
	      of the empty list, since this seems more intuitive and since
	      systools always has done the same.

	      The value of included applications in the rel specification
	      in the configuration did not overwrite included_applications
	      in the .app file if it was set to an empty list. This has
	      been corrected.

	      Reltool would earlier add load instructions in the
	      script/boot files for ALL modules in the ebin directory of an
	      application even if mod_cond was set to app (include only
	      modules listed in the .app file). This has been corrected.

	      Reltool would earlier add start instructions in the
	      script/boot file for included applications. This has been
	      corrected - included applications shall only be loaded since
	      the including application is responsible for starting them.

	      Status bar now indicates that reltool is working (Processing
	      libraries...) for all configuration changes, and when
	      generating target system.

	      Title of dependecies column in app and mod window is changed
	      from "Modules used by others" to "Modules using this".

    OTP-9794  Configuration changes via the GUI had a few bugs related to
	      error handling, rollback and undo. A major re-write of the
	      reltool_server has been done in order to align the way
	      reltool_server updates and uses its state and tables for all
	      different kinds of configuration change. 

	      All configuration changes (except undo) now cause a re-read
	      of the file system, meaning that if something has changed in
	      the file system it will be reflected in the result of the
	      configuration change.

	      When loading a new configuration file via the GUI, the old
	      configuration is now completely scratched, and only the new
	      is valid.

    OTP-9967  A warning list is added to the sys window of the reltool GUI.
	      This list will continuously show all warnings produced by the
	      current configuration.

    OTP-9968  Some bug fixes related to the handling of escripts:

	      Reltool could not handle escripts with inlined applications.
	      This has been corrected. Inlined applications will be visible
	      in the GUI, but not possible to include/exclude separately.

	      Loading a config which contains an escript via the GUI menu
	      did not produce the same result as when using the same
	      configuration at reltool start. Paths, version and label
	      could differ. This has been corrected.

	      Loading config with same escript (source) twice caused
	      reltool to add same module twice. This has been corrected.

	      Loading config with same escript (inlined beam) twice caused
	      reltool to fail saying module is included by two different
	      applications. This has been corrected.

	      Loading config which in addition to an existing escript also
	      adds another escript, for which the name sorts before the
	      existing one, would cause reltool to fail saying "Application
	      name clash". This has been corrected.

    OTP-9977  As a way of specifying one specific version of an
	      application, the following configuration parameter is added
	      on application level:

	      {lib_dir,Dir}, Dir = string()

	      This can be useful if the parent directory of the application
	      directory is not suitable to use as a lib dir on system
	      level.

   OTP-10003  Reltool would sometimes generate a .app file containing
	      {start_phases,undefined}, which would cause an exception in
	      systools at parse time. This has been corrected so reltool
	      now omits the start_phases entry if the value is undefined.
	      (Thanks to Juan Jose Comellas)

	      In order to align with reltool, sasl will also omit
	      start_phases entries with value undefined in .script files.


--- runtime_tools-1.8.8 -------------------------------------------------

   OTP-10017  The DTrace source patch from Scott Lystig Fritchie is
	      integrated in the source tree. Using an emulator with dtrace
	      probe is still not supported for production use, but may be a
	      valuable debugging tool. Configure with
	      --with-dynamic-trace=dtrace (or
	      --with-dynamic-trace=systemtap) to create a build with dtrace
	      probes enabled. See runtime_tools for documentation and
	      examples.


--- sasl-2.2.1 ----------------------------------------------------------

    OTP-9539  If sys.config existed, but was not readable or parseable,
	      this would not be detected until after the upgrade and at the
	      next node restart. The possibility for this to happen is now
	      reduced by adding a check to systools:make_tar which fails
	      the creation of the tar file if sys.config or relup does not
	      have reasonable contents. Note that there are no detailed
	      checks, only parsing and erlang term format check.

    OTP-9652  systools:make_script would allow {kernel,Vsn,load} in the
	      .rel file, causing a .boot file which only loaded kernel and
	      did not start it. This has been corrected. Only start type
	      'permanent', which is the default, is now allowed for kernel
	      and stdlib.

    OTP-9864  release_handler:remove_release/1 now handles symlinked files
	      properly

    OTP-9888  If stdlib was stated with a start type different from
	      permanent in a .rel file, systools would incorrectly say that
	      sasl had faulty start type. This has been corrected.

    OTP-9980  Sasl documentation earlier said that the InclApps parameters
	      in a .rel file defaults to the empty list. This is not
	      correct. It defaults to the same value as specified in the
	      .app file. This has been corrected.

    OTP-9984  Applications that are listed in {applications,Apps} in the
	      .app file were not sorted correctly by
	      systools:make_script/1,2. They got the reverse order of how
	      they were listed in the .app file. This is corrected so they
	      are now sorted (internally between each other) in the same
	      order as they are listed in the .rel file (i.e. the order
	      they are listed in the .app file does no longer matter).

   OTP-10001  Documentation of .appup files now also states that UpFromVsn
	      and DownToVsn can be specified as regular expressions in
	      order to avoid duplicated upgrade instructions.

   OTP-10003  Reltool would sometimes generate a .app file containing
	      {start_phases,undefined}, which would cause an exception in
	      systools at parse time. This has been corrected so reltool
	      now omits the start_phases entry if the value is undefined.
	      (Thanks to Juan Jose Comellas)

	      In order to align with reltool, sasl will also omit
	      start_phases entries with value undefined in .script files.


--- snmp-4.21.5 ---------------------------------------------------------

    OTP-9783  [agent] Removed use of old style tuple funs. 

    OTP-9851  [agent] Repeated vacm table dumping fails due to file name 
              conflict. When dumping the vacm table to disk, a temoporary 
              file with a fixed name was used. If the table dumping 
              (snmpa_vacm:dump_table/0) 
              was initiated from several different processes in rapid 
              succesion, the dumping could fail because the different 
              processes was simultaniously trying to write to the same 
              file. This problem has been eliminated by creating a unique 
              name for the temporary file.


--- snmp-4.21.6 ---------------------------------------------------------

    OTP-9700  [agent] DoS using GET-BULK with large value of MaxRepetitions. 
              A preventive method has been implementing by simply limit 
              the number of varbinds that can be included in a Get-BULK 
              response message. This is specified by the new config option, 
              gb_max_vbs. 

    OTP-9868  [agent] Mib server cache gclimit update function incorrectly 
              calls age update function. The gclimit update function 
              update_mibs_cache_gclimit/1 incorrectly called 
              update_mibs_cache_age/2 update function.


--- snmp-4.21.7 ---------------------------------------------------------

    OTP-9884  [agent] Simultaneous snmpa:backup/1 calls can interfere. 
              The master agent did not check if a backup was already in 
              progress when a backup request was accepted.


--- snmp-4.22 -----------------------------------------------------------

    OTP-9876  [manager] As an option, handle every incomming and outgoing
	      message in a temporary (newly spawned) process.

    OTP-9940  [snmp] Added the log_to_io audit-trail-log converter function
	      to the api modules of both the manager and agent.

    OTP-9942  [agent] Documenting previously existing but undocumented
	      function, snmp_generic:get_table_info/2.

    OTP-9943  [agent] Improve error handling while reading agent config
	      files. Some files contain mandatory information and is
	      therefor themself mandatory

    OTP-9969  [compiler] Extend table info for augmented tables. The table
	      information the MIB compiler provides with augmented tables
	      has been extended with nbr_of_cols, first_accessible and
	      not_accessible.


--- ssh-2.1 -------------------------------------------------------------

    OTP-7235  All keys in authorized_keys are considerd, wrongly only the
	      first one was before.

    OTP-7677  ssh daemon now properly handles ras host keys, in previous
	      versions only dsa host keys sufficed to set up a connection.

    OTP-8109  Document supported algorithms

    OTP-8111  ssh:shell/3 and ssh:connect/3 does not hang anymore if
	      connection negotiation fails

    OTP-8380  Improve check so that we will not try to read ssh packet
	      length indicator if not sure we have enough data.

    OTP-9391  Graceful handling of premature close from an sftp client.

    OTP-9466  Do not try to use user interaction when it is disabled.

    OTP-9905  Improved error handling of internal errors i the ssh
	      connection handling process

    OTP-9911  Changed ssh implementation to use the public_key application
	      for all public key handling. This is also a first step for
	      enabling a callback API for supplying public keys and
	      handling keys protected with password phrases. 

	      Additionally the test suites where improved so that they do
	      not copy the users keys to test server directories as this is
	      a security liability. Also ipv6 and file access issues found
	      in the process has been fixed.

	      This change also solves OTP-7677 and OTP-7235

	      This changes also involves some updates to public_keys
	      ssh-functions.

    OTP-9948  sftp daemon generates file handles correct

   OTP-10036  Added options for the ssh client to support user keys files
	      that are password protected.


--- ssl-5.0.1 -----------------------------------------------------------

    OTP-9915  Robustness and improvement to distribution over SSL

	      Fix a bug where ssl_tls_dist_proxy would crash at caller
	      timeout. Fix a bug where a timeout from the SSL layer would
	      block the distribution indefinately. Run the proxy
	      exclusively on the loopback interface. (Thanks to Paul Guyot)

    OTP-9916  Fix setup loop of SSL TLS dist proxy

	      Fix potential leak of processes waiting indefinately for data
	      from closed sockets during socket setup phase. (Thanks to
	      Paul Guyot)

    OTP-9925  Correct spelling of registered (Thanks to Richard Carlsson)

   OTP-10024  Added TLS PRF function to the SSL API for generation of
	      additional key material from a TLS session. (Thanks to
	      Andreas Schultz)


--- stdlib-1.18.1 -------------------------------------------------------

    OTP-6454  References to is_constant/1 (which was removed in the R12
	      release) has been removed from documentation and code.

    OTP-9549  Leave control back to gen_server during supervisor's restart
	      loop

	      When an attempt to restart a child failed, supervisor would
	      earlier keep the execution flow and try to restart the child
	      over and over again until it either succeeded or the restart
	      frequency limit was reached. If none of these happened,
	      supervisor would hang forever in this loop.

	      This commit adds a timer of 0 ms where the control is left
	      back to the gen_server which implements the supervisor. This
	      way any incoming request to the supervisor will be handled -
	      which could help breaking the infinite loop - e.g. shutdown
	      request for the supervisor or for the problematic child.

	      This introduces some incompatibilities in stdlib due to new
	      return values from supervisor:

	      restart_child/2 can now return {error,restarting}
	      delete_child/2 can now return {error,restarting}
	      which_children/1 returns a list of {Id,Child,Type,Mods},
	      where Child, in addition to the old pid() or 'undefined', now
	      also can be 'restarting'.

    OTP-9782  If a temporary child's start function returned 'ignore', then
	      the supervisor would keep it's child specification. This has
	      been corrected. Child specifications for non-existing
	      temporary children shall never be kept.

    OTP-9854  Use universal time as base in error logger

	      Previous conversion used the deprecated
	      calendar:local_time_to_universal_time/1

    OTP-9866  Calling a guard test (such as is_list/1) from the top-level
	      in a guard, would cause a compiler crash if there was a local
	      definition with the same name. Corrected to reject the
	      program with an error message.

    OTP-9920  Fix the type spec from the doc of binary:part/3 (Thanks to
	      Ricardo Catalinas Jim�nez)

    OTP-9925  Correct spelling of registered (Thanks to Richard Carlsson)

    OTP-9929  Put gb_trees documentation into alphabetical order (Thanks to
	      Aidan Hobson Sayers)

    OTP-9932  Fix bug in ETS with compressed option and insertion of term
	      containing large integers (>2G) on 64-bit machines. Seen to
	      cause emulator crash. (Thanks to Diego Llarrull for excellent
	      bug report)

    OTP-9945  Add plugin support for alternative name lookup This patch
	      introduces a new way of locating a behaviour instance: {via,
	      Module, Name}. (Thanks to Ulf Wiger)

    OTP-9953  The function digraph_utils:condensation/1 used to create a
	      digraph containing loops contradicting the documentation
	      which states that the created digraph is free of cycles. This
	      bug has been fixed. (Thanks to Kostis Sagonas for finding the
	      bug.)

    OTP-9985  When an escript ends now all printout to standard output and
	      standard error gets out on the terminal. This bug has been
	      corrected by changing the behaviour of erlang:halt/0,1, which
	      should fix the same problem for other escript-like
	      applications, i.e that data stored in the output port driver
	      buffers got lost when printing on a TTY and exiting through
	      erlang:halt/0,1.

	      The BIF:s erlang:halt/0,1 has gotten improved semantics and
	      there is a new BIF erlang:halt/2 to accomplish something like
	      the old semantics. See the documentation.

	      Now erlang:halt/0 and erlang:halt/1 with an integer argument
	      will close all ports and allow all pending async threads
	      operations to finish before exiting the emulator. Previously
	      erlang:halt/0 and erlang:halt(0) would just wait for pending
	      async threads operations but not close ports. And
	      erlang:halt/1 with a non-zero integer argument would not even
	      wait for pending async threads operations.

	      To roughly the old behaviour, to not wait for ports and async
	      threads operations when you exit the emulator, you use
	      erlang:halt/2 with an integer first argument and an option
	      list containing {flush,false} as the second argument. Note
	      that now is flushing not dependant of the exit code, and you
	      can not only flush async threads operations which we deemed
	      as a strange behaviour anyway.

	      Also, erlang:halt/1,2 has gotten a new feature: If the first
	      argument is the atom 'abort' the emulator is aborted
	      producing a core dump, if the operating system so allows.

    OTP-9997  Add escript win32 alternative invocation. escript can now be
	      started as both "escript.exe" and "escript" (Thanks to Pierre
	      Rouleau)


--- syntax_tools-1.6.8 --------------------------------------------------

   OTP-10016  Minor suppressions and fixes of compilation warnings


--- test_server-3.5.1 ---------------------------------------------------

    OTP-9659  A new optional feature has been introduced that enables
	      Common Test to generate priv_dir directory names that are
	      unique for each test case or config function. The name of the
	      option/flag is 'create_priv_dir' and it can be set to value
	      'auto_per_run' (which is the default, existing, behaviour),
	      or 'auto_per_tc' or 'manual_per_tc'. If 'auto_per_tc' is
	      used, Test Server creates a dedicated priv_dir automatically
	      for each test case (which can be very expensive in case of
	      many and/or repeated cases). If 'manual_per_tc' is used, the
	      user needs to create the priv_dir explicitly by calling the
	      new function ct:make_priv_dir/0.

    OTP-9666  After a test case timeout or abortion, the end_per_testcase
	      function executes on a new dedicated process. The group
	      leader for this process should be set to the IO server for
	      the test case, which was not done properly. The result of
	      this error was that no warnings about end_per_testcase
	      failing or timing out were ever printed in the test case log.
	      Also, help functions such as e.g. test_server:stop_node/1,
	      attempting to synchronize with the IO server, would hang. The
	      fault has been corrected.

    OTP-9730  A column for test case group name has been added to the suite
	      overview HTML log file.

    OTP-9855  It is now possible to use the post_end_per_testcase CT hook
	      function to print a comment for a test case in the overview
	      log file, even if the test case gets killed by a timetrap or
	      unknown exit signal, or if the end_per_testcase function
	      times out.

    OTP-9894  A deadlock situation could occur if Common Test is forwarding
	      error_handler printouts to Test Server at the same time a new
	      test case is starting. This error has been fixed.

    OTP-9904  Common Test will now print error information (with a time
	      stamp) in the test case log file immediately when a test case
	      fails. This makes it easier to see when, in time, the fault
	      actually occured, and aid the job of locating relevant trace
	      and debug printouts in the log.

    OTP-9930  When a test case was killed because of a timetrap timeout,
	      the current location (suite, case and line) was not printed
	      correctly in the log files. This has been corrected.

    OTP-9941  Test Server and Common Test would add new error handlers with
	      each test run and fail to remove previously added ones. In
	      the case of Test Server, this would only happen if SASL was
	      not running on the test node. This has been fixed.

    OTP-9955  Test Server has been modified to check the SASL errlog_type
	      parameter when receiving an error logger event, so that it
	      doesn't print reports of type that the user has disabled.

    OTP-9958  If a test case process was terminated due to an exit signal
	      from a linked process, Test Server failed to report the
	      correct name of the suite and case to the framework. This has
	      been corrected.

    OTP-9971  If an application cannot be found by ts it is automatically
	      skipped when testing.

    OTP-9988  By specifying a user defined function ({M,F,A} or fun) as
	      timetrap value, either by means of an info function or by
	      calling ct:timetrap/1, it is now possible to set a timetrap
	      that will be triggered when the user function returns.

    OTP-9992  If the optional configuration functions init_per_suite/1 and
	      end_per_suite/1 are not implemented in the test suite, local
	      Common Test versions of these functions are called instead,
	      and will be displayed in the overview log file. Any printouts
	      made by the pre- or post_init_per_suite and pre- or
	      post_end_per_suite hook functions are saved in the log files
	      for these functions.


--- toolbar-1.4.2.2 -----------------------------------------------------

    OTP-9907  The GS applications is now deprecated and will be removed in
	      the R16 release. The following GS-based applications have
	      been superseded by the Observer application and will removed
	      in R16: Appmon, Pman, Tv.


--- tools-2.6.7 ---------------------------------------------------------

    OTP-9857  Makefiles in erts, hipe and tools have been corrected to
	      enable parallel make, i.e MAKEFLAGS=-jX where X is the
	      parallelity number. As a result of this dependencies were
	      corrected since that is what is needed for parallel make to
	      work.

   OTP-10016  Minor suppressions and fixes of compilation warnings


--- tv-2.1.4.9 ----------------------------------------------------------

    OTP-9907  The GS applications is now deprecated and will be removed in
	      the R16 release. The following GS-based applications have
	      been superseded by the Observer application and will removed
	      in R16: Appmon, Pman, Tv.


--- wx-0.99.2 -----------------------------------------------------------

    OTP-9947  Fix errors in wxDC and wxGraphicsContext api.

	      Add wxTaskBarIcon.

	      Add wxStyledTextControl:setEdgeMode/2.

	      Add type and specs for all functions and records.


--- xmerl-1.3.1 ---------------------------------------------------------

    OTP-9873  Add missing spaces in xmerl doc (Thanks to Ricardo Catalinas
	      Jim�nez)

    OTP-9961  Fixed a continuation error in the sax parser and added latin1
	      as recognized encoding (not only the iso-8859 variants).

    OTP-9965  Removed the unused file xmerl_xlink.hrl. Thanks to Vlad
	      Dumitrescu for informing us about it.

   OTP-10023  xmerl couldn't handle comments inside a type specification.

   OTP-10026  Fix some small errors in the sax parser: error message bug,
	      removal of trailing blanks in DTD element definitions and an
	      documentation error of the startDTD event in xmerl_sax_parser
	      module.