Bug fix release : otp_src_R15B02
Build date      : 2012-09-03

This is R15B02, the second maintenance release for the R15B major release.

You can find the README file for the release at

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

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

  http://www.erlang.org/download/otp_src_R15B02.tar.gz
  http://www.erlang.org/download/otp_win32_R15B02.exe
  http://www.erlang.org/download/otp_win64_R15B02.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_R15B02.tar.gz
  http://www.erlang.org/download/otp_doc_man_R15B02.tar.gz

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

The OTP Team


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

    OTP-8871  == ssl ==

	      Experimental support for TLS 1.1 is now available, will be
	      officially supported from OTP-R16. Thanks to Andreas Schultz
	      for implementing the first version.

    OTP-8872  == ssl ==

	      Experimental support for TLS 1.2 is now available, will be
	      officially supported from OTP-R16. Thanks to Andreas Schultz
	      for implementing the first version.

   OTP-10113  == ssl ==

	      Removed some bottlenecks increasing the applications
	      parallelism especially for the client side.


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

   OTP-10074  The Erlang/OTP test runner ts has been extended to allow
	      cross compilation of test suites. To cross compile the test
	      suites first follow the normal cross compilation procedures
	      and release the tests on the build host. Then install ts
	      using an xcomp specification file and compile test suites
	      using ts:compile_testcases/0. For more details see
	      $ERL_TOP/xcomp/README.md.

   OTP-10107  It is now possible to give configure and make an
	      installation/release path with whitespaces in it.

   OTP-10245  spelling improvements throughout the documentation and code.
	      (Thanks to Tuncer Ayaz)

   OTP-10246  Correct link in the README.md (Thanks to Yamamoto Takashi)


--- asn1-1.8 ------------------------------------------------------------

   OTP-10058  Add support for multiple ExtensionAdditionGroups

   OTP-10128  Encoding and decoding of integer ranges can now be done with
	      an upper bound larger than the previous limit of 16^10. The
	      new upper bound in per encoding and decodings for constrained
	      whole numbers is 2^2040 (close to 16^508)

   OTP-10139  Per encoding/decoding now works correctly for single value
	      subtyping of an integer type where a subtype is a predefined
	      value. Previously a predefined value could cause a non-valid
	      range-check in the generated Erlang code for per
	      encoding/decoding due to a bug in the constraint checking.

   OTP-10144  Add support for extensible enumeration types in n2n generated
	      functions.

   OTP-10152  Fix typo error in selected decode function (Thanks to Artem
	      Teslenko)

   OTP-10186  Better error indication when detecting unexpected tags during
	      decoding of BER encoded data.

   OTP-10233  asn1rt_check: Fix transform_to_EXTERNAL1990 for binary input
	      (Thanks to Harald Welte)


