Major release  : otp_src_R15B
Build date     : 2011-12-14

R15B is a major new release of Erlang/OTP.
You can download the full source distribution from
 
  http://www.erlang.org/download/otp_src_R15B.tar.gz
  http://www.erlang.org/download/otp_src_R15B.readme (this file)

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

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

The Windows binary distribution can be downloaded from

  http://www.erlang.org/download/otp_win32_R15B.exe
  http://www.erlang.org/download/otp_win64_R15B.exe


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

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

The OTP Team


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

    OTP-4779  == observer ==

	      A new GUI for Observer. Integrating pman, etop, appmon and tv
	      into observer with tracing facilities.

    OTP-7053  == ssl ==

	      The erlang distribution can now be run over the new ssl
	      implementation. All options can currently not be set but it
	      is enough to replace to old ssl implementation.

    OTP-9312  == public_key ssl crypto ==

	      public_key, ssl and crypto now supports PKCS-8

    OTP-9449  == common_test ==

	      Common Test hooks are now in a final supported version. The
	      Common Test hooks allow you to abstract out initialization
	      behaviour that is common to multiple test suites into one
	      place and also extend the behaviour of a suite without
	      changing the suite itself. For more information see the
	      Common Test user's guide.

    OTP-9468  == erts ==

	      Line number and filename information are now included in
	      exception backtraces as a fourth element in the MFA tuple.
	      The information will be pretty-printed by the shell and used
	      by common_test to provide better indication of where a test
	      case.

    OTP-9795  == otp erts ==

	      The driver interface has been changed to enable 64-bit aware
	      drivers. Most importantly the return types for ErlDrvEntry
	      callbacks 'call' and 'control' has ben enlarged which require
	      drivers to be changed or they will cause emulator crashes.
	      See

	      Rewrites for 64-bit driver interface in the driver manual.

	      Due to this driver version management is now mandatory. A
	      driver that is not written with version management or a
	      driver that was compiled with the wrong major version will be
	      not be loaded by the emulator.


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

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9698  Remove exec bit from files: info files, dat, bat Remove exec
	      bit from files related to: XML, make, C Remove exec bit from:
	      erl, hrl, xml, html, asn, gif, xpm (Thanks to Ricardo
	      Catalinas Jim�nez)

    OTP-9787  Improve spelling throughout documentation, code comments and
	      error messages (Thanks to Tuncer Ayaz)

    OTP-9795  The driver interface has been changed to enable 64-bit aware
	      drivers. Most importantly the return types for ErlDrvEntry
	      callbacks 'call' and 'control' has ben enlarged which require
	      drivers to be changed or they will cause emulator crashes.
	      See

	      Rewrites for 64-bit driver interface in the driver manual.

	      Due to this driver version management is now mandatory. A
	      driver that is not written with version management or a
	      driver that was compiled with the wrong major version will be
	      not be loaded by the emulator.

    OTP-9812  Remove unused */doc/src/make.dep files

	      These dependency files was once used when building the
	      documentation, but are no longer needed.


--- appmon-2.1.14 -------------------------------------------------------

    OTP-9810  Eliminate use of deprecated regexp module

    OTP-9813  Miscellaneous documentation build updates


--- asn1-1.6.19 ---------------------------------------------------------

    OTP-9419  The linked-in driver used for ber decode and per encode has
	      been replaced with nifs. To enable the usage of nifs pass the
	      nif option to erlc or asn1rt:compile when compiling. If you
	      previously used the linked-in driver, you have to recompile
	      your ASN1 modules with the current version of asn1
	      application as the linked-in driver modules have been
	      removed.

    OTP-9440  A few of the heavy calculations which are done for encoding
	      and decoding operations when dealing with SEQUENCE OF and
	      DEFAULT in runtime have been moved to be done in compile time
	      instead.

    OTP-9441  When compiling an ASN.1 ber module with the +nif option, the
	      module will use a new nif for ber encoding, increasing
	      performance by about 5%.

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.


--- common_test-1.6 -----------------------------------------------------

    OTP-9156  A Getting Started chapter has been added to the Common Test
	      User's Guide.

    OTP-9235  The test case group info function has been implemented in
	      Common Test. Before execution of a test case group, a call is
	      now made to TestSuite:group(GroupName). The function returns
	      a list of test properties, e.g. to specify timetrap values,
	      require configuration data, etc (analogue to the test suite-
	      and test case info function). The scope of the properties set
	      by group(GroupName) is all test cases and sub-groups of group
	      GroupName.

    OTP-9449  Common Test hooks are now in a final supported version. The
	      Common Test hooks allow you to abstract out initialization
	      behaviour that is common to multiple test suites into one
	      place and also extend the behaviour of a suite without
	      changing the suite itself. For more information see the
	      Common Test user's guide.

    OTP-9543  A new built-in common test hook has been added which captures
	      error_logger and SASL event and prints them in the testcase
	      log. To disable this (and any other built-in hooks) pass
	      'enable_builtin_hooks false' to common test.

    OTP-9569  Common Test now calls info functions also for the
	      init/end_per_suite/1 and init/end_per_group/2 configuration
	      functions. These can be used e.g. to set timetraps and
	      require external configuration data relevant only for the
	      configuration functions in question (without affecting
	      properties set for groups and test cases in the suite). The
	      info function for init/end_per_suite(Config) is
	      init/end_per_suite(), and for
	      init/end_per_group(GroupName,Config) it's
	      init/end_per_group(GroupName). Info functions can not be used
	      with init/end_per_testcase(TestCase, Config), since these
	      configuration functions execute on the test case process and
	      will use the same properties as the test case (i.e.
	      properties set by the test case info function, TestCase()).

    OTP-9676  It's now possible to read the full name of the test case log
	      file during execution. One way to do this is to lookup it up
	      as value of the key tc_logfile in the test case Config list
	      (which means it can also be read by a pre- or post Common
	      Test hook function). The data is also sent with the event
	      #event{name=tc_logfile,data={{Suite,Func},LogFileName}}, and
	      can be read by any installed event handler.

    OTP-9706  The look of the HTML log files generated by Common Test and
	      Test Server has been improved (and made easier to customize)
	      by means of a CSS file.

    OTP-9709  Functions ct:fail(Format, Args) and ct:comment(Format, Args)
	      have been added in order to make printouts of formatted error
	      and comment strings easier (no need for the user to call
	      io_lib:format/2 explicitly).

    OTP-9774  The order in which ct hooks are executed for cleanup hooks
	      (i.e. *_end_per_* hooks) has been reversed.

    OTP-9775  Printouts to stdout may be captured during test case
	      execution. This is useful in order to e.g. read and parse tty
	      printouts from the SUT during test case execution (if
	      necessary, say, to determine the outcome of the test). The
	      capturing session is started with ct:capture_start/0, and
	      stopped with ct:capture_stop/0. The list of buffered strings
	      is read and purged with ct:capture_get/0/1. It's possible to
	      filter out printouts made with ct:log/2/3 and ct:pal/2/3 from
	      the captured list of strings. This is done by calling
	      capture_get/1 with a list of log categories to exclude.

    OTP-9809  The syntax for specifying test case groups in the all/0 list
	      has been extended to include execution properties for both
	      groups and sub-groups. The properties specified in all/0 for
	      a group overrides the properties specified in the group
	      declaration (in groups/0). The main purpose of this extension
	      is to make it possible to run the same set of tests, but with
	      different properties, without having to declare copies of the
	      group in question. Also, the same syntax may be used in test
	      specifications in order to change properties of groups at the
	      time of execution, without having to edit the test suite.
	      Please see the User's Guide for details and examples.