--- common_test-1.6.2 ---------------------------------------------------

    OTP-9625  The support for "silent connections" has been updated to
	      include ssh. Also, a silent_connections term has been added
	      to the set of test specification terms.

    OTP-9626  It is now possible to specify an arbitrarily large tuple as
	      the requires config data when using require and
	      ct:get_config. See the ct:get_config and ct:require reference
	      manual pages for details about which keys are allowed.

	      This change introduces a backwards incompatability in the
	      ct:require/2 interface. Previously when doing
	      ct:require(a_name,{key,subkey}), a_name would be associated
	      with key. This has been changed to that a_name is associated
	      with subkey. This change also effects using require in an
	      suite/group/testcase info function.

    OTP-9865  The ct_run program now sets the OS process exit status before
	      it ends. Value 0 indicates a successful test result, 1
	      indicates one or more failed or auto-skipped test cases, and
	      2 indicates test execution failure.

    OTP-9896  It is now possible to sort the HTML tables by clicking on the
	      header elements. In order to reset a sorted table, the
	      browser window should simply be refreshed. This feature
	      requires that the browser supports javascript, and has
	      javascript execution enabled. If the 'ct_run -basic_html'
	      flag is used, no javascript code is included in the generated
	      HTML code.

   OTP-10025  A netconf client, ct_netconfc, is added to common_test. It
	      supports basic netconf functionality over SSH. In order to
	      allow testing of both success and failure cases, it is
	      intentionally written to allow non-standard behavior.

   OTP-10049  The test specification term {define,Constant,Value} has been
	      introduced, which makes it possible to replace constant names
	      (atom()) with values (term()) in arbitrary test specification
	      terms. The 'define' makes the (now deprecated) 'alias' term
	      obsolete. More details, including examples, can be found in
	      the Test Specifications chapter in the Common Test User's
	      Guide.

   OTP-10050  If a CT hook function caused a crash, this could in some
	      situations cause Common Test to terminate due to an illegal
	      IO operation. This error has been corrected.

   OTP-10067  Verbosity levels for log printouts has been added. This makes
	      it possible to specify preferred verbosity for different
	      categories of log printouts, as well as general printouts
	      (such as standard IO), to allow control over which strings
	      get printed and which get ignored. New versions of the Common
	      Test logging functions, ct:log, ct:pal and ct:print, have
	      been introduced, with a new Importance argument added. The
	      Importance value is compared to the verbosity level at
	      runtime. More information can be found in the chapter about
	      Logging in the Common Test User's Guide.

   OTP-10069  The Common Test documentation states that timetraps are never
	      active during execution of CT hook functions. This was only
	      true for post hook functions, not for pre hook functions. The
	      code for CT hooks has been modified to behave according to
	      the documentation.

   OTP-10072  If a CT hook function would call the exit/1 or throw/1 BIF
	      (possibly indirectly, e.g. as a result of a timeout in
	      gen_server:call/3), Common Test would hang. This problem has
	      been fixed.

   OTP-10077  The documentation has been updated with information about how
	      to deal with chaining of hooks which return fail/skip.

   OTP-10087  The return values of ct:run_test/1 and ct:run_testspec/1 have
	      been changed from an uninformative 'ok' (independent of the
	      test outcome) to a value,
	      {Ok,Failed,{UserSkipped,AutoSkipped}} (all integers), that
	      presents the final test case result, or a value,
	      {error,Reason}, that informs about fatal test execution
	      failure. See details in the reference manual for ct.

   OTP-10089  The test specification syntax has been updated with new and
	      missing terms, such as 'define', 'verbosity', 'auto_compile',
	      'stylesheet', 'silent_connections', 'basic_html' and
	      'release_shell'. See the Test Specification chapter in the
	      Common Test User's Guide for details.

   OTP-10127  It is now possible to pause execution of a test case, by
	      calling the ct:break/1/2 function. Execution is resumed with
	      a call to ct:continue/0/1. Break/continue also works for test
	      cases executing in parallel. See the ct reference manual for
	      details.

   OTP-10135  When ct_hooks called the id/1 functions of multiple hooks, it
	      would reverse the order of the hooks and call the proceeding
	      init/2 calls in the wrong order. This has been fixed.

   OTP-10157  It is now possible to send user defined events from a
	      testcase which will be picked up by the installed event
	      handler.

   OTP-10158  The surefire hook now correctly handles autoskipped
	      initialization and test functions.

   OTP-10172  The ct:get_status/0 function failed to report status if a
	      parallel test case group was running at the time of the call.
	      This has been fixed and the return value for the function has
	      been updated. Please see the ct reference manual for details.

   OTP-10248  A new start option, release_shell, for ct:run_test/1, has
	      been added, which makes Common Test release the shell process
	      after the test suite compilation phase is finished. For
	      details, see the Running Tests chapter in the User's Guide.


--- compiler-4.8.2 ------------------------------------------------------

   OTP-10123  Modules with very many functions would compile very slowly.

   OTP-10150  compile:forms/2 will now use a {source,SourceFilePath} to set
	      the source returned by module_info(compile) (Thanks to Jos�
	      Valim)

   OTP-10171  A process which had enabled trap_exit would receive EXIT
	      messages after calling the compiler. (Thanks to Jeremy
	      Heater.)

   OTP-10183  Fix messages ordering with column numbers

   OTP-10184  sys_pre_expand: Fix BASE never being set

	      Commit a612e99fb5aaa934fe5a8591db0f083d7fa0b20a turned module
	      attributes from 2-tuples to 3-tuples but forgot to update
	      get_base/1, breaking BASE for parametric modules.

   OTP-10185  The compiler will now issue a warning if literal tuple funs
	      are used. For example, {erlang,is_tuple}(X) will now generate
	      a warning.

   OTP-10197  The compiler will now warn for illegal sizes for segments in
	      binary construction. For example, <<X:(2.5)>> will now cause
	      the compiler to issue a warning.

   OTP-10211  Fix the erlc -MP flag

	      Because of a copy-and-paste error in erlc.c, the -MP flag had
	      the same effect as -MG. As a workaround, you had to pass
	      +makedep_phony to enable the MP option. This patch makes -MP
	      work as intended.


--- crypto-2.2 ----------------------------------------------------------

    OTP-9908  Add crypto and public_key support for the hash functions
	      SHA224, SHA256, SHA384 and SHA512 and also hmac and
	      rsa_sign/verify support using these hash functions. Thanks to
	      Andreas Schultz for making a prototype.

   OTP-10064  Remove unnecessary dependency to libssl from crypto NIF
	      library. This dependency was introduced by accident in
	      R14B04.

   OTP-10065  Optimize RSA private key handling in crypto and public_key.

   OTP-10136  Make crypto:aes_cfb_128_encrypt and
	      crypto:aes_cfb_128_decrypt handle data and cipher with
	      arbitrary length. (Thanks to Stefan Zegenhagen)