--- compiler-4.8 --------------------------------------------------------

    OTP-9621  Add '-callback' attributes in stdlib's behaviours

	      Replace the behaviour_info(callbacks) export in stdlib's
	      behaviours with -callback' attributes for all the callbacks.
	      Update the documentation with information on the callback
	      attribute Automatically generate 'behaviour_info' function
	      from '-callback' attributes

	      'behaviour_info(callbacks)' is a special function that is
	      defined in a module which describes a behaviour and returns a
	      list of its callbacks.

	      This function is now automatically generated using the
	      '-callback' specs. An error is returned by lint if user
	      defines both '-callback' attributes and the behaviour_info/1
	      function. If no type info is needed for a callback use a
	      generic spec for it. Add '-callback' attribute to language
	      syntax

	      Behaviours may define specs for their callbacks using the
	      familiar spec syntax, replacing the '-spec' keyword with
	      '-callback'. Simple lint checks are performed to ensure that
	      no callbacks are defined twice and all types referred are
	      declared.

	      These attributes can be then used by tools to provide
	      documentation to the behaviour or find discrepancies in the
	      callback definitions in the callback module.

	      Add callback specs into 'application' module in kernel Add
	      callback specs to tftp module following internet
	      documentation Add callback specs to inets_service module
	      following possibly deprecated comments

    OTP-9643  Variables are now now allowed in 'fun M:F/A' as suggested by
	      Richard O'Keefe in EEP-23.

	      The representation of 'fun M:F/A' in the abstract format has
	      been changed in an incompatible way. Tools that directly read
	      or manipulate the abstract format (such as parse transforms)
	      may need to be updated. The compiler can handle both the new
	      and the old format (i.e. extracting the abstract format from
	      a pre-R15 BEAM file and compiling it using compile:forms/1,2
	      will work). The syntax_tools application can also handle both
	      formats.

    OTP-9667  The calculation of the 'uniq' value for a fun (see
	      erlang:fun_info/1) was too weak and has been strengthened. It
	      used to be based on the only the code for the fun body, but
	      it is now based on the MD5 of the BEAM code for the module.

    OTP-9752  filename:find_src/1,2 will now work on stripped BEAM files
	      (reported by Per Hedeland). The HiPE compiler will also work
	      on stripped BEAM files. The BEAM compiler will no longer
	      include compilation options given in the source code itself
	      in M:module_info(compile) (because those options will be
	      applied anyway if the module is re-compiled).

    OTP-9770  Inlining binary matching could cause an internal compiler
	      error. (Thanks to Rene Kijewski for reporting this bug.)


--- cosEvent-2.1.12 -----------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.


--- cosEventDomain-1.1.12 -----------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.


--- cosFileTransfer-1.1.13 ----------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.


--- cosNotification-1.1.18 ----------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.


--- cosProperty-1.1.15 --------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.


--- cosTime-1.1.12 ------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.


--- cosTransactions-1.2.12 ----------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.


--- crypto-2.1 ----------------------------------------------------------

    OTP-9312  public_key, ssl and crypto now supports PKCS-8

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9640  Add DES and Triple DES cipher feedback (CFB) mode functions
	      to crypto. (Thanks to Paul Guyot)

    OTP-9778  Add sha256, sha384 and sha512 support for crypto:rsa_verify.


--- debugger-3.2.7 ------------------------------------------------------

    OTP-9643  Variables are now now allowed in 'fun M:F/A' as suggested by
	      Richard O'Keefe in EEP-23.

	      The representation of 'fun M:F/A' in the abstract format has
	      been changed in an incompatible way. Tools that directly read
	      or manipulate the abstract format (such as parse transforms)
	      may need to be updated. The compiler can handle both the new
	      and the old format (i.e. extracting the abstract format from
	      a pre-R15 BEAM file and compiling it using compile:forms/1,2
	      will work). The syntax_tools application can also handle both
	      formats.

    OTP-9699  Fix "OK" spelling in debugger messages and variables

	      Simple code refactor in the debugger: renames all the
	      occurrences of "Ok" to "OK" in the code, variable names and
	      strings. This improves the consistency of the code and
	      follows the GTK UI where "OK" is always used.(Thanks to
	      Ricardo Catalinas Jim�nez)


--- dialyzer-2.5 --------------------------------------------------------

    OTP-9707  Fix false warning about closure application

	      Whenever a variable that could hold one of two or more
	      possible closures was used in a particular application, the
	      application was assumed to fail if ONE of the closures would
	      fail in this application. This has been corrected to infer
	      failing application if ALL possible closures would fail in
	      the particular application.

	      Change category of 'might also return' warnings

	      Dialyzer emits warnings like the following "The specification
	      for _ states that the function might also return _ but the
	      inferred return is _", which are actually underspecifications
	      and not wrong type specifications. This patch makes sure that
	      they are filed under the appropriate category.

    OTP-9731  Wrap up behaviours patch for Dialyzer

	      Enable warnings by default, add two options for suppressing
	      them

	      Fix warning formatting and update testsuites.

	      Detection of callback-spec discrepancies

	      Allow none() as return value in callbacks

	      Behaviour callback discrepancy detection for Dialyzer

	      Add lookup function for callbacks

	      Store callbacks in codeserver and PLT

	      Collect callback definitions during compilation

	      Update inets results

    OTP-9758  No warnings for underspecs with remote types

	      Fix crash in Typer

	      Fix Dialyzer's warning for its own code

	      Fix Dialyzer's warnings in HiPE

	      Add file/line info in a particular Dialyzer crash

	      Update inets test results

    OTP-9761  Optimize the joining of maps in dialyzer_dataflow.

    OTP-9776  Correct callback spec in application module

	      Refine warning about callback specs with extra ranges

	      Cleanup autoimport compiler directives

	      Fix Dialyzer's warnings in typer

	      Fix Dialyzer's warning for its own code

	      Fix bug in Dialyzer's behaviours analysis

	      Fix crash in Dialyzer

	      Variable substitution was not generalizing any unknown
	      variables.


--- diameter-1.0 --------------------------------------------------------

    OTP-9605  Add support for TLS over TCP.

	      RFC 3588 requires that a Diameter server support TLS. In
	      practice this seems to mean TLS over SCTP since there are
	      limitations with running over SCTP: see RFC 6083 (DTLS over
	      SCTP), which is a response to RFC 3436 (TLS over SCTP). The
	      current RFC 3588 draft acknowledges this by equating TLS with
	      TLS/TCP and DTLS/SCTP.

	      TLS handshaking can take place either following a CER/CEA
	      that negotiates TLS using the Inband-Security-Id AVP (the
	      method documented in RFC 3588) or immediately following
	      connection establishment (the method added to the current
	      draft).

    OTP-9639  Improvements to the dictionary parser.

	      The dictionary parser now emits useful error messages in case
	      of faults in the input file, also identifying the line number
	      at which the fault was detected. There are semantic checks
	      that were missing in the previous parser, a fault in the
	      interpretation of vendor id's in combination with @inherits
	      has been fixed and @end can be used to terminate parsing
	      explicitly instead of always parsing to end of file.

    OTP-9641  Improve dictionary reusability.

	      Reusing a dictionary just to get a different generated module
	      name or prefix previously required taking a copy of the
	      source, which may consist of several files if inheritance is
	      used, just to edit a couple of lines which don't affect the
	      semantics of the Diameter application being defined. Options
	      --name, --prefix and --inherits have been added to diameterc
	      to allow corresponding values to be set at compile time.

    OTP-9654  Add capabilities_cb transport option.

	      Its value is a function that's applied to the transport
	      reference and capabilities record after capabilities
	      exchange. If a callback returns anything but 'ok' then the
	      connection is closed. In the case of an incoming CER, the
	      callback can return a result code with which to answer.
	      Multiple callbacks can be specified and are applied until
	      either all return 'ok' or one doesn't.

	      This provides a way to reject a peer connection.

    OTP-9708  Add @codecs to dictionary format.

	      The semantics are similar to @custom_types but results in
	      codec functions of the form TypeName(encode|decode, AvpName,
	      Data) rather than AvpName(encode|decode, TypeName, Data).
	      That is, the role of the AVP name and Diameter type name are
	      reversed. This eliminates the need for exporting one function
	      for each AVP sharing a common specialized encode/decode.

    OTP-9756  Fix faulty cleanup after diameter:remove_transport/2.

	      Removing a transport removed the configuration but did not
	      prevent the transport process from being restarted.

    OTP-9777  Add #diameter_callback{} for more flexible callback
	      configuration.

	      The record allows individual functions to be configured for
	      each of the diameter_app(3) callbacks, as well as a default
	      callback.


--- edoc-0.7.9.1 --------------------------------------------------------

    OTP-9813  Miscellaneous documentation build updates