--- dialyzer-2.5.2 ------------------------------------------------------

   OTP-10082  Bug fixes and improvements of dialyzer_typesig.

   OTP-10083  Correct handling of type names in contracts. Fix crash
	      related to contract checking. Do not rewrite unchanged PLT.

   OTP-10103  Add parallel dialyzer support

   OTP-10110  An alternative implementation of the solver in
	      dialyzer_typesig has been introduced. It is faster than the
	      original implementation.

   OTP-10191  Bugs in erl_types:t_inf() (HiPE) and in dialyzer_dataflow
	      (Dialyzer) have been fixed.

   OTP-10231  Stop a forgotten server process

	      Dialyzer forgot to stop a server process before finishing its
	      analysis. This is a concurrency error detected by Concuerror.
	      Changes to fix warnings identified by running dialyzer
	      -Wunmatched_returns. Thanks to Kostis Sagonas.


--- diameter-1.2 --------------------------------------------------------

    OTP-9608  Statistics related to Diameter messages can be retrieved
	      using diameter:service_info/2.

	      Both Diameter and socket-level statistics are available, for
	      both incoming and outgoing messages.

    OTP-9885  Allow multiple transport_module/config to
	      diameter:add_transport/2.

	      Multiple values are attempted in sequence until one results
	      in an established connection. This provides a way for a
	      connecting transport to specify configuration in order of
	      preference. (For example, SCTP before TCP.)

   OTP-10202  Fix broken Result-Code setting and Destination-Host/Realm
	      extraction.

	      Result-Code was assumed to have arity 1 when setting this
	      value in an answer to a request containing AVP decode errors.
	      Destination-Host/Realm were only correctly extracted from
	      messages in the common application.

   OTP-10203  Handle insufficient capabilities configuration more
	      gracefully.

	      A transport that does not have sufficient capabilities
	      configuration in order to encode CER/CEA will now emit an
	      error report noting the configuration error and exit instead
	      of failing. The error is not detected at
	      diameter:add_transport/2 since there is no requirement that a
	      service be configured before its transports.

   OTP-10212  Add events for state transitions in the RFC 3539 watchdog
	      state machine.

	      The watchdog state is also available through
	      diameter:service_info/2.

   OTP-10213  Add diameter:service_info(SvcName, connections).

	      This provides an alternative to
	      diameter:service_info(SvcName, transport) that presents
	      information per established connection instead of per
	      transport reference.

   OTP-10215  Ensure a failing peer_up/down callback does not affect
	      transport connections to other peers.

	      Such a failure would previously have taken down all of a
	      service's connections.

   OTP-10216  Assorted documentation corrections/improvements.


--- edoc-0.7.10 ---------------------------------------------------------

   OTP-10174  List behaviour callbacks in Edoc when using -callback
	      attribute. (Thanks to Magnus Henoch.)

	      Added special case for file names under Windows. (Thanks to
	      Beads Land-Trujillo.)