--- erl_docgen-0.3 ------------------------------------------------------

    OTP-9614  Bug fixes concerning the generation of manpages.

    OTP-9617  Fix syntax bug in eix files.

    OTP-9721  The docbuilder application is removed in R15 and parts still
	      used in the OTP documentation build process and the DTD
	      documentation is moved to erl_docgen.

    OTP-9759  Bug fix concerning the generation of manpages.

    OTP-9772  Fixed an arity calculation bug for erlang functions in the
	      documentation index for html and pdf.


--- erl_interface-3.7.6 -------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9799  An error when getting global names on OS X Lion has been
	      fixed. The error caused truncated strings to be returned from
	      the function.

    OTP-9810  Eliminate use of deprecated regexp module


--- erts-5.9 ------------------------------------------------------------

    OTP-7687  An option list argument can now be passed to
	      file:read_file_info/2, file:read_link_info/2 and
	      file:write_file_info/3 and set time type information in the
	      call. Valid options are {time, local}, {time, universal} and
	      {time, posix}. In the case of posix time no conversions are
	      made which makes the operation a bit faster.

    OTP-7775  A number of memory allocation optimizations have been
	      implemented. Most optimizations reduce contention caused by
	      synchronization between threads during allocation and
	      deallocation of memory. Most notably:

	      Synchronization of memory management in scheduler specific
	      allocator instances has been rewritten to use lock-free
	      synchronization.

	      Synchronization of memory management in scheduler specific
	      pre-allocators has been rewritten to use lock-free
	      synchronization.

	      The 'mseg_alloc' memory segment allocator now use scheduler
	      specific instances instead of one instance. Apart from
	      reducing contention this also ensures that memory allocators
	      always create memory segments on the local NUMA node on a
	      NUMA system.

    OTP-9014  The ethread atomic memory operations API used by the runtime
	      system has been extended and improved.

	      The ethread library now also performs runtime tests for
	      presence of hardware features, such as for example SSE2
	      instructions, instead of requiring this to be determined at
	      compile time.

	      All uses of the old deprecated atomic API in the runtime
	      system have been replaced with the use of the new atomic API.
	      In a lot of places this change imply a relaxation of memory
	      barriers used.

    OTP-9239  gen_sctp:open/0-2 may now return {error,eprotonosupport} if
	      SCTP is not supported

	      gen_sctp:peeloff/1 has been implemented and creates a
	      one-to-one socket which also are supported now

    OTP-9240  Sendfile has been added to the file module's API. sendfile/2
	      is used to read data from a file and send it to a tcp socket
	      using a zero copying mechanism if available on that OS.

	      Thanks to Tuncer Ayaz and Steve Vinovski for original
	      implementation

    OTP-9389  Honor option packet_size for http packet parsing by both TCP
	      socket and erlang:decode_packet. This gives the ability to
	      accept HTTP headers larger than the default setting, but also
	      avoid DoS attacks by accepting lines only up to whatever
	      length you wish to allow. For consistency, packet type line
	      also honor option packet_size. (Thanks to Steve Vinoski)

    OTP-9392  enif_get_reverse_list function added to nif API. This
	      function should be used to reverse small lists which are deep
	      within other structures making it impractical to do the
	      reverse in Erlang.

    OTP-9394  Fix faulty integer terms created by NIF API from 64-bit
	      integers on halfword emulator. (Thanks to Paolo Negri and
	      Paul Davis)

    OTP-9421  The deprecated concat_binary/1 BIF has been removed. Use
	      list_to_binary or iolist_to_binary/1 instead.

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9468  Line number and filename information are now included in
	      exception backtraces as a fourth element in the MFA tuple.
	      The information will be pretty-printed by the shell and used
	      by common_test to provide better indication of where a test
	      case.

    OTP-9486  All binary constants used to be handled as heap binaries
	      (i.e. the entire binary would be copied when sent to another
	      process). Binary constants larger than 64 bytes are now refc
	      binaries (i.e. the actual data in the binary will not be
	      copied when sent to another process).

    OTP-9497  If a float and an integer is compared, the integer is only
	      converted to a float if the float datatype can contain it.
	      Otherwise the float is converted to an integer.

    OTP-9616  A few contracts in the lists module have been corrected.

    OTP-9624  The Unicode noncharacter code points 16#FFFE and 16#FFFE were
	      not allowed to be encoded or decoded using the unicode module
	      or bit syntax. That was inconsistent with the other
	      noncharacters 16#FDD0 to 16#FDEF that could be
	      encoded/decoded. To resolve the inconsistency, 16#FFFE and
	      16#FFFE can now be encoded and decoded. (Thanks to Alisdair
	      Sullivan.)

    OTP-9629  Add NIF function enif_is_number

	      This function allows for easily determining if a term
	      represents or not a number (integer, float, small or
	      big).(Thanks to Filipe David Manana)

    OTP-9631  The ERTS internal system block functionality has been
	      replaced by new functionality for blocking the system. The
	      old system block functionality had contention issues and
	      complexity issues. The new functionality piggy-backs on
	      thread progress tracking functionality needed by newly
	      introduced lock-free synchronization in the runtime system.
	      When the functionality for blocking the system isn't used,
	      there is more or less no overhead at all. This since the
	      functionality for tracking thread progress is there and
	      needed anyway.

    OTP-9632  An ERTS internal, generic, many to one, lock-free queue for
	      communication between threads has been introduced. The many
	      to one scenario is very common in ERTS, so it can be used in
	      a lot of places in the future. Currently it is used by
	      scheduling of certain jobs, and the async thread pool, but
	      more uses are planned for the future.

	      Drivers using the driver_async functionality are not
	      automatically locked to the system anymore, and can be
	      unloaded as any dynamically linked in driver.

	      Scheduling of ready async jobs is now also interleaved in
	      between other jobs. Previously all ready async jobs were
	      performed at once.

    OTP-9645  Make epp search directory of current file first when
	      including another file This completes a partial fix in R11
	      that only worked for include_lib(). (Thanks to Richard
	      Carlsson)

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.

    OTP-9662  Changed the internal BIF calling convention. Will make
	      simpler faster code and allow BIFs with an arbitrary arity.

    OTP-9668  Fixed memory leak in enif_inspect_io_list_as_binary when
	      applied on a process independent environment.

    OTP-9671  Windows native critical sections are now used internally in
	      the runtime system on Windows as mutex implementation. This
	      since they perform better under extreme contention than our
	      own implementation.

    OTP-9675  Convert some erl_nif macros into inline functions. Allow for
	      better compile time type checking. (Thanks to Tuncer Ayaz)

    OTP-9692  The number of beam catches allowed in code are no longer
	      statically defined and will grow according to its need.

    OTP-9693  Add missing parenthesis in heart doc.

	      Add missing spaces in the Reference Manual distributed
	      section.

	      In the HTML version of the doc those spaces are necessary to
	      separate those words.

    OTP-9695  The +scl command line flag has been added. It can be used for
	      disabling compaction of scheduler load. For more information
	      see the erl(1) documentation.

    OTP-9697  Fixes module erlang doc style: option description (Thanks to
	      Ricardo Catalinas Jim�nez)

    OTP-9701  Specifying a scope to binary:match/3 when using multiple
	      searchstrings resulted in faulty return values. This is now
	      corrected.

    OTP-9705  The runtime system crashed if more than one thread tried to
	      exit the runtime system at the same time.

    OTP-9712  The build system has been updated so that Erlang/OTP can be
	      built on Mac OS X Lion systems without a GCC compiler. The
	      INSTALL guide has been updated with instructions on how to
	      install a GCC compiler and build Erlang/OTP with it, in order
	      to get a run-time system with better performance.

    OTP-9714  Fix documentation for erlang:process_flag/2

	      For the subsection about process_flag(save_calls, N) there's
	      an unrelated paragraph about process priorities which was
	      copied from the preceeding subsection regarding
	      process_flag(priority, Level). (Thanks to Filipe David
	      Manana)

    OTP-9720  When loading a module, the system use to run on a single
	      scheduler during the entire loading process. This has been
	      changed to only take down the system just before inserting
	      the loaded code into the system tables, resulting in a much
	      shorter disruption if a module is loaded in a busy system.
	      (Suggested by Bob Ippolito.)

    OTP-9724  Possible to run HiPE without floating point exceptions (FPE).
	      Useful on platforms that lack reliable FPE. Slower float
	      operations compared to HiPE with FPE.

    OTP-9726  As of ERTS version 5.9 (OTP-R15B) the runtime system will by
	      default not bind schedulers to logical processors.

	      If the Erlang runtime system is the only operating system
	      process that binds threads to logical processors, this
	      improves the performance of the runtime system. However, if
	      other operating system processes (as for example another
	      Erlang runtime system) also bind threads to logical
	      processors, there might be a performance penalty instead. In
	      some cases this performance penalty might be severe. Due to
	      this, we change the default so that the user must make an
	      active decision in order to bind schedulers.

    OTP-9727  Calls to erlang:system_flag(schedulers_online, N) and/or
	      erlang:system_flag(multi_scheduling, block|unblock) could
	      cause internal data used by this functionality to get into an
	      inconsistent state. When this happened various problems
	      occurred. This bug was quite hard to trigger, so hopefully
	      no-one has been effected by it.

	      A spinlock used by the run-queue management sometimes got
	      heavily contended. This code has now been rewritten, and the
	      spinlock has been removed.

    OTP-9749  The use of erlang:system_flag(scheduler_bind_type, _) and
	      erlang:system_flag(cpu_topology, _) have been deprecated and
	      scheduled for removal in erts-5.10/OTP-R16. For more
	      information see the documentation of erlang:system_flag/2.

    OTP-9766  An ancient workaround for a Windows bug was removed from the
	      open_port code, open_port({spawn,...}...) is now faster.
	      Thanks to Daniel Goertzen.

    OTP-9767  The use of deprecated 32bit time_t on 32bit Windows is
	      removed.

    OTP-9771  The NIF reload mechanism is deprecated. Do not use it as an
	      upgrade method for live production systems. It might be
	      removed in future releases. It can still serve as a
	      development feature but a warning message will be logged each
	      time it is used.

    OTP-9795  The driver interface has been changed to enable 64-bit aware
	      drivers. Most importantly the return types for ErlDrvEntry
	      callbacks 'call' and 'control' has ben enlarged which require
	      drivers to be changed or they will cause emulator crashes.
	      See

	      Rewrites for 64-bit driver interface in the driver manual.

	      Due to this driver version management is now mandatory. A
	      driver that is not written with version management or a
	      driver that was compiled with the wrong major version will be
	      not be loaded by the emulator.

    OTP-9810  Eliminate use of deprecated regexp module

    OTP-9818  Use libdlpi to get physical address (Thanks to Trond Norbye)


--- eunit-2.2.2 ---------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.


--- gs-1.5.15 -----------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9810  Eliminate use of deprecated regexp module


--- hipe-3.9 ------------------------------------------------------------

    OTP-9724  Possible to run HiPE without floating point exceptions (FPE).
	      Useful on platforms that lack reliable FPE. Slower float
	      operations compared to HiPE with FPE.

    OTP-9751  HiPE compiler: The possibility to compile and load selected
	      functions from a module has been removed.

    OTP-9752  filename:find_src/1,2 will now work on stripped BEAM files
	      (reported by Per Hedeland). The HiPE compiler will also work
	      on stripped BEAM files. The BEAM compiler will no longer
	      include compilation options given in the source code itself
	      in M:module_info(compile) (because those options will be
	      applied anyway if the module is re-compiled).

    OTP-9758  No warnings for underspecs with remote types

	      Fix crash in Typer

	      Fix Dialyzer's warning for its own code

	      Fix Dialyzer's warnings in HiPE

	      Add file/line info in a particular Dialyzer crash

	      Update inets test results

    OTP-9768  Optimize erl_types:t_unify().

    OTP-9776  Correct callback spec in application module

	      Refine warning about callback specs with extra ranges

	      Cleanup autoimport compiler directives

	      Fix Dialyzer's warnings in typer

	      Fix Dialyzer's warning for its own code

	      Fix bug in Dialyzer's behaviours analysis

	      Fix crash in Dialyzer

	      Variable substitution was not generalizing any unknown
	      variables.


--- ic-4.2.28 -----------------------------------------------------------

    OTP-9630  Incorrect use of ets:match changed to ets:match_object.


--- ic-4.2.29 -----------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9630  Incorrect use of ets:match changed to ets:match_object.


--- inets-5.7.2 ---------------------------------------------------------

    OTP-9655  [httpd] XSS prevention did not work for hex-encoded URL's. 

    OTP-9674  [httpd] GET request with malformed header date caused server 
              crash (non-fatal) with no reply to client. Will now result 
              in a reply with status code 400.


--- inets-5.8 -----------------------------------------------------------

    OTP-9359  [httpc] Deprecated interface module http has been removed. It
	      has (long been) replaced by http client interface module
	      httpc.

    OTP-9522  [httpc|httpd] The old ssl implementation (based on OpenSSL),
	      has been deprecated. The config option that specified usage
	      of this version of the ssl app, *ossl*, has been removed.

    OTP-9545  [ftpc] Add a config option to specify a data connect timeout.
	      That is how long the ftp client will wait for the server to
	      connect to the data socket. If this timeout occurs, an error
	      will be returned to the caller and the ftp client process
	      will be terminated.

    OTP-9621  Add '-callback' attributes in stdlib's behaviours

	      Replace the behaviour_info(callbacks) export in stdlib's
	      behaviours with -callback' attributes for all the callbacks.
	      Update the documentation with information on the callback
	      attribute Automatically generate 'behaviour_info' function
	      from '-callback' attributes

	      'behaviour_info(callbacks)' is a special function that is
	      defined in a module which describes a behaviour and returns a
	      list of its callbacks.

	      This function is now automatically generated using the
	      '-callback' specs. An error is returned by lint if user
	      defines both '-callback' attributes and the behaviour_info/1
	      function. If no type info is needed for a callback use a
	      generic spec for it. Add '-callback' attribute to language
	      syntax

	      Behaviours may define specs for their callbacks using the
	      familiar spec syntax, replacing the '-spec' keyword with
	      '-callback'. Simple lint checks are performed to ensure that
	      no callbacks are defined twice and all types referred are
	      declared.

	      These attributes can be then used by tools to provide
	      documentation to the behaviour or find discrepancies in the
	      callback definitions in the callback module.

	      Add callback specs into 'application' module in kernel Add
	      callback specs to tftp module following internet
	      documentation Add callback specs to inets_service module
	      following possibly deprecated comments

    OTP-9628  [httpc] Wrong Host header in IPv6 HTTP requests. When a URI
	      with a IPv6 host is parsed, the brackets that encapsulates
	      the address part is removed. This value is then supplied as
	      the host header. This can cause problems with some servers. A
	      workaround for this is to use headers_as_is and provide the
	      host header with the request call. To solve this a new option
	      has been added, ipv6_host_with_brackets. This option
	      specifies if the host value of the host header shall include
	      the brackets or not. By default, it does not (as before).

    OTP-9655  [httpd] XSS prevention did not work for hex-encoded URL's.

    OTP-9674  [httpd] GET request with malformed header date caused server
	      crash (non-fatal) with no reply to client. Will now result in
	      a reply with status code 400.

    OTP-9715  [httpd] Fix logging of content length in mod_log. Garrett
	      Smith

    OTP-9733  [httpd] Sometimes entries in the transfer log was written
	      with the message size as list of numbers. This list was
	      actually the size as a string, e.g. "123", written with the
	      control sequence ~w. This has now been corrected so that any
	      string is converted to an integer (if possible).

    OTP-9736  Fixed various problems detected by Dialyzer.


--- inviso-0.6.3 --------------------------------------------------------

    OTP-9798  The inviso application has been deprecated and will be
	      removed in the R16 release.

    OTP-9810  Eliminate use of deprecated regexp module


--- jinterface-1.5.5 ----------------------------------------------------

    OTP-9806  JInterface: improve OtpOutputStream buffer allocation

	      Previously, the buffer was increased linearly by 2048 bytes.
	      I now propose to use an exponential increase function
	      (similar to Javas ArrayList, e.g. always at least +50%). This
	      significantly increases performance of e.g. doRPC for large
	      parameters. (Thanks to Nico Kruber)