--- erl_docgen-0.3.2 ----------------------------------------------------

   OTP-10138  A bug regarding spaces in C function prototypes has been
	      fixed. (Thanks to Richard O'Keefe.)


--- erl_interface-3.7.8 -------------------------------------------------

   OTP-10209  Detect when middle endian doubles are used by a platform and
	      account for it when decoding floats. (Thanks to Mike Sperber)


--- erts-5.9.1.1 --------------------------------------------------------

   OTP-10033  A proposal for a new scheduler wakeup strategy has been 
              implemented. For more information see the documentation 
              of the +sws command line argument of erl. 

   OTP-10044  A switch for configuration of busy wait length for scheduler 
              threads has been added. For more information see the documentation 
              of the +sbwt command line argument of erl. 

   OTP-10048  The extra memory barriers introduced by bug-fix OTP-9281 
              were unnecessarily used also on tables without the write_concurrency 
              option enabled. This could unnecessarily degrade performance 
              of ETS tables without write_concurrency on some hardware 
              (e.g. PowerPC) while not effecting performance at all on 
              other hardware (e.g. x86/x86_64). OTP-9281 (R14B03): ETS 
              tables using the write_concurrency option could potentially 
              get into an internally inconsistent state. 

   OTP-10059  If threads support for the runtime system had been disabled 
              at compile time (--disable-threads had been passed to configure), 
              and the +A command line argument of erl was passed when 
              starting the runtime system, driver_system_info() erroneously 
              claimed that the runtime system had async threads even though 
              it had not. Due to this bug the file driver did not split 
              tasks into smaller chunks, but instead completed the whole 
              task at once, i.e., the scheduler got occupied with I/O 
              for a longer time than intended.


--- erts-5.9.1.2 --------------------------------------------------------

   OTP-10111  On Linux systems using heart (erl -heart) and a HEAR_BEAT_TIMEOUT 
              less than default, heart could fire even though Erlang was 
              running fine after approx 298 to 497 days (depending on 
              kernel config). This was due to the behaviour of the times(2) 
              system call. Usage of times(2) is now replaced with clock_gettime(2) 
              and the CLOCK_MONOTONIC clock, resulting in a more stable 
              solution. The Erlang VM itself has used clock_gettime(2) 
              on linux since before R12B, so this only affects the heart 
              program.


--- erts-5.9.2 ----------------------------------------------------------

   OTP-10051  Add port and suspend options to lock-counter profiling.
	      (Thanks to Rick Reed)

   OTP-10055  Latency when using the active_once option in gen_tcp
	      communication is reduced.

   OTP-10056  Remove bit8 option support from inet

   OTP-10057  The OS Pid of a port program is now available by calling
	      erlang:port_info(Port,os_pid), Thanks to Matthias Lang for
	      the original patch.

   OTP-10071  Fix erl_prim_loader errors in handling of primary archive.
	      The following errors have been corrected:

	      If primary archive was named "xxx", then a file in the same
	      directory named "xxxyyy" would be interpreted as a file named
	      "yyy" inside the archive.

	      erl_prim_loader did not correctly create and normalize
	      absolute paths for primary archive and files inside it, so
	      unless given with exact same path files inside the archive
	      would not be found. E.g. if escript was started as
	      /full/path/to/xxx then "./xxx/file" would not be found since
	      erl_prim_loader would try to match /full/path/to/xxx with
	      /full/path/to/./xxx. Same problem with ../.

	      Depending on how the primary archive was built,
	      erl_prim_loader:list_dir/1 would sometimes return an empty
	      string inside the file list. This was a virtual element
	      representing the top directory of the archive. This has been
	      removed.

	      Thanks to Tuncer Ayaz and Shunichi Shinohara for reporting
	      and co-authoring corrections.

   OTP-10073  Fix: Add port-I/O statistics for active once and true and not
	      only active false.

   OTP-10076  Fix openpty usage in run_erl. 

	      Reopening a slave file descriptor which was closed earlier
	      could lead to a misbehaving connection. This has now been
	      remedied.

   OTP-10096  The 64-bit windows installer did not look in the right
	      directories for 64-bit version of Microsoft Visual C++ 2010
	      Redistibutable Package and hence took the wrong decision
	      about having to install the redistributable package if the
	      32-bit version was installed but not the 64-bit and vice
	      versa. This bug has now been fixed Furthermore the
	      sub-installer for the redistributable package is now run in
	      silent mode if the erlang installer is.

   OTP-10105  Remove all code, documentation, options and diagnostic
	      functions which were related to the experimental hybrid heap
	      implementation.

   OTP-10106  epmd would fail to start automatically when starting a
	      distributed erlang node installed in a location with a
	      whitespace in the path.

   OTP-10116  A more or less harmless bug that sometimes caused memory
	      deallocations to be delayed longer than intended has been
	      fixed.

   OTP-10137  Fix bug causing emulator crash when running HiPE on ARM. Bug
	      has existed since R15B.

   OTP-10138  A bug regarding spaces in C function prototypes has been
	      fixed. (Thanks to Richard O'Keefe.)

   OTP-10142  Corrected dtrace pid length in message related probes.
	      (Thanks to Zheng Siyao)

   OTP-10148  Correct formating in exit error messages

	      Ensure displayed sizes are not negative. (Thanks to Michael
	      Santos)

   OTP-10151  fix escript/primary archive reloading

	      If the mtime of an escript/primary archive file changes after
	      being added to the code path, correctly reload the archive
	      and update the cache. (Thanks to Tuncer Ayaz)

   OTP-10162  Optimizations of memory deallocations.

   OTP-10163  Optimization of process locking.

   OTP-10180  Doc fix: link from erlang:now/0 to os:timestamp/0

	      Sometimes os:timestamp/0 is more appropriate than
	      erlang:now/0. The documentation for the former has a link to
	      the latter; this patch adds a link in the other direction to
	      make os:timestamp/0 more visible. Thanks to Magnus Henoch

   OTP-10181  The caret in the werl window (on Windows) could appear at the
	      wrong place after regaining focus. This is now corrected.

   OTP-10182  Fix bug that in some cases could cause corrupted binaries in
	      ETS tables with compressed option.

   OTP-10187  Fix use of "clever" mktime

	      Commit 1eef765 introduced regression (conditional _always_
	      evaluates to true) in which
	      erlang:localtime_to_universaltime/2 stopped working on
	      systems configured with timezone without DST (i.e. UTC) on
	      *BSD platforms: 1>
	      erlang:localtime_to_universaltime({{2012,1,1},{0,0,0}},
	      true). ** exception error: bad argument Thanks to Piotr
	      Sikora

   OTP-10189  Relocate bodies of DTrace probes to the statically-linked VM.

	      Due to various operating systems (in both the DTrace and
	      SystemTap worlds) not fully supporting DTrace probes (or
	      SystemTap-compatibility mode probes) in shared libraries, we
	      relocate those probes to the statically-linked virtual
	      machine. This could be seen as pollution of the pristine VM
	      by a (yet) experimental feature. However:

	      1. This code can be eliminated completely by the C
	      preprocessor. 2. Leaving the probes in the dyntrace NIF
	      shared library simply does not work correctly on too many
	      platforms. *Many* thanks to Macneil Shonle at Basho for
	      assisting when my RSI-injured fingers gave out. (note:
	      Solaris 10 and FreeBSD 9.0-RELEASE can take a long time to
	      compile)

   OTP-10190  Fix bug in ets:test_ms/2 that could cause emulator crash when
	      using '$_' in match spec.

   OTP-10198  Added a xcomp example file for powerpc-dso-linux-gnu

   OTP-10200  Supplying a filename longer than the operating system
	      MAX_PATH to file:read_link/1 would cause a crash
	      (Segemntation fault/Critical Error) on all platforms. This is
	      now corrected.

   OTP-10201  If Perl was configured to interpret files as being encoded in
	      UTF-8, the build would crash in make_preload. (Thanks to
	      Aaron Harnly for noticing this issue.)

   OTP-10209  Detect when middle endian doubles are used by a platform and
	      account for it when decoding floats. (Thanks to Mike Sperber)

   OTP-10211  Fix the erlc -MP flag

	      Because of a copy-and-paste error in erlc.c, the -MP flag had
	      the same effect as -MG. As a workaround, you had to pass
	      +makedep_phony to enable the MP option. This patch makes -MP
	      work as intended.

   OTP-10217  Allow mixed IPv4 and IPv6 addresses to sctp_bindx

	      Also allow mixed address families to bind, since the first
	      address on a multihomed sctp socket must be bound with bind,
	      while the rest are to be bound using sctp_bindx. At least
	      Linux supports adding address of mixing families. Make
	      inet_set_faddress function available also when HAVE_SCTP is
	      not defined, since we use it to find an address for bind to
	      be able to mix ipv4 and ipv6 addresses. Thanks to Tomas
	      Abrahamsson

   OTP-10227  Fix support for leap seconds-aware timezones

	      erlang:universaltime_to_localtime is leap seconds-aware
	      (since 2008), however erlang:localtime_to_universaltime is
	      not, which gives surprising results on systems configured
	      with leap seconds-aware timezones: 1>
	      erlang:universaltime_to_localtime({{2012,1,1},{0,0,0}}).
	      {{2012,1,1},{0,0,0}} 2>
	      erlang:localtime_to_universaltime({{2012,1,1},{0,0,0}}).
	      {{2012,1,1},{0,0,24}} and completely breaks
	      calendar:local_time_to_universal_time_dst: 3>
	      calendar:local_time_to_universal_time_dst({{2011,1,1},{0,0,0}
	      }). [] Thanks to Piotr Sikora

   OTP-10228  erlsrv: gracefully stop emulator on Windows shutdown

	      Windows will send the SERVICE_CONTROL_SHUTDOWN event to the
	      service control handler when shutting down the system.
	      Instead of ignoring the event, erlsrv will now invoke the
	      stop action. Likewise, the Erlang emulator (and it's po
	      drivers) must not quit upon reception of the
	      CTRL_SHUTDOWN_EVENT event in th console control handler.
	      Thanks to Jan Kloetzke

   OTP-10234  Fix dtrace bug in file rename operation.

   OTP-10249  Fix bug in memory management of driver port data locks (PDL).
	      In some cases PDLs could be deallocated before ready_async or
	      async_free callback was called.


--- et-1.4.4.2 ----------------------------------------------------------

   OTP-10119  Fix typo in ET doc (Thanks to Ricardo Catalinas Jim�nez)


--- eunit-2.2.3 ---------------------------------------------------------

   OTP-10173  New option 'no_tty' to silent the default tty report.

	      Recognize the new stacktrace format introduced in R15, adding
	      location information. (Thanks to Klas Johansson.)

	      Improve layout of error messages, printing the stack trace
	      before the error term.

	      Heuristically detect and report bad return values from
	      generators and instantiators. E.g., "ok" will not be
	      interpreted as a module name, and a warning will be printed.

	      New test representation {test,M,F} for completeness along
	      with {generator,M,F}. Tuples {M,F} are deprecated.

	      Use UTF-8 as encoding in Surefire output files. (Thanks to
	      Lukas Larsson.)


--- hipe-3.9.2 ----------------------------------------------------------

   OTP-10083  Correct handling of type names in contracts. Fix crash
	      related to contract checking. Do not rewrite unchanged PLT.

   OTP-10105  Remove all code, documentation, options and diagnostic
	      functions which were related to the experimental hybrid heap
	      implementation.

   OTP-10191  Bugs in erl_types:t_inf() (HiPE) and in dialyzer_dataflow
	      (Dialyzer) have been fixed.

   OTP-10230  Changes in comments and minor code cleanups

	      Thanks to Kostis Sagonas.


--- ic-4.2.31 -----------------------------------------------------------

   OTP-10109  Fix bug where the ic pre-processor would ignore whitespace
	      quoting.

   OTP-10138  A bug regarding spaces in C function prototypes has been
	      fixed. (Thanks to Richard O'Keefe.)


--- inets-5.9.1 ---------------------------------------------------------

   OTP-10092  [httpc] Cancel request does not work due to incorrect handler
	      table creation (wrong keypos).

   OTP-10093  [httpc] Better handling of error(s) during update of the
	      session database. Also added (httpc:which_sessions/0,1) and
	      updated and documented (httpc:info/0) some debugging
	      functions.

   OTP-10095  Removed R14B compatible version of (inets-service and tftp)
	      behaviour definition.

   OTP-10114  Documentation of KeepAlive and Pipeline timeout options have
	      been improved. (Thanks to Jesper Louis Andersen)


--- kernel-2.15.2 -------------------------------------------------------

   OTP-10053  Document inet options: high_watermark, priority, linger and a
	      some other options that previously was undocumented.

   OTP-10056  Remove bit8 option support from inet

   OTP-10094  Fixed issue where using controlling_process/2 with self() as
	      the second argument caused the port to leak if self()
	      crashes. (Thanks to Ricardo Catalinas Jim�nez)

   OTP-10098  When sending large files using the file:sendfile fallback
	      file:sendfile would crash. This is now fixed.

   OTP-10131  The type of the disk log header has been corrected. (Thanks
	      to Niclas Eklund.)

   OTP-10149  Fix rpc:call/5 for local calls with a finite Timeout (Thanks
	      to Tomer Chachamu)

   OTP-10151  fix escript/primary archive reloading

	      If the mtime of an escript/primary archive file changes after
	      being added to the code path, correctly reload the archive
	      and update the cache. (Thanks to Tuncer Ayaz)

   OTP-10160  Support added for home directories named with non-ASCII
	      characters (codepoints above 127) on a system running in
	      Unicode file mode (e.g. on MacOSX or Linux with startup
	      arguments +fnu or +fna with the right LOCALE). Also
	      environment variables with Unicode content are supported in
	      applicable environments.

   OTP-10217  Allow mixed IPv4 and IPv6 addresses to sctp_bindx

	      Also allow mixed address families to bind, since the first
	      address on a multihomed sctp socket must be bound with bind,
	      while the rest are to be bound using sctp_bindx. At least
	      Linux supports adding address of mixing families. Make
	      inet_set_faddress function available also when HAVE_SCTP is
	      not defined, since we use it to find an address for bind to
	      be able to mix ipv4 and ipv6 addresses. Thanks to Tomas
	      Abrahamsson


--- megaco-3.16.0.2 -----------------------------------------------------

   OTP-10199  Miscellaneous fixes and changes.


--- mnesia-4.7.1 --------------------------------------------------------

   OTP-10220  Add tests showing that trying to delete non-existing object
	      may corrupt the 

	      In case of bag tables, trying to delete a non-existing object
	      leads to the index becoming corrupt. This happens if the
	      non-existing object we try to delete happens to share its key
	      and index field value with a single existing object in the
	      table. Result: The index entry corresponding to the existing
	      object is removed.

	      Prevent index from being corrupted if a nonexistent item is
	      deleted

	      We have to ensure that we actually delete the last object
	      with a given (key, index) pair before removing the index.
	      Thanks to Bartlomiej Puzon


--- observer-1.2 --------------------------------------------------------

   OTP-10075  Allow tracing on bifs.

	      Ask epmd for local nodes, and remember users last input in
	      connect.

	      Fix crashes when a table or process information could not be
	      retrieved.

   OTP-10090  The module name in the link to the detail page for each
	      loaded module was earlier not URL encoded. If the module name
	      contained e.g. a # this could cause the crashdump viewer to
	      crash when opening the link. This has been corrected.

   OTP-10218  Escape control characters in Table Viewer

	      Similar behaviour to old tv. Objects in tables supposed to be
	      printed in a single line and it looks ugly when a
	      [...,10,...] integer list creates a new-line. Fix Table
	      Viewer search crash on new|changed|deleted rows.

	      Fix Table Viewer crash after a 'Found' -> 'Not found' search
	      sequence

	      Start position was lost after a 'Found' -> 'Not found' search
	      sequence leading an undefined position in the next search.
	      Thanks to Peti G�mori

   OTP-10221  observer: fix app file (Noticed-by: Motiejus Jakstys)

	      Add missing observer modules to observer.app.src. Thanks to
	      Tuncer Ayaz.

   OTP-10225  Make Table Viewer search a bit faster

	      Edit table row in a multiline text dialog. Thanks to Peti
	      Gomori.


--- odbc-2.10.13 --------------------------------------------------------

   OTP-10206  Add support for NULL value in odbc:param_query

	      Support atom 'null' in odbc:param_query as database NULL
	      value Fix "ODBC: received unexpected info:{tcp_closed, ...}"
	      when connection is terminated. Fix possible access violation
	      with 64bit ODBC. Thanks to Maxim Zrazhevskiy


--- os_mon-2.2.10 -------------------------------------------------------

   OTP-10100  Infinity timeout added to internal calls in disksup to allow
	      it to work properly under very heavy load.

   OTP-10161  Clarify error messages from os_mon port programs


--- public_key-0.16 -----------------------------------------------------

    OTP-9908  Add crypto and public_key support for the hash functions
	      SHA224, SHA256, SHA384 and SHA512 and also hmac and
	      rsa_sign/verify support using these hash functions. Thanks to
	      Andreas Schultz for making a prototype.

   OTP-10065  Optimize RSA private key handling in crypto and public_key.


--- reltool-0.6.1 -------------------------------------------------------

    OTP-9743  A new sys level configuration parameter {excl_lib,otp_root}
	      is added. When this is set, the target system will not
	      contain anything from $OTP_ROOT. It will only contain a
	      releases directory with rel, script and boot files, and a lib
	      directory with applications found outside of $OTP_ROOT (i.e.
	      "your own" applications).


--- runtime_tools-1.8.9 -------------------------------------------------

   OTP-10141  Change the module-level docs to give complete step-by-step
	      instructions for using the `dyntrace:p()` trace function.
	      (Thanks to Scott Lystig Fritchie)

   OTP-10143  Add 1024 separate USDT probes to dyntrace.erl and dyntrace.c
	      (Thanks to Scott Lystig Fritchie)

   OTP-10189  Relocate bodies of DTrace probes to the statically-linked VM.

	      Due to various operating systems (in both the DTrace and
	      SystemTap worlds) not fully supporting DTrace probes (or
	      SystemTap-compatibility mode probes) in shared libraries, we
	      relocate those probes to the statically-linked virtual
	      machine. This could be seen as pollution of the pristine VM
	      by a (yet) experimental feature. However:

	      1. This code can be eliminated completely by the C
	      preprocessor. 2. Leaving the probes in the dyntrace NIF
	      shared library simply does not work correctly on too many
	      platforms. *Many* thanks to Macneil Shonle at Basho for
	      assisting when my RSI-injured fingers gave out. (note:
	      Solaris 10 and FreeBSD 9.0-RELEASE can take a long time to
	      compile)


--- snmp-4.22.1 ---------------------------------------------------------

   OTP-10066  [manager] snmpm:log_to_io/6 did not use the LogName argument.

   OTP-10132  Fix bad decode of types TimeTicks and Unsigned32.

   OTP-10164  [agent] Errors in vacmAccessTable RowStatus handling.

	      There are problems with the handling of vacmAccessTableStatus
	      that cause some SNMP test suites to report errors.

	      Most notably, erroneous set operations frequently cause
	      "genErr" errors to be returned. These "genErr" errors are
	      usually caused by badmatch exceptions coming from {ok, Row} =
	      snmpa_vacm:get_row(RowIndex) if the row does not exist.

	      The semantics of the RowStatus handling in that table has
	      been adjusted compliant with the RowStatus textual
	      description of SNPMv2-TC MIB. (Thanks to Stefan Zegenhagen)

   OTP-10165  [agent] Fix walk over vacmAccessTable. Fix the get_next
	      implementation of vacmAccessTable to return all table
	      entries. The get_next implementation of vacmAccessTable did
	      not return all available table data. Instead, it only
	      returned the first column for each row, and all columns for
	      the last row available.

   OTP-10166  [agent] Sematic fixes to SNMP-USER-BASED-SM-MIB. The
	      semantics allow the usmUserAuthKeyChange and
	      usmUserPrivKeyChange objects to be written to in the same set
	      requests that also creates and clones the user. This was not
	      possible beforehand, causing test tools checking semantic
	      SNMPv3 behaviour to fail on a lot of test cases.

	      Furthermore, once the user has been cloned by writing to an
	      instance of usmUserCloneFrom, further set-operations to the
	      same object will not return an error, but be no-ops.
	      Especially, it must be avoided to copy security parameters
	      again (possibly even from a different user).


--- ssh-2.1.1 -----------------------------------------------------------

   OTP-10060  Ssh now only sends one channel close message under all
	      circumstances, before it would sometimes incorrectly send
	      two.

   OTP-10061  The options check mistreated the ip_v6_disable-option, and
	      did not handle some, at the moment, undocumented options
	      correctly.

   OTP-10062  The channel id in a channel failure message, sent to the
	      peer, is now in all cases the remote channel id

   OTP-10112  Improved handling of multiple closes to avoid occasional
	      crashes when a channel is closed more than once.

   OTP-10219  Fix lib/src/test/ssh_basic_SUITE.erl to fix IPv6 option typos

	      Fixed incorrect option "ipv6_disable" to "ipv6_disabled" as
	      documented in the ssh manual.

   OTP-10224  SSH: Make "auth_methods" server option re-usable

	      The 'auth_methods' option is used by the server side of the
	      SSH code to tell a connecting SSH client about the
	      authentication methods that are supported by the server. The
	      code still extracts and handles the 'auth_methods' option
	      from Opts in appropriate places, but the Opts checking code
	      in ssh.erl didn't allow that option to be specified.

   OTP-10232  Use the correct channel id when adjusting the channel window


--- ssl-5.1 -------------------------------------------------------------

    OTP-8871  Experimental support for TLS 1.1 is now available, will be
	      officially supported from OTP-R16. Thanks to Andreas Schultz
	      for implementing the first version.

    OTP-8872  Experimental support for TLS 1.2 is now available, will be
	      officially supported from OTP-R16. Thanks to Andreas Schultz
	      for implementing the first version.

   OTP-10113  Removed some bottlenecks increasing the applications
	      parallelism especially for the client side.

   OTP-10118  Sometimes the client process could receive an extra {error,
	      closed} message after ssl:recv had returned {error, closed}.

   OTP-10196  ssl v3 alert number 41 (no_certificate_RESERVED) is now
	      recognized

   OTP-10222  Workaround for handling certificates that wrongly encode
	      X509countryname in utf-8 when the actual value is a valid
	      ASCCI value of length 2. Such certificates are accepted by
	      many browsers such as Chrome and Fierfox so for
	      interoperability reasons we will too.


--- stdlib-1.18.2 -------------------------------------------------------

   OTP-10054  The message printed by the Erlang shell as an explanation of
	      the badarith error has been corrected. (Thanks to Matthias
	      Lang.)

   OTP-10104  Fixed bug where if given an invalid drive letter on windows
	      ensure dir would go into an infinite loop.

   OTP-10130  Calls to gen_server:enter_loop/4 where ServerName has a
	      global scope and no timeout is given now works correctly.

	      Thanks to Sam Bobroff for reporting the issue.

   OTP-10151  fix escript/primary archive reloading

	      If the mtime of an escript/primary archive file changes after
	      being added to the code path, correctly reload the archive
	      and update the cache. (Thanks to Tuncer Ayaz)

   OTP-10182  Fix bug that in some cases could cause corrupted binaries in
	      ETS tables with compressed option.

   OTP-10188  Fix filename:nativename/1 on Win32

	      Don't choke on paths given as binary argument on Win32.
	      Thanks to Jan Kl�tzke

   OTP-10190  Fix bug in ets:test_ms/2 that could cause emulator crash when
	      using '$_' in match spec.

   OTP-10223  Fix bug where zip archives wrongly have a first disk number
	      set to 1


--- syntax_tools-1.6.9 --------------------------------------------------

   OTP-10208  Syntax Tools 1.6.9

	      Minor bugfixes, spec annotations and documentation cleanup.
	      Thanks to Richard Carlsson


--- test_server-3.5.2 ---------------------------------------------------

    OTP-9896  It is now possible to sort the HTML tables by clicking on the
	      header elements. In order to reset a sorted table, the
	      browser window should simply be refreshed. This feature
	      requires that the browser supports javascript, and has
	      javascript execution enabled. If the 'ct_run -basic_html'
	      flag is used, no javascript code is included in the generated
	      HTML code.

   OTP-10067  Verbosity levels for log printouts has been added. This makes
	      it possible to specify preferred verbosity for different
	      categories of log printouts, as well as general printouts
	      (such as standard IO), to allow control over which strings
	      get printed and which get ignored. New versions of the Common
	      Test logging functions, ct:log, ct:pal and ct:print, have
	      been introduced, with a new Importance argument added. The
	      Importance value is compared to the verbosity level at
	      runtime. More information can be found in the chapter about
	      Logging in the Common Test User's Guide.

   OTP-10074  The Erlang/OTP test runner ts has been extended to allow
	      cross compilation of test suites. To cross compile the test
	      suites first follow the normal cross compilation procedures
	      and release the tests on the build host. Then install ts
	      using an xcomp specification file and compile test suites
	      using ts:compile_testcases/0. For more details see
	      $ERL_TOP/xcomp/README.md.

   OTP-10086  The documentation has been updated with the latest changes
	      for the test_server_ctrl:report/2 function.

   OTP-10172  The ct:get_status/0 function failed to report status if a
	      parallel test case group was running at the time of the call.
	      This has been fixed and the return value for the function has
	      been updated. Please see the ct reference manual for details.


--- tools-2.6.8 ---------------------------------------------------------

   OTP-10091  The last tuple fun call has been removed from fprof.

   OTP-10120  Fix indentation of record fields in Emacs (Thanks to Tomas
	      Abrahamsson)

   OTP-10121  Documentation fixes (Thanks to Ricardo Catalinas Jim�nez )

   OTP-10168  Remove Erlang-specific compilation error regexp in erlang.el

   OTP-10178  Fix highlighting of atoms ending with a dollar sign

	      Like this: 'atom$'. In that example, the last single quote
	      should be recognised as ending the atom. This needs a
	      font-lock workaround similar to the one for strings. Thanks
	      to Magnus Henoch

   OTP-10192  Xref now accepts filenames with character codes greater than
	      126. (Thanks to Emile Joubert for reporting the issue.)

   OTP-10226  Add test_indentation target to lib/tools/emacs/Makefile

	      Automatically indent test.erl.orig, save to test.erl, and
	      compare to test.erl.intended. Thanks to Magnus Henoch.


--- typer-0.9.4 ---------------------------------------------------------

   OTP-10103  Add parallel dialyzer support


--- xmerl-1.3.2 ---------------------------------------------------------

   OTP-10063  Fix a continuation bug when a new block of bytes is to be 
              read during parsing of a default declaration.