--- kernel-2.15 ---------------------------------------------------------

    OTP-7687  An option list argument can now be passed to
	      file:read_file_info/2, file:read_link_info/2 and
	      file:write_file_info/3 and set time type information in the
	      call. Valid options are {time, local}, {time, universal} and
	      {time, posix}. In the case of posix time no conversions are
	      made which makes the operation a bit faster.

    OTP-9023  file:list_dir/1,2 will now fill an buffer entire with
	      filenames from the efile driver before sending it to an
	      erlang process. This will speed up this file operation in
	      most cases.

    OTP-9212  Calls to global:whereis_name/1 have been substituted for
	      calls to global:safe_whereis_name/1 since the latter is not
	      safe at all.

	      The reason for not doing this earlier is that setting a
	      global lock masked out a bug concerning the restart of
	      supervised children. The bug has now been fixed by a
	      modification of global:whereis_name/1. (Thanks to Ulf Wiger
	      for code contribution.)

	      A minor race conditions in gen_fsm:start* has been fixed: if
	      one of these functions returned {error, Reason} or ignore,
	      the name could still be registered (either locally or in
	      global. (This is the same modification as was done for
	      gen_server in OTP-7669.)

	      The undocumented function global:safe_whereis_name/1 has been
	      removed.

    OTP-9239  gen_sctp:open/0-2 may now return {error,eprotonosupport} if
	      SCTP is not supported

	      gen_sctp:peeloff/1 has been implemented and creates a
	      one-to-one socket which also are supported now

    OTP-9240  Sendfile has been added to the file module's API. sendfile/2
	      is used to read data from a file and send it to a tcp socket
	      using a zero copying mechanism if available on that OS.

	      Thanks to Tuncer Ayaz and Steve Vinovski for original
	      implementation

    OTP-9389  Honor option packet_size for http packet parsing by both TCP
	      socket and erlang:decode_packet. This gives the ability to
	      accept HTTP headers larger than the default setting, but also
	      avoid DoS attacks by accepting lines only up to whatever
	      length you wish to allow. For consistency, packet type line
	      also honor option packet_size. (Thanks to Steve Vinoski)

    OTP-9508  disk_log:reopen/2,3 and disk_log:breopen/3 could return the
	      error reason from file:rename/2 rather than the reason
	      {file_error, Filename, Reason}. This bug has been fixed.

	      The message {disk_log, Node, {error, disk_log_stopped}} which
	      according the documentation is sent upon failure to truncate
	      or reopen a disk log was sometimes turned into a reply. This
	      bug has been fixed.

    OTP-9540  Environment variable 'shutdown_timeout' is added to kernel
	      application. Earlier, application_controller would hang
	      forever if an application top supervisor did not terminate
	      upon a shutdown request. If this new environment variable is
	      set to a positive integer T, then application controller will
	      now give up after T milliseconds and instead brutally kill
	      the application. For backwards compatibility, the default
	      value for shutdown_timeout is 'infinity'.

    OTP-9621  Add '-callback' attributes in stdlib's behaviours

	      Replace the behaviour_info(callbacks) export in stdlib's
	      behaviours with -callback' attributes for all the callbacks.
	      Update the documentation with information on the callback
	      attribute Automatically generate 'behaviour_info' function
	      from '-callback' attributes

	      'behaviour_info(callbacks)' is a special function that is
	      defined in a module which describes a behaviour and returns a
	      list of its callbacks.

	      This function is now automatically generated using the
	      '-callback' specs. An error is returned by lint if user
	      defines both '-callback' attributes and the behaviour_info/1
	      function. If no type info is needed for a callback use a
	      generic spec for it. Add '-callback' attribute to language
	      syntax

	      Behaviours may define specs for their callbacks using the
	      familiar spec syntax, replacing the '-spec' keyword with
	      '-callback'. Simple lint checks are performed to ensure that
	      no callbacks are defined twice and all types referred are
	      declared.

	      These attributes can be then used by tools to provide
	      documentation to the behaviour or find discrepancies in the
	      callback definitions in the callback module.

	      Add callback specs into 'application' module in kernel Add
	      callback specs to tftp module following internet
	      documentation Add callback specs to inets_service module
	      following possibly deprecated comments

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.

    OTP-9673  make tab completion work in remote shells (Thanks to Mats
	      Cronqvist)

    OTP-9693  Add missing parenthesis in heart doc.

	      Add missing spaces in the Reference Manual distributed
	      section.

	      In the HTML version of the doc those spaces are necessary to
	      separate those words.

    OTP-9713  Fixes net_kernel:get_net_ticktime() doc

	      Adds missing description when `ignored' is returned. (Thanks
	      to Ricardo Catalinas Jim�nez )

    OTP-9764  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. In order to remedy the
	      situation a (small) limit on the amount of data that is
	      collected before writing to disk has been introduced.

    OTP-9776  Correct callback spec in application module

	      Refine warning about callback specs with extra ranges

	      Cleanup autoimport compiler directives

	      Fix Dialyzer's warnings in typer

	      Fix Dialyzer's warning for its own code

	      Fix bug in Dialyzer's behaviours analysis

	      Fix crash in Dialyzer

	      Variable substitution was not generalizing any unknown
	      variables.

    OTP-9785  Fix a crash when file:change_time/2,3 are called with invalid
	      dates

	      Calling file:change_time/2,3 with an invalid date tuple (e.g
	      file:change_time("file.txt", {undefined, undefined})) will
	      cause file_server_2 to crash. error_logger will shutdown and
	      the whole VM will stop. Change behavior to validate given
	      dates on system boundaries. (i.e before issuing a server
	      call).(Thanks to Ahmed Omar)


--- megaco-3.16 ---------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9672  The encoding and decoding algorithms now use nifs instead of
	      a linked-in driver.

    OTP-9679  The profiling test tool has been rewritten. H�kan Mattsson.


--- mnesia-4.5.1 --------------------------------------------------------

    OTP-9657  Allow schema operations when using different mnesia versions. 

    OTP-9689  Fix deadlock in mnesia:del_table_copy/2.


--- mnesia-4.6 ----------------------------------------------------------

    OTP-8970  Implemented a new option to mnesia:create_table/2 which
	      allows the user to assign 'ets' and 'dets' options not
	      available in mnesia.

    OTP-9657  Allow schema operations when using different mnesia versions.

    OTP-9722  Reduce calls to phash in key_to_frag_number

	      Original code calls phash 1..2 times, based on which fragment
	      the hashed key targets and how many fragments exist. New code
	      always calls phash only once.

	      Add mnesia_frag_hash test (Thanks to Philip Robinson)

    OTP-9786  Fixed a sticky lock bug which caused mnesia:read(Tab, Key,
	      write) return undefined.

    OTP-9804  Use the synchronous log_terms instead of alog_terms in
	      mnesia_log:ets2dcd()

	      This avoids the situation where mnesia could dump a very
	      large ets table in its entirety into the message queue of the
	      disk_log process, causing memory blowup and choking the disk
	      logger. (Thanks to Richard Carlsson)


--- observer-1.0 --------------------------------------------------------

    OTP-4779  A new GUI for Observer. Integrating pman, etop, appmon and tv
	      into observer with tracing facilities.

    OTP-9403  The following new features are added to ttb:

	      A one-command trace setup is added, ttb:start_trace/4. The
	      following new options are added to ttb:tracer/2:

	      shell - Show trace messages on the console in real time timer
	      - Time constrained tracing overload - Overload protection
	      flush - Flush file trace port buffers with given frequency
	      resume - Automatically resume tracing after node restart

	      A new shortcut is added for common tracer settings similar to
	      using the dbg module directly, ttb:tracer(shell | dbg).

	      Some shortcuts are added for commonly used match
	      specifications in ttb:tp and ttb:tpl.

	      The Options argument to functions ttb:tracer,
	      ttb:write_config, ttb:stop and ttb:format may now be one
	      single option instead of a list.

	      The history buffer of the last trace is now always
	      automatically dumped to the file ttb_last_config when
	      ttb:stop is called.

	      The following new options are added to ttb:stop/1:

	      fetch_dir - Specify where to store fetched logs
	      {format,FormatOpts} - Specify options to use when formatting
	      the fetched logs return_fetch_dir - Indicate that the return
	      value from ttb:stop/1 should include the name of the
	      directory where the fetched logs are stored

	      The option disable_sort is added to ttb:format/2. When this
	      option is used, trace messages from different logs are not
	      merged according to timestamps, but just appended one log
	      after the other.

    OTP-9430  The following non backwards compatible changes are done in
	      ttb:

	      When setting up trace with ttb, the 'timestamp' trace flag
	      will now always be set.

	      The 'fetch' option to ttb:stop/1 is removed since it is now
	      default behavior that trace logs are fetched when stopping
	      ttb. Fetching can be disabled with the 'nofetch' option to
	      ttb:stop/1.

	      The name of the upload directory is changed from
	      ttb_upload-Timestamp to ttb_upload_FileName-Timestamp.

	      To format the output using 'et', you now need to provide the
	      option {handler,ttb:get_et_handler()} instead of
	      {handler,et}.

	      When formatting a trace log, the handler state was earlier
	      reset after each trace file, this is now changed so the
	      handler state is passed not only from one trace message to
	      the next in the same file, but also from one file to the
	      next.

    OTP-9431  The following bugs in ttb have been corrected:

	      ttb:tracer/2 would earlier crash when trying to set up
	      tracing for a diskless node to wrap files, i.e. when option
	      {file,{local,{wrap,Filename,Size,Count}}} was used.
	      ttb:stop([fetch]) would sometimes silently fail if multiple
	      nodes with different current working directories were traced.
	      ttb:stop([fetch]) would crash if the tracer was started with
	      option {file,{local,Filename}} A deadlock would sometimes
	      occur due to an information printout from the ttb_control
	      process when ttb was stopped.

    OTP-9665  The file trace port to which the IP trace client relays all
	      traces from diskless nodes was not flushed and closed
	      properly on ttb:stop. This has been corrected.


--- odbc-2.10.12 --------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9716  An ODBC process should exit normally if its client exits with
	      'shutdown'

	      There is nothing strange about the client shutting down, so
	      the ODBC process should exit normally to avoid generating a
	      crash report for a non-problem. (Thanks to Magnus Henoch)


--- orber-3.6.23 --------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9728  Remove usage of ssl:seed/1 in orber test cases.

    OTP-9773  The SSL option handling has been changed. There are now two
	      new orber options ssl_server_options and ssl_client_options
	      which takes a list of options to the socket.

	      The old options are now deprecated and removed from the
	      documentation but they can still be used for backward
	      compatibility as long as the two new options not are used.

	      If ssl_server_options and ssl_client_options contain an TCP
	      option that orber needs to set to a specific value it will be
	      skipped and a warning will be written to the error_log.


--- os_mon-2.2.8 --------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.


--- otp_mibs-1.0.7 ------------------------------------------------------

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.


--- parsetools-2.0.7 ----------------------------------------------------

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.


--- percept-0.8.6.1 -----------------------------------------------------

    OTP-9813  Miscellaneous documentation build updates


--- pman-2.7.1.1 --------------------------------------------------------

    OTP-9813  Miscellaneous documentation build updates


--- public_key-0.14 -----------------------------------------------------

    OTP-9312  public_key, ssl and crypto now supports PKCS-8

    OTP-9414  The asn1 decoder/encoder now uses a runtime nif from the asn1
	      application if it is available.


--- reltool-0.5.7.1 -----------------------------------------------------

    OTP-9742  Added recommendation about RootDir parameter to
	      reltool:eval_target_spec/3.


--- runtime_tools-1.8.7 -------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9458  Two new built-in trace pattern aliases have been added:
	      caller_trace (c) and caller_exception_trace (cx). See the
	      dbg:ltp/0 documentation for more info.

    OTP-9651  Earlier dbg:stop only did erlang:trace_delivered and did not
	      flush the trace file driver. Therefore there could still be
	      trace messages that were delivered to the driver (guaranteed
	      by erlang:trace_delivered) but not yet written to the file
	      when dbg:stop returned. Flushing is now added on each node
	      before the dbg process terminates.

    OTP-9658  File handles created by the trace_file_drv driver was
	      inherited to child processes. This is now corrected.


--- sasl-2.2 ------------------------------------------------------------

    OTP-9438  Fix the mechanism for upgrading emulator.

	      The appup files for kernel, stdlib and sasl do now recognize
	      two major releases back and include a 'restart_new_emulator'
	      instruction. 

	      Appup files can include regular expressions for matching
	      earlier releases.

	      The mechanism for upgrading the emulator is changed so
	      'restart_new_emulator' will be the first instruction
	      executed. The rest of the upgrade instruction will be
	      executed after the emulator restart.

	      A new upgrade instruction 'restart_emulator' is added for the
	      case where the emulator shall be restarted after all other
	      upgrade instructions.

    OTP-9717  Add release_handler:which_releases/1

	      This is an extension to which_releases that allows a user to
	      specify the status of the releases they wish to be returned.
	      For instance it allows for quickly determining which release
	      is 'permanent' without the need of parsing the entire release
	      list. (Thanks to Joe Williams)

    OTP-9746  Add copy of rel file in releases/Vsn in release tar file

	      systool:make_tar stores the rel file in the releases
	      directory. When unpacking with
	      release_handler:unpack_release, the file is automatically
	      moved to releases/Vsn/. If, however, the tar file is unpacked
	      manually, the rel file might not be moved, and the next
	      release unpacked might overwrite the rel file. To overcome
	      this, systools:make_tar now stores a copy of the rel file in
	      releases/Vsn/ directly and it is not longer necessary to move
	      the file after unpacking.

	      The reason for keeping the file in the releases directory
	      also is that is needs to be extracted separately before the
	      release version (Vsn) is known.


--- snmp-4.21.2 ---------------------------------------------------------

    OTP-9690  Bad note store GC timer deactivation. Wrong field in the 
              state record was set (timeout instead active). Stefan Grundmann


--- snmp-4.21.3 ---------------------------------------------------------

    OTP-9618  [compiler] Improved version info printout from the MIB compiler 
              frontend escript. 

    OTP-9718  [compiler] Fix the --warnings/--W option parsing in the 
              snmpc wrapper script. The short warning option was incorrectly 
              '--w', instead of as documented '--W'. This has now been 
              corrected. Tuncer Ayaz 

    OTP-9745  [agent] Version 4.20 introduced a change that broke trap 
              sending from subagents. Due to a bug in the test code, this 
              was not discovered, until that bug was fixed. 

    OTP-9747  [agent] When sending an error message (reply) regarding 
              snmpUnknownPDUHandlers, the agent used the wrong OID.


--- snmp-4.21.4 ---------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9618  [compiler] Improved version info printout from the MIB
	      compiler frontend escript.

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.

    OTP-9690  Bad note store GC timer deactivation. Wrong field in the
	      state record was set (timeout instead active). Stefan
	      Grundmann

    OTP-9718  [compiler] Fix the --warnings/--W option parsing in the snmpc
	      wrapper script. The short warning option was incorrectly
	      '--w', instead of as documented '--W'. This has now been
	      corrected. Tuncer Ayaz

    OTP-9745  [agent] Version 4.20 introduced a change that broke trap
	      sending from subagents. Due to a bug in the test code, this
	      was not discovered, until that bug was fixed.

    OTP-9747  [agent] When sending an error message (reply) regarding
	      snmpUnknownPDUHandlers, the agent used the wrong OID.

    OTP-9748  [agent] An error in the tests suite masked errors in the
	      agent.

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


--- ssh-2.0.9 -----------------------------------------------------------

    OTP-9451  Erlang/OTP can now be built using parallel make if you limit
	      the number of jobs, for instance using 'make -j6' or 'make
	      -j10'. 'make -j' does not work at the moment because of some
	      missing dependencies.

    OTP-9796  Ssh behaviours now use the new directive "-callback".
	      Parameters will be further specified in a later version of
	      ssh.


--- ssl-5.0 -------------------------------------------------------------

    OTP-7048  Support for the old ssl implementation is dropped and the
	      code is removed.

    OTP-7053  The erlang distribution can now be run over the new ssl
	      implementation. All options can currently not be set but it
	      is enough to replace to old ssl implementation.

    OTP-9312  public_key, ssl and crypto now supports PKCS-8

    OTP-9683  Implements a CBC timing attack counter measure. Thanks to
	      Andreas Schultz for providing the patch.

    OTP-9696  Invalidation handling of sessions could cause the time_stamp
	      field in the session record to be set to undefined crashing
	      the session clean up process. This did not affect the
	      connections but would result in that the session table would
	      grow.

    OTP-9703  Changed code to use ets:foldl and throw instead of ets:next
	      traversal, avoiding the need to explicitly call
	      ets:safe_fixtable. It was possible to get a badarg-crash
	      under special circumstances.

    OTP-9734  Send ssl_closed notification to active ssl user when a tcp
	      error occurs.

    OTP-9739  Mitigates an SSL/TLS Computational DoS attack by disallowing
	      the client to renegotiate many times in a row in a short time
	      interval, thanks to Tuncer Ayaz for alerting us about this.

    OTP-9744  If a passive receive was ongoing during a renegotiation the
	      process evaluating ssl:recv could be left hanging for ever.

    OTP-9750  Implements the 1/n-1 splitting countermeasure to the Rizzo
	      Duong BEAST attack, affects SSL 3.0 and TLS 1.0. Thanks to
	      Tuncer Ayaz for alerting us about this.


--- stdlib-1.18 ---------------------------------------------------------

    OTP-8713  Improved algorithm in module random. Avoid seed values that
	      are even divisors of the primes and by that prevent getting
	      sub-seeds that are stuck on zero. Worst case was
	      random:seed(0,0,0) that produced a series of only zeros. This
	      is an incompatible change in the sense that applications that
	      relies on reproducing a specific series for a given seed will
	      fail. The pseudo random output is still deterministic but
	      different compared to earlier versions.

    OTP-9212  Calls to global:whereis_name/1 have been substituted for
	      calls to global:safe_whereis_name/1 since the latter is not
	      safe at all.

	      The reason for not doing this earlier is that setting a
	      global lock masked out a bug concerning the restart of
	      supervised children. The bug has now been fixed by a
	      modification of global:whereis_name/1. (Thanks to Ulf Wiger
	      for code contribution.)

	      A minor race conditions in gen_fsm:start* has been fixed: if
	      one of these functions returned {error, Reason} or ignore,
	      the name could still be registered (either locally or in
	      global. (This is the same modification as was done for
	      gen_server in OTP-7669.)

	      The undocumented function global:safe_whereis_name/1 has been
	      removed.

    OTP-9222  If a child of a supervisor terminates with reason
	      {shutdown,Term} it is now handled by the supervisor as if the
	      reason was 'shutdown'. 

	      For children with restart type 'permanent', this implies no
	      change. For children with restart type 'transient', the child
	      will no longer be restarted and no supervisor report will be
	      written. For children with restart type 'temporary', no
	      supervisor report will be written.

    OTP-9381  Minor improvement of documentation regarding supervisor
	      restart strategy for temporary and transient child processes.

    OTP-9607  A Dets table with sufficiently large buckets could not always
	      be repaired. This bug has been fixed.

	      The format of Dets files has been modified. When downgrading
	      tables created with the new system will be repaired.
	      Otherwise the modification should not be noticeable.

    OTP-9616  A few contracts in the lists module have been corrected.

    OTP-9621  Add '-callback' attributes in stdlib's behaviours

	      Replace the behaviour_info(callbacks) export in stdlib's
	      behaviours with -callback' attributes for all the callbacks.
	      Update the documentation with information on the callback
	      attribute Automatically generate 'behaviour_info' function
	      from '-callback' attributes

	      'behaviour_info(callbacks)' is a special function that is
	      defined in a module which describes a behaviour and returns a
	      list of its callbacks.

	      This function is now automatically generated using the
	      '-callback' specs. An error is returned by lint if user
	      defines both '-callback' attributes and the behaviour_info/1
	      function. If no type info is needed for a callback use a
	      generic spec for it. Add '-callback' attribute to language
	      syntax

	      Behaviours may define specs for their callbacks using the
	      familiar spec syntax, replacing the '-spec' keyword with
	      '-callback'. Simple lint checks are performed to ensure that
	      no callbacks are defined twice and all types referred are
	      declared.

	      These attributes can be then used by tools to provide
	      documentation to the behaviour or find discrepancies in the
	      callback definitions in the callback module.

	      Add callback specs into 'application' module in kernel Add
	      callback specs to tftp module following internet
	      documentation Add callback specs to inets_service module
	      following possibly deprecated comments

    OTP-9622  If a Dets table had been properly closed but the space
	      management data could not been read, it was not possible to
	      repair the file. This bug has been fixed.

    OTP-9624  The Unicode noncharacter code points 16#FFFE and 16#FFFE were
	      not allowed to be encoded or decoded using the unicode module
	      or bit syntax. That was inconsistent with the other
	      noncharacters 16#FDD0 to 16#FDEF that could be
	      encoded/decoded. To resolve the inconsistency, 16#FFFE and
	      16#FFFE can now be encoded and decoded. (Thanks to Alisdair
	      Sullivan.)

    OTP-9637  Fix a few tests that used to fail on the HiPE platform.

    OTP-9643  Variables are now now allowed in 'fun M:F/A' as suggested by
	      Richard O'Keefe in EEP-23.

	      The representation of 'fun M:F/A' in the abstract format has
	      been changed in an incompatible way. Tools that directly read
	      or manipulate the abstract format (such as parse transforms)
	      may need to be updated. The compiler can handle both the new
	      and the old format (i.e. extracting the abstract format from
	      a pre-R15 BEAM file and compiling it using compile:forms/1,2
	      will work). The syntax_tools application can also handle both
	      formats.

    OTP-9645  Make epp search directory of current file first when
	      including another file This completes a partial fix in R11
	      that only worked for include_lib(). (Thanks to Richard
	      Carlsson)

    OTP-9646  ms_transform: Fix incorrect `variable shadowed' warnings

	      This patch removes incorrect passing of variable bindings
	      from one function clause to another. (Thanks to Haitao Li)

    OTP-9647  Explicitly kill dynamic children in supervisors

	      According to the supervisor's documentation: "Important note
	      on simple-one-for-one supervisors: The dynamically created
	      child processes of a simple-one-for-one supervisor are not
	      explicitly killed, regardless of shutdown strategy, but are
	      expected to terminate when the supervisor does (that is, when
	      an exit signal from the parent process is received)."

	      All is fine as long as we stop simple_one_for_one supervisor
	      manually. Dynamic children catch the exit signal from the
	      supervisor and leave. But, if this happens when we stop an
	      application, after the top supervisor has stopped, the
	      application master kills all remaining processes associated
	      to this application. So, dynamic children that trap exit
	      signals can be killed during their cleanup (here we mean
	      inside terminate/2). This is unpredictable and highly
	      time-dependent.

	      In this commit, supervisor module is patched to explicitly
	      terminate dynamic children accordingly to the shutdown
	      strategy.

	      NOTE: Order in which dynamic children are stopped is not
	      defined. In fact, this is "almost" done at the same time.

	      Stack errors when dynamic children are stopped

	      Because a simple_one_for_one supervisor can have many
	      workers, we stack errors during its shutdown to report only
	      one message for each encountered error type. Instead of
	      reporting the child's pid, we use the number of concerned
	      children. (Thanks to Christopher Faulet)

    OTP-9648  Allow an infinite timeout to shutdown worker processes

	      Now, in child specification, the shutdown value can also be
	      set to infinity for worker children. This restriction was
	      removed because this is not always possible to predict the
	      shutdown time for a worker. This is highly
	      application-dependent. Add a warning to docs about workers'
	      shutdown strategy (Thanks to Christopher Faulet)

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.

    OTP-9669  A badarg would sometimes occur in supervisor when printing
	      error reports and the child pid was undefined. This has been
	      corrected.

    OTP-9691  Fix re:split spec not to accept option 'global'(Thanks to
	      Shunichi Shinohara)

    OTP-9737  The deprecated 'regexp' module has been removed. Use the 're'
	      module instead.

    OTP-9752  filename:find_src/1,2 will now work on stripped BEAM files
	      (reported by Per Hedeland). The HiPE compiler will also work
	      on stripped BEAM files. The BEAM compiler will no longer
	      include compilation options given in the source code itself
	      in M:module_info(compile) (because those options will be
	      applied anyway if the module is re-compiled).


--- syntax_tools-1.6.7.2 ------------------------------------------------

    OTP-9643  Variables are now now allowed in 'fun M:F/A' as suggested by
	      Richard O'Keefe in EEP-23.

	      The representation of 'fun M:F/A' in the abstract format has
	      been changed in an incompatible way. Tools that directly read
	      or manipulate the abstract format (such as parse transforms)
	      may need to be updated. The compiler can handle both the new
	      and the old format (i.e. extracting the abstract format from
	      a pre-R15 BEAM file and compiling it using compile:forms/1,2
	      will work). The syntax_tools application can also handle both
	      formats.

    OTP-9810  Eliminate use of deprecated regexp module


--- test_server-3.5 -----------------------------------------------------

    OTP-9235  The test case group info function has been implemented in
	      Common Test. Before execution of a test case group, a call is
	      now made to TestSuite:group(GroupName). The function returns
	      a list of test properties, e.g. to specify timetrap values,
	      require configuration data, etc (analogue to the test suite-
	      and test case info function). The scope of the properties set
	      by group(GroupName) is all test cases and sub-groups of group
	      GroupName.

    OTP-9706  The look of the HTML log files generated by Common Test and
	      Test Server has been improved (and made easier to customize)
	      by means of a CSS file.


--- toolbar-1.4.2.1 -----------------------------------------------------

    OTP-9813  Miscellaneous documentation build updates


--- tools-2.6.6.6 -------------------------------------------------------

    OTP-9643  Variables are now now allowed in 'fun M:F/A' as suggested by
	      Richard O'Keefe in EEP-23.

	      The representation of 'fun M:F/A' in the abstract format has
	      been changed in an incompatible way. Tools that directly read
	      or manipulate the abstract format (such as parse transforms)
	      may need to be updated. The compiler can handle both the new
	      and the old format (i.e. extracting the abstract format from
	      a pre-R15 BEAM file and compiling it using compile:forms/1,2
	      will work). The syntax_tools application can also handle both
	      formats.

    OTP-9649  Tuple funs (a two-element tuple with a module name and a
	      function) are now officially deprecated and will be removed
	      in R16. Use 'fun M:F/A' instead. To make you aware that your
	      system uses tuple funs, the very first time a tuple fun is
	      applied, a warning will be sent to the error logger.

    OTP-9656  Update system profiling principles to reflect eprof
	      performance improvements.

    OTP-9694  [cover] fix leftover {'DOWN', ..} msg in callers queue

	      After stopping cover with cover:stop() there could still be a
	      {'DOWN',...} leftover message in the calling process's
	      message queue. This unexpected leftover could be eliminated
	      if erlang:demonitor/2 with option flush would be used in
	      certain points

    OTP-9791  Add deps as erlang-flymake include directory.

	      Update erlang-flymake to recognize the "deps" folder as an
	      include directory. This makes erlang-flymake compatible with
	      the rebar dependency management tool's default folder
	      structure, which puts included dependencies in "deps".(Thanks
	      to Kevin Albrecht)

    OTP-9810  Eliminate use of deprecated regexp module


--- tv-2.1.4.8 ----------------------------------------------------------

    OTP-9810  Eliminate use of deprecated regexp module


--- typer-0.9.3 ---------------------------------------------------------

    OTP-9758  No warnings for underspecs with remote types

	      Fix crash in Typer

	      Fix Dialyzer's warning for its own code

	      Fix Dialyzer's warnings in HiPE

	      Add file/line info in a particular Dialyzer crash

	      Update inets test results

    OTP-9776  Correct callback spec in application module

	      Refine warning about callback specs with extra ranges

	      Cleanup autoimport compiler directives

	      Fix Dialyzer's warnings in typer

	      Fix Dialyzer's warning for its own code

	      Fix bug in Dialyzer's behaviours analysis

	      Fix crash in Dialyzer

	      Variable substitution was not generalizing any unknown
	      variables.


--- webtool-0.8.9.1 -----------------------------------------------------

    OTP-9813  Miscellaneous documentation build updates


--- wx-0.99.1 -----------------------------------------------------------

    OTP-9702  Implemented wxSystemOptions.

	      Load Opengl from libGL.so.1 instead libGL.so to work around
	      linux problems.

    OTP-9725  Fixed a deadlock in the driver, which could happen if a
	      callback caused another callback to be invoked.


--- xmerl-1.3 -----------------------------------------------------------

    OTP-9664  Updates to the xml scanner

	      xmerl_scan is now returning xmlComment records in the
	      output.<br/><br/> Functions xmerl_scan:file/2 and
	      xmerl_scan:string/2 now accepts a new option {comments, Flag}
	      for filtering of comments.<br/> Default (true) is that
	      #xmlComment records are returned from the scanner and this
	      flag should be set to false if one don't want comments in the
	      output.

	      Add <i>default_attrs</i> option<br/><br/> When
	      <i>default_attrs</i> is true any attribute with a default
	      value defined in the doctype but not in the attribute axis of
	      the currently scanned element is added to it.

	      Allow whole documents to be returned<br/><br/> Functions
	      xmerl_scan:file/2 and xmerl_scan:string/2 now accepts a new
	      option {document, true} to produce a whole document as a
	      xmlDocument record instead of just the root element
	      node.<br/> This option is the only way to get to the
	      top-level comments and processing instructions without
	      hooking through the customization functions. Those nodes are
	      needed to implement [Canonical XML][c14n-xml] support.<br/>
	      [c14n-xml]: http://www.w3.org/TR/2008/PR-xml-c14n11-20080129/
	      <i>Canonical XML</i>

	      Parents and namespace are tracked in #xmlAttribute nodes

	      Parents are tracked in #xmlPI nodes

	      Set vsn field in #xmlDecl record

	      Fix namespace-conformance constraints<br/><br/> See
	      [Namespaces in XML 1.0 (Third Edition)][1]: The prefix xml is
	      by definition bound to the namespace name
	      http://www.w3.org/XML/1998/namespace. It MAY, but need not,
	      be declared, and MUST NOT be bound to any other namespace
	      name. Other prefixes MUST NOT be bound to this namespace
	      name, and it MUST NOT be declared as the default
	      namespace.<br/> The prefix xmlns is used only to declare
	      namespace bindings and is by definition bound to the
	      namespace name http://www.w3.org/2000/xmlns/. It MUST NOT be
	      declared . Other prefixes MUST NOT be bound to this namespace
	      name, and it MUST NOT be declared as the default namespace.
	      Element names MUST NOT have the prefix xmlns.<br/> In XML
	      documents conforming to this specification, no tag may
	      contain two attributes which have identical names, or have
	      qualified names with the same local part and with prefixes
	      which have been bound to namespace names that are
	      identical.<br/> [1] http://www.w3.org/TR/REC-xml-names/

	      Updates of xmerl's Xpath functionality.

	      Add #xmlPI support to xmerl_xpath:write_node/1

	      Fix processing-instruction(name?)

	      Fix path filters, support more top-level primary expressions

	      Accumulate comments in element nodes

	      Implement namespace axis<br/><br/> Namespace nodes are
	      represented as #xmlNsNode records. Now that the namespace
	      axis is correctly implemented, attributes nodes corresponding
	      to attributes that declare namespaces are ignored.<br/> See
	      [5.3 Attribute Nodes][xpath-5.3]:<br/> There are no attribute
	      nodes corresponding to attributes that declare
	      namespaces.<br/> [xpath-5.3]:
	      http://www.w3.org/TR/xpath/#attribute-nodes

	      (Thanks to Anthony Ramine)

    OTP-9670  Fix character check of non-characters due to change in
	      unicode module.

    OTP-9753  Treat , as special in xmerl_xpath_scan. (Thanks to Anneli
	      Cuss)

    OTP-9810  Eliminate use of deprecated regexp module

    OTP-9821  Fix bug in namespace handling for attributes when the
	      namespace_conformant flag is set to true.