Major relese    : otp_src_R12B-0
Build date      : 2007-12-04

R12B-0 is a major new release of Erlang/OTP.
You can download the full source distribution from
 
  http://www.erlang.org/download/otp_src_R12B-0.tar.gz
  http://www.erlang.org/download/otp_src_R12B-0.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_R12B-0.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_R12B-0.tar.gz
  http://www.erlang.org/download/otp_doc_man_R12B-0.tar.gz

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

The OTP Team


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

    OTP-5979  Megaco: Added support for the full v3-standard (including
	      segmentation).

    OTP-6554  When an exception occurs the Erlang shell now displays the
	      class, the reason, and the stacktrace in a clearer way
	      (rather than dumping the raw EXIT tuples as before).
	      proc_lib:format/1 displays the exception of crash reports in
	      the same clearer way.

	      The new shell command catch_exception and the new application
	      configuration parameter shell_catch_exception can be used for
	      catching exceptions that would normally exit the Erlang
	      shell.

    OTP-6558  Bitstrings (bit-level) binaries and binary comprehensions are
	      now part of the language. See the Reference Manual.

    OTP-6560  The windows version of erlang now has SMP support. The SMP
	      emulator is run by default on machines which shows more than
	      one virtual or physical processor.

    OTP-6619  A new implementation of ssl is released as a alpha version in
	      ssl-3.9 it will later replace the old implementation in
	      ssl-4.0. The new implementation can be accessed by providing
	      the option {ssl_imp, new} to the ssl:connect and ssl:listen
	      functions.

    OTP-6690  [httpc] - Profiles are now supported i.e. the options
	      available in set_options/1 can be set locally for a certain
	      profile and do not have to affect all HTTP-requests issued in
	      the Erlang node. Calls to the HTTP client API functions not
	      using the profile argument will use the default profile.

    OTP-6705  A new uniform Inets interface provides a flexible way to
	      start/stop inets services and get information about running
	      services. See inets(3). This also means that inflexibilities
	      in the HTTP server has been removed and more default values
	      has been added.

    OTP-6733  The new module array provides a fast functional array
	      implementation.

    OTP-6794  percept is a new application to profile concurrency.

    OTP-6850  Literal lists, tuples, and binaries are no longer constructed
	      at run-time as they used to be, but are stored in a
	      per-module constant pool. Literals that are used more than
	      once are stored only once.

	      This is not a change to the language, only in the details of
	      its implementation. Therefore, the implications of this
	      change is described in the Efficiency Guide.

    OTP-6851  The size of the code generated by yecc has been reduced.

	      A note regarding the includefile option: although yecc can
	      cope with includefiles based on some earlier yeccpre.hrl it
	      is recommended for efficiency reasons to update includefiles
	      as to follow the pattern in the latest yeccpre.hrl.

    OTP-6857  The Erlang driver API has been extended with a portable POSIX
	      thread like API for multi-threading. The Erlang driver thread
	      API provides:

	      Threads Mutexes Condition variables Read/Write locks Thread
	      specific data

	      For more information see the erl_driver(3) documentation.

    OTP-6869  Possible to override global SSL parameters when using local
	      interfaces.

    OTP-6882  Optimization using bitstr in encode/decode functions. Active
	      with [per_bin, optimize] options.

    OTP-6902  Two new guard BIFs have been introduced as a recommended
	      replacement for size/1. (The size/1 BIF will be removed no
	      earlier than in R14B.) The BIFs are tuple_size/1 to calculate
	      the size of a tuple and byte_size/1 to calculate the number
	      of bytes needed for the contents of the binary or bitstring
	      (rounded up to the nearest number of bytes if necessary).

	      There is also a new bit_size/1 BIF that returns the exact
	      number of bits that a binary or bitstring contains.

    OTP-6962  The Efficiency Guide has been updated and extended to cover
	      many more topics, such as the bit syntax construction and
	      matching.

    OTP-6989  Test Server is a portable test server for automated
	      application testing. The server can run test suites on local
	      or remote targets and log progress and results to HTML pages.
	      The main purpose of Test Server is to act as engine inside
	      customized test tools. A callback interface for such
	      framework applications is provided.

    OTP-6990  Common Test is a portable application for automated testing.
	      It is suitable for black-box testing of target systems of any
	      type (i.e. not necessarily implemented in Erlang), as well as
	      for white-box testing of Erlang/OTP programs.

	      Black-box testing is performed via standard O&M interfaces
	      (such as SNMP, HTTP, Corba, Telnet, etc) and, if required,
	      via user specific interfaces. White-box testing of Erlang/OTP
	      programs is easily accomplished by calling the target API
	      functions directly from the test case functions. 

	      Common Test executes test suite programs automatically,
	      without operator interaction. Test progress and results is
	      printed to logs on HTML format, easily browsed with a
	      standard web browser. A number of libraries are provided that
	      contain useful support functions to fill various testing
	      needs and requirements.


--- documentation ------------------------------------------------------------

    OTP-6866  The top page of the OTP-documentation is updated. There is no
	      use of frames any more and the navigation bar at the left
	      uses Javascript to achieve a navigation tree where nodes can
	      be expanded and contracted.

    OTP-6962  The Efficiency Guide has been updated and extended to cover
	      many more topics, such as the bit syntax construction and
	      matching.


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

    OTP-6846  The mnemosyne and mnesia_session applications have been
	      removed. Use qlc instead of mnemosyne.


--- asn1-1.4.6 ------------------------------------------------------------

    OTP-5067  Now the asn1-compiler supports two root lists in SEQUENCE and
	      SET according to alternative three in ComponentTypeLists
	      (X.680 07/2002 section 24.1), i.e. with an extension list
	      between two ellipses.

    OTP-6763  Parsing and encoding/decoding of type constrained with SIZE
	      with extension is now recovered.

    OTP-6769  <c>inline</c> failed because tring to use a removed module.

    OTP-6770  Fixed problem with a reference to a type from an object. The
	      failure was caused bye change of type name when using
	      <c>inline</c> option.

    OTP-6786  Handling of decode pattern for exclusive decode was false in
	      the case when an undecoded component had more than one
	      following elements that should be decoded.


--- asn1-1.5 ------------------------------------------------------------

    OTP-6835  Now generating records in .hrl file for instances of
	      parameterized SEQUENCE or SET.

    OTP-6882  Optimization using bitstr in encode/decode functions. Active
	      with [per_bin, optimize] options.


--- common_test-1.3.0 ------------------------------------------------------------

    OTP-6990  Common Test is a portable application for automated testing.
	      It is suitable for black-box testing of target systems of any
	      type (i.e. not necessarily implemented in Erlang), as well as
	      for white-box testing of Erlang/OTP programs.

	      Black-box testing is performed via standard O&M interfaces
	      (such as SNMP, HTTP, Corba, Telnet, etc) and, if required,
	      via user specific interfaces. White-box testing of Erlang/OTP
	      programs is easily accomplished by calling the target API
	      functions directly from the test case functions. 

	      Common Test executes test suite programs automatically,
	      without operator interaction. Test progress and results is
	      printed to logs on HTML format, easily browsed with a
	      standard web browser. A number of libraries are provided that
	      contain useful support functions to fill various testing
	      needs and requirements.


--- compiler-4.5 ------------------------------------------------------------

    OTP-6558  Bitstrings (bit-level) binaries and binary comprehensions are
	      now part of the language. See the Reference Manual.

    OTP-6801  The 'compressed' option for the compiler has been documented.

    OTP-6824  If the value of a list comprehension is not used, such as in
	      '[do_something(X) || X <- List], ok', a result list will no
	      longer be built. For more details, see the Efficiency Guide.

	      If the value of an expression is not used, and the expression
	      has no side effects except for possibly throwing an
	      exception, a warning will be generated. Examples: 'self(),ok'
	      and '{error,Reason},ok'.

    OTP-6829  Three new functions have been added to the compile module:
	      noenv_file/2, noenv_forms/2, and noenv_output_generated/1.

    OTP-6838  Many bit syntax operations, both construction and matching,
	      are faster. For further information, see the Efficiency
	      Guide.

    OTP-6850  Literal lists, tuples, and binaries are no longer constructed
	      at run-time as they used to be, but are stored in a
	      per-module constant pool. Literals that are used more than
	      once are stored only once.

	      This is not a change to the language, only in the details of
	      its implementation. Therefore, the implications of this
	      change is described in the Efficiency Guide.

	      Example 1: In the expression element(BitNum-1,
	      {1,2,4,8,16,32,64,128}), the tuple used to be constructed
	      every time the expression was executed, which could be
	      detrimental to performance in two ways if the expression was
	      executed in a loop: the time to build the tuple itself and
	      the time spent in garbage collections because the heap filled
	      up with garbage faster.

	      Example 2: Literal strings, such as "abc", used to be stored
	      in the compiled code compactly as a byte string and expanded
	      to a list at run-time. Now all strings will be stored
	      expanded to lists (such as [$a,$b,$c]) in the constant pool.
	      That means that the string will be faster to use at run-time,
	      but that it will require more space even when not used. If
	      space is an issue, you might want to use binary literals
	      (that is, <<"abc">>) instead of string literals for
	      infrequently used long strings (such as error messages).

    OTP-6862  Recursive calls now usually consume less stack than in R11B.
	      See the Efficiency Guide.

    OTP-6885  The compiler used to allow that a binary field without size
	      could be used in other positions than at the end in bit
	      syntax pattern. For instance,
	      <![CDATA[<<B/binary,EmptyBinary/binary>> = Bin]]> used to
	      compile, but now the compilation will fail with an an error
	      message.

	      Also, it is now longer permitted to give a literal string in
	      a binary pattern a type or a size; for instance,
	      <![CDATA[<<"abc"/binary>> = Bin]]> will no longer compile.
	      (In previous releases, there would always be a badmatch
	      exception at run-time.)

    OTP-6902  Two new guard BIFs have been introduced as a recommended
	      replacement for size/1. (The size/1 BIF will be removed no
	      earlier than in R14B.) The BIFs are tuple_size/1 to calculate
	      the size of a tuple and byte_size/1 to calculate the number
	      of bytes needed for the contents of the binary or bitstring
	      (rounded up to the nearest number of bytes if necessary).

	      There is also a new bit_size/1 BIF that returns the exact
	      number of bits that a binary or bitstring contains.

    OTP-6966  The two internal functions erl_bifs:is_bif/3 and
	      erl_bifs:is_guard/3 have been removed. They were unsupported,
	      undocumented, and unmaintained.


--- dialyzer-1.7.1 ------------------------------------------------------------

    OTP-6997  Use of success typings is now default, is robust and detects
	      significantly more errors than in previous versions.

	      Dialyzer now accepts and takes into account type information
	      in record declarations and in contracts -- see related paper
	      in Erlang'07 workshop. Various OTP applications (e.g. stdlib
	      and kernel) are partially annotated with appropriate
	      contracts specifying types information for their functions.

	      The type previously known as unit() has been renamed to
	      no_return(). Its use in a contract as the return type of a
	      function now silences off the "function has no local return"
	      dialyzer warning without use of the corresponding option.


--- docbuilder-0.9.1 ------------------------------------------------------------

    OTP-6775  Line breaks within pre are now always preserved.

	      The definition of name in the cref DTD is now
	      correctly handled.

	      docb_transform: The HTML snippet returned by the
	      Module:head() callback function is now placed below
	      the title in the HTML file (as specified in the
	      documentation), not on the same line.

	      docb_gen: Added option sort_functions.

	      Fixed bugs in cites and terms DTD, and also in book,
	      bookinsidecover and report DTDs which are not officially
	      supported (yet).

	      License info added to all DTD files.

	      Corrections and clarifications made to the User's Guide.


--- erts-5.5.5.1 ------------------------------------------------------------

    OTP-6745  The documentation of process_flag(priority, Level)
	      has been updated, see the erlang(3) documentation.
	      
    OTP-6789  Restored speed of bit-syntax matching of 32 bits integers.

    OTP-6800  The log_mf_h event handler didn't close the index file when
	      it was done reading it causing a file descriptor leak.

    OTP-6806  The internal (rarely used) DNS resolver has been modified to
	      not use the domain search list when asked to resolve an
	      absolute name; a name with a terminating dot. There was also
	      a bug causing it to create malformed DNS queries for absolute
	      names that has been corrected, correction suggested by Scott
	      Lystig Fritchie. The code has also been corrected to look up
	      cached RRs in the same search order as non-cached, now allows
	      having the root domain among the search domains, and can now
	      actually do a zone transfer request.

    OTP-6811  zlib:close/1 would leave an EXIT message in the message queue
	      if the calling process had the trap_exit flag enabled.

    OTP-6816  All exported functions in gzio.c have now been renamed to
	      avoid conflict with drivers that are indirectly linked with
	      an external zlib library.

    OTP-6817  Calling binary_to_term/1 with certain invalid binaries would
	      crash the emulator.

    OTP-6818  The dict:size/1 and orddict:size/1 functions have been
	      documented.


--- erts-5.5.5.2 ------------------------------------------------------------

    OTP-6842  ets:select/3 on ordered_set and with a chunksize a multiple
	      of 1000 gave all elements instead of just 1000. Also
	      ets:slot/2 on ordered set could give unexpected results on
	      SMP emulator. Both problems are corrected.


--- erts-5.5.5.3 ------------------------------------------------------------

    OTP-6872  Creating a named table using ets:new/2 or renaming
	      a named table using ets:rename/2 could in rare
	      circumstances succed, meaning that there would be two or more
	      tables with the same name. Now such call will fail with a
	      badarg exception as it is supposed to do.

	      ets:delete/1 used on a named table now removes the
	      name immediately so that a new table with the same name can
	      be created.

	      Turning on call trace on the internal BIF that implements
	      ets:delete/1 would crash the emulator.

	      SMP emulator only: Using ets:rename/2 on a table
	      that ets:safe_fixtable/2 has been used on could casue
	      an emulator crash or undefined behaviour because of a missing
	      lock.


--- erts-5.5.5.4 ------------------------------------------------------------

    OTP-6879  Data passed to a driver via <c>erlang:port_call</c> could be
	      corrupted when the runtime system with SMP support was used.
	      (Thanks to YAMASHINA Hio.)

    OTP-6880  In the SMP emulator, if serveral processes called
	      ets:update_counter/3 (even for different tables) when the
	      counter values exceeded 27 bits, the counter values could be
	      corrupted or the emulator could crash.


--- erts-5.5.5.5 ------------------------------------------------------------

    OTP-6907  Hanging writes on temporarilly unavailable NFS filesystems
	      could cause the execution of (not file related) erlang code
	      to get blocked even though I/O threads were used. This is now
	      corrected.


--- erts-5.6 ------------------------------------------------------------

    OTP-6291  A bug for raw files when reading 0 bytes returning 'eof'
	      instead of empty data has been corrected.

    OTP-6558  Bitstrings (bit-level) binaries and binary comprehensions are
	      now part of the language. See the Reference Manual.

    OTP-6560  The windows version of erlang now has SMP support. The SMP
	      emulator is run by default on machines which shows more than
	      one virtual or physical processor.

    OTP-6755  The details of the compressed term format has been documented
	      in erl_ext_dist.txt. (Thanks to Daniel Goertzen.)

    OTP-6756  The runtime system with SMP support is now started by default
	      if more than one logical processor are detected. For more
	      information, see the erl(3) documentation.

    OTP-6779  The external format for Erlang terms and the distribution
	      protocol are now documented in ERTS User's Guide.

    OTP-6823  The ErlDrvTermData term types used by driver_output_term()
	      and driver_send_term() have been extended with the term types
	      ERL_DRV_BUF2BINARY, ERL_DRV_EXT2TERM, and ERL_DRV_UINT.
	      ERL_DRV_BUF2BINARY is used for passing and creating a binary,
	      ERL_DRV_EXT2TERM is used for passing terms encoded with the
	      external term format, and ERL_DRV_UINT is used for passing
	      unsigned integers.

	      Also the data types ErlDrvUInt and ErlDrvSInt have been added
	      which makes it more obvious how arguments to term types are
	      interpreted with regards to width and signedness.

	      The incorrect data types ErlDriverTerm, ErlDriverBinary, and
	      ErlDriverPort in the erl_driver(3) documentation have been
	      replaced with the correct data types ErlDrvTermData,
	      ErlDrvBinary, and ErlDrvPort.

	      For more information see the erl_driver(3) documentation.

    OTP-6831  Miscellaneous improvements of the erts internal thread
	      library.

	      It now support optimized atomic operations and spin-locks on
	      windows.

	      Fall-backs based on mutexes and/or spin-locks for missing
	      optimized atomic operations, spin-locks, or rwlocks has been
	      implemented. This makes it possible to compile the runtime
	      system with SMP support on a lot more platforms.

	      Default stack size on OpenBSD has been increased to 256
	      kilo-words.

    OTP-6833  On the 64-bit Erlang emulator, bit syntax construction with
	      integers containing more than 60 bits ("big numbers") into
	      fields with more than 60 bits could produce incorrect
	      results.

    OTP-6838  Many bit syntax operations, both construction and matching,
	      are faster. For further information, see the Efficiency
	      Guide.

    OTP-6848  When the runtime system failed to allocate memory for
	      binaries, it could dead lock while writing the
	      erl_crash.dump.

    OTP-6850  Literal lists, tuples, and binaries are no longer constructed
	      at run-time as they used to be, but are stored in a
	      per-module constant pool. Literals that are used more than
	      once are stored only once.

	      This is not a change to the language, only in the details of
	      its implementation. Therefore, the implications of this
	      change is described in the Efficiency Guide.

	      Example 1: In the expression element(BitNum-1,
	      {1,2,4,8,16,32,64,128}), the tuple used to be constructed
	      every time the expression was executed, which could be
	      detrimental to performance in two ways if the expression was
	      executed in a loop: the time to build the tuple itself and
	      the time spent in garbage collections because the heap filled
	      up with garbage faster.

	      Example 2: Literal strings, such as "abc", used to be stored
	      in the compiled code compactly as a byte string and expanded
	      to a list at run-time. Now all strings will be stored
	      expanded to lists (such as [$a,$b,$c]) in the constant pool.
	      That means that the string will be faster to use at run-time,
	      but that it will require more space even when not used. If
	      space is an issue, you might want to use binary literals
	      (that is, <<"abc">>) instead of string literals for
	      infrequently used long strings (such as error messages).

    OTP-6857  The Erlang driver API has been extended with a portable POSIX
	      thread like API for multi-threading. The Erlang driver thread
	      API provides:

	      Threads Mutexes Condition variables Read/Write locks Thread
	      specific data

	      For more information see the erl_driver(3) documentation.

    OTP-6862  Recursive calls now usually consume less stack than in R11B.
	      See the Efficiency Guide.

    OTP-6876  The deprecated BIFs erlang:old_binary_to_term/1 and
	      erlang:info/1 have been removed.

    OTP-6878  Calls to driver call-backs triggered by external events are
	      now scheduled and interleaved with execution of Erlang
	      processes also on the runtime system without SMP support.

    OTP-6891  Faster arithmetic of integers of more than 27 bits signed (or
	      60 bits signed on an 64-bit CPU), and also faster integer
	      multiplication. (Thanks to Tony Rogvall.)

    OTP-6899  Significant improvements of the process_info BIFs:

	      process_info/2 can now be called with a list of items as
	      second argument in order to atomically retrieve information
	      about multiple items.

	      process_info/[1,2] has been optimized in the runtime system
	      with SMP support. The whole scheduler could previously be
	      blocked for a significant period of time in
	      process_info/[1,2] waiting for a lock on the process being
	      inspected. The Erlang process calling process_info/[1,2] can
	      still be blocked for a significant period of time waiting for
	      the lock, but the scheduler will now be able to run other
	      processes while the process calling process_info/[1,2] waits
	      for the lock.

	      process_info/2 now accept a few more items than before.

	      The documentation of process_info/[1,2] has been improved.

	      For more information see the erlang(3) documentation.

    OTP-6901  open_port({}, []) could crash the emulator. (Thanks to
	      Matthew Dempsky.)

    OTP-6902  Two new guard BIFs have been introduced as a recommended
	      replacement for size/1. (The size/1 BIF will be removed no
	      earlier than in R14B.) The BIFs are tuple_size/1 to calculate
	      the size of a tuple and byte_size/1 to calculate the number
	      of bytes needed for the contents of the binary or bitstring
	      (rounded up to the nearest number of bytes if necessary).

	      There is also a new bit_size/1 BIF that returns the exact
	      number of bits that a binary or bitstring contains.

    OTP-6906  The ets:fixtable/2 function, which has been deprecated for
	      several releases, has been removed.

	      The ets:info/1 function has been reimplemented as a BIF,
	      which guarantees that information returned is consistent.

	      The ets:info/2 function now fails with reason badarg if the
	      second argument is invalid. (Dialyzer can be used to find
	      buggy code where the second argument is misspelled.)

    OTP-6920  The runtime system with SMP support could deadlock if a
	      process called the erlang:suspend_process(Pid) BIF or the
	      erlang:garbage_collect(Pid) BIF while the process identified
	      by Pid was currently running and the process calling the BIFs
	      was terminated during the call to the BIFs.

	      Processes suspending each other via the
	      erlang:suspend_process/1 BIF or garbage collecting each other
	      via the erlang:garbage_collect/1 BIF could deadlock each
	      other when the runtime system with SMP support was used.

    OTP-6933  The functions io:columns/0, io:columns/1, io:rows/0 and
	      io:rows/1 are added to allow the user to get information
	      about the terminal geometry. The shell takes some advantage
	      of this when formatting output. For regular files and other
	      io-devices where height and width are not applicable, the
	      functions return {error,enotsup}.

	      Potential incompatibility: If one has written a custom
	      io-handler, the handler has to either return an error or take
	      care of io-requests regarding terminal height and width.
	      Usually that is no problem as io-handlers, as a rule of
	      thumb, should give an error reply when receiving unknown
	      io-requests, instead of crashing.

    OTP-6946  dbg could leave traced processes in a suspended state if the
	      tracer process was killed with exit reason kill.

	      erlang:suspend_process/2 has been introduced which accepts an
	      option list as second argument. For more information see the
	      erlang(3) documentation.

	      Processes suspended via erlang:suspend_process/[1,2] will now
	      be automatically resumed if the process that called
	      erlang:suspend_process/[1,2] terminates.

	      Processes could previously be suspended by one process and
	      resumed by another unless someone was tracing the suspendee.
	      This is not possible anymore. The process resuming a process
	      has to be the one that suspended it.

    OTP-6951  driver_caller() can now also be used from the start callback
	      of a driver.

    OTP-6961  The emulator can now be compiled for 64bit intel, as well as
	      a 32bit universal binary on darwin/MacOSX 10.4 and 10.5.

    OTP-6967  file:write_file/3, file:write/2 and file:read/2 could crash
	      (contrary to documentation) for odd enough file system
	      problems, e.g write to full file system. This bug has now
	      been corrected.

	      In this process the file module has been rewritten to produce
	      better error codes. Posix error codes now originate from the
	      OS file system calls or are generated only for very similar
	      causes (for example 'enomem' is generated if a memory
	      allocation fails, and 'einval' is generated if the file
	      handle in Erlang is a file handle but currently invalid).

	      More Erlang-ish error codes are now generated. For example
	      {error,badarg} is now returned from file:close/1 if the
	      argument is not of a file handle type. See file(3).

	      The possibility to write a single byte using file:write/2
	      instead of a list or binary of one byte, contradictory to the
	      documentation, has been removed.

    OTP-6968  If open_port fails because all available ports are already in
	      use, it will now throw a system_limit exception instead of an
	      enfile exception. (enfile might still be thrown if the
	      operating system would return ENFILE.)

    OTP-6974  Monitor messages produced by the system monitor
	      functionality, and garbage collect trace messages could
	      contain erroneous heap and/or stack sizes when the actual
	      heaps and/or stacks were huge.

	      As of erts version 5.6 the large_heap option to
	      erlang:system_monitor/[1,2] has been modified. The monitor
	      message is sent if the sum of the sizes of all memory blocks
	      allocated for all heap generations is equal to or larger than
	      the specified size. Previously the monitor message was sent
	      if the memory block allocated for the youngest generation was
	      equal to or larger than the specified size.

    OTP-6975  The spawn_monitor/1 and spawn_monitor/3 BIFs are now
	      auto-imported (i.e. they no longer need an erlang: prefix).

    OTP-6994  On Windows, the werl window now handles resize, so that the
	      whole window can be utilized. Text selection is also updated
	      to be line oriented instead of rectangle oriented as in
	      earlier versions.

    OTP-7001  Kqueue support (kernel-poll) has been enabled on FreeBSD. The
	      problem with kqueue not detecting writes on a pipe on FreeBSD
	      was actually not a kqueue issue, but a writev on pipes issue.
	      Neither poll(), nor select() detected the write when the bug
	      hit. NetBSD and DragonFlyBSD probably have or have had the
	      same bug. This bug should have been fixed in FreeBSD 6.3 and
	      FreeBSD 7.0 thanks to Jean-Sebastien Pedron.

    OTP-7003  inet:getopts/2 returned random values on Windows Vista.


--- ic-4.2.15 ------------------------------------------------------------

    OTP-6855  If an inherited function name begun with a capital letter the
	      generated stub/skeleton oe_tc/1 function was incorrect.


--- ic-4.2.16 ------------------------------------------------------------

    OTP-6965  Added links to classes inherited from Jinterface in the
	      User's Guide.


--- inets-5.0 ------------------------------------------------------------

    OTP-6485  [httpd, httpc] - Deprecated base64 decode/encode functions
	      have been removed. Inets uses base64 in STDLIB instead.

    OTP-6572  [httpd] - It is now possible to restrict the length of
	      acceptable URI:s in the HTTP server.

    OTP-6690  [httpc] - Profiles are now supported i.e. the options
	      available in set_options/1 can be set locally for a certain
	      profile and do not have to affect all HTTP-requests issued in
	      the Erlang node. Calls to the HTTP client API functions not
	      using the profile argument will use the default profile.

    OTP-6705  A new uniform Inets interface provides a flexible way to
	      start/stop inets services and get information about running
	      services. See inets(3). This also means that inflexibilities
	      in the HTTP server has been removed and more default values
	      has been added.

    OTP-6916  [tftp] Logged errors have been changed to be logged warnings.

    OTP-6982  [httpc] - The client will now return the proper value when
	      receiving a HTTP 204 code instead of hanging.

    OTP-6993  The Inets application now has to be explicitly started and
	      stopped i.e. it will not automatically be started as a
	      temporary application as it did before. Although a practical
	      feature when testing things in the shell it is not desirable
	      that people take advantage of this and not start the Inets
	      application in a correct way in their products. Added
	      functions to the Inets API that call application:start/stop.


--- inviso-0.5 ------------------------------------------------------------

    OTP-6881  The following bugs/improvements have been done: Internal
	      interworking between inviso_rt and inviso_rt_meta. The call
	      function used by inviso_rt to call inviso_rt_meta is now
	      protected with a monitor. Inviso_rt_meta now includes the
	      timestamp of the incoming meta trace message when calling the
	      call-callback. (Makes it possible to add a "better" timestamp
	      to the ti-file.) Bug in inviso_tool making it not remove
	      trace patterns when terminating. Bug in internal function
	      h_start_session making inviso_tool crash if there were no
	      active nodes to start the session on. The user-inviso_tool
	      and inviso API-inviso control component request/response
	      gen_server protocols had default time-out. Since many trace
	      operations can be time consuming, a longer time-out is
	      necessary. Improved overload protection. It is now possible
	      to let the overload protection renew itself (e.g after an
	      exit from an external overload protector). Inviso_rt_meta now
	      fully uses the exception_trace match spec action term. Run
	      Trace Case API (as in contrast to activate and deactivate
	      trace case APIs) in inviso_tool. Flush trace-port API added
	      to inviso. Get_session_data API added to inviso_tool.
	      Improved inviso_tool:stop making it possible to name nodes
	      which shall not have their trace patterns removed when
	      inviso_tool terminates. Bug in handling of writing multiple
	      ti-entries if returned from a call/return_from call-back in
	      inviso_rt_meta Process trace flags are no longer explicitly
	      removed by the inviso_tool when it terminates. Not necessary.
	      Inviso_tool get_autostart_data adopted to standard
	      autostarter.


--- inviso-0.6 ------------------------------------------------------------

    OTP-6918  In this release the following has been fixed and enhanced:
	      Autostart: It is now possible to configure modules that shall
	      be loaded by the autostart mechanism. This because it is not
	      certain that all application systems make use of the OTP boot
	      script to set up paths to all Erlang modules.
	      Runtime_tools/Inviso: A bug in the fetch_log functionality
	      has been fixed. Further a bug that was (supposedly) fixed in
	      a previous patch concerning meta-tracer write_ti has been
	      fixed (again) in this patch. A bug in inviso_as_lib making
	      remote autostart config file updates fail has been fixed.
	      Inviso: inviso_tool has been given a flush API.


--- jinterface-1.4 ------------------------------------------------------------

    OTP-6809  Jinterface has been updated to handle compressed terms,
	      bitstring, new (IEEE) floats and bignums. This has caused a
	      few incompatibilities.

	      com.ericsson.otp.erlang.OtpOutputStream now extends
	      java.io.ByteArrayOutputStream, previously java.lang.Object,
	      and hence the method size() now return the number of bytes in
	      the stream as dictated by the new parent class and not the
	      buffer length as before. The new method length() returns what
	      the old size() did return. The method count() is deprecated
	      as it returns the same as the new size().

	      com.ericsson.otp.erlang.OtpErlangLong now can handle larger
	      values than 64-bit. Previously when larger than 64-bit
	      integers were sent to a Jinterface node, it caused an
	      com.ericsson.otp.erlang.OtpDecodeException. Now the integer
	      is accepted, but the return value of longValue() is silently
	      truncated, as opposed to the return value of intValue() that
	      now and previously raises an
	      com.ericsson.otp.erlang.OtpRangeException for unrepresentable
	      values. The new methods isLong() and isULong() can be used to
	      determine if the value fits in a long.


--- kernel-2.11.5.1 ------------------------------------------------------------

    OTP-6745  The documentation of process_flag(priority, Level)
	      has been updated, see the erlang(3) documentation.
	      
    OTP-6789  Restored speed of bit-syntax matching of 32 bits integers.

    OTP-6800  The log_mf_h event handler didn't close the index file when
	      it was done reading it causing a file descriptor leak.

    OTP-6806  The internal (rarely used) DNS resolver has been modified to
	      not use the domain search list when asked to resolve an
	      absolute name; a name with a terminating dot. There was also
	      a bug causing it to create malformed DNS queries for absolute
	      names that has been corrected, correction suggested by Scott
	      Lystig Fritchie. The code has also been corrected to look up
	      cached RRs in the same search order as non-cached, now allows
	      having the root domain among the search domains, and can now
	      actually do a zone transfer request.

    OTP-6811  zlib:close/1 would leave an EXIT message in the message queue
	      if the calling process had the trap_exit flag enabled.

    OTP-6816  All exported functions in gzio.c have now been renamed to
	      avoid conflict with drivers that are indirectly linked with
	      an external zlib library.

    OTP-6817  Calling binary_to_term/1 with certain invalid binaries would
	      crash the emulator.

    OTP-6818  The dict:size/1 and orddict:size/1 functions have been
	      documented.


--- kernel-2.11.5.2 ------------------------------------------------------------

    OTP-6893  The kernel parameter dist_auto_connect once could fail to
	      block a node if massive parallell sends were issued during a
	      transient failure of network communication


--- kernel-2.12 ------------------------------------------------------------

    OTP-6291  A bug for raw files when reading 0 bytes returning 'eof'
	      instead of empty data has been corrected.

    OTP-6836  A bug in gen_udp:fdopen reported by David Baird and also
	      found by Dialyzer has been fixed.

    OTP-6853  Minor documentation corrections for file:pread/2 and
	      file:pread/3.

    OTP-6884  Calling error_logger:tty(true) multiple times does not give
	      multiple error log printouts.

    OTP-6886  The deprecated functions file:file_info/1, init:get_flag/1,
	      init:get_flags/0, and init:get_args/0 have been removed.

    OTP-6931  The global name server now ignores nodeup messages when the
	      command line flag -connect_all false has been used. (Thanks
	      to Trevor Woollacott.)

    OTP-6933  The functions io:columns/0, io:columns/1, io:rows/0 and
	      io:rows/1 are added to allow the user to get information
	      about the terminal geometry. The shell takes some advantage
	      of this when formatting output. For regular files and other
	      io-devices where height and width are not applicable, the
	      functions return {error,enotsup}.

	      Potential incompatibility: If one has written a custom
	      io-handler, the handler has to either return an error or take
	      care of io-requests regarding terminal height and width.
	      Usually that is no problem as io-handlers, as a rule of
	      thumb, should give an error reply when receiving unknown
	      io-requests, instead of crashing.

    OTP-6938  The undocumented and unsupported functions
	      inet:ip_to_bytes/1, inet:ip4_to_bytes/1, inet:ip6_to_bytes/1,
	      and inet:bytes_to_ip6/16 have been removed.

    OTP-6967  file:write_file/3, file:write/2 and file:read/2 could crash
	      (contrary to documentation) for odd enough file system
	      problems, e.g write to full file system. This bug has now
	      been corrected.

	      In this process the file module has been rewritten to produce
	      better error codes. Posix error codes now originate from the
	      OS file system calls or are generated only for very similar
	      causes (for example 'enomem' is generated if a memory
	      allocation fails, and 'einval' is generated if the file
	      handle in Erlang is a file handle but currently invalid).

	      More Erlang-ish error codes are now generated. For example
	      {error,badarg} is now returned from file:close/1 if the
	      argument is not of a file handle type. See file(3).

	      The possibility to write a single byte using file:write/2
	      instead of a list or binary of one byte, contradictory to the
	      documentation, has been removed.

    OTP-6970  Added new checksum combine functions to zlib. And fixed a bug
	      in zlib:deflate. Thanks Matthew Dempsky.

    OTP-6974  Monitor messages produced by the system monitor
	      functionality, and garbage collect trace messages could
	      contain erroneous heap and/or stack sizes when the actual
	      heaps and/or stacks were huge.

	      As of erts version 5.6 the large_heap option to
	      erlang:system_monitor/[1,2] has been modified. The monitor
	      message is sent if the sum of the sizes of all memory blocks
	      allocated for all heap generations is equal to or larger than
	      the specified size. Previously the monitor message was sent
	      if the memory block allocated for the youngest generation was
	      equal to or larger than the specified size.

    OTP-6975  The spawn_monitor/1 and spawn_monitor/3 BIFs are now
	      auto-imported (i.e. they no longer need an erlang: prefix).

    OTP-6983  All functions in the code module now fail with an exception
	      if they are called with obviously bad arguments, such as a
	      tuple when an atom was expected. Some functions now also fail
	      for undocumented argument types (for instance,
	      ensure_loaded/1 now only accepts an atom as documented; it
	      used to accept a string too).

	      Dialyzer will generally emit warnings for any calls that use
	      undocumented argument types. Even if the call happens to
	      still work in R12B, you should correct your code. A future
	      release will adhere to the documentation.

    OTP-7003  inet:getopts/2 returned random values on Windows Vista.


--- megaco-3.6.1 ------------------------------------------------------------

    OTP-6803  An empty time-zone adjustement was incorrectly allowed when
	      decoding SDP using megaco:decode_sdp/1. Also the parsing of
	      attributes was to restrictive.


--- megaco-3.6.2 ------------------------------------------------------------

    OTP-6921  When timers expire while a connection cancel (megaco:cancel)
	      is in progress, there is a raise condition possibillity. This
	      has been eliminated.


--- megaco-3.6.3 ------------------------------------------------------------

    OTP-6992  Failure to parse SDP attribute FMTP rows.

    OTP-7000  Updated documentation for function megaco:connect/4.


--- megaco-3.7 ------------------------------------------------------------

    OTP-5979  Added support for the full v3-standard (including
	      segmentation).

    OTP-6804  SDP support updated according to RFC 4566.

    OTP-6865  Added a way for the transport module to transfer extra
	      information to the user callback module callback functions
	      upon receipt of a message. This is done by adding an extra
	      argument when calling the (new) message delivery function(s)
	      process_received_message/5 or receive_message/5. Similarly,
	      the UserReply part of the return value for the megaco:call
	      function can now also include such extra information.

    OTP-6976  Improve the utility functions for information retrieval:
	      megaco:info, megaco:system_info, megaco:conn_info and
	      megaco:user_info.


--- mnesia-4.3.6 ------------------------------------------------------------

    OTP-6300  Rearranging fragmented tables is an O(N^2) operation.

    OTP-6903  A bug causing lots of records to be lost at startup from an
	      installed fallback has been fixed. The bug did however not
	      show up when a backup file generated with
	      mnesia:backup/1 or mnesia:backup_checkpoint/2
	      was installed as fallback. In order to trigger the bug, the
	      items in the backup file had to be rearranged in such an
	      order that records from different tables were interleaved
	      with each other.

    OTP-6904  Mnesia sometimes failed to commit schema operations on all
	      nodes, this have been seen on smp machines but could happen
	      on single processor as well with some bad timing.

    OTP-6908  mnesia:select/1 failed to return all matches on remote
	      nodes if something was written to the table earlier in the
	      same transaction.


--- mnesia-4.3.7 ------------------------------------------------------------

    OTP-6936  Removed a memory leak on ram-only nodes, introduced in
	      mnesia-4.3.6.


--- mnesia-4.4 ------------------------------------------------------------

    OTP-6856  Mnesia's snmp operations snmp_get_row/2,
	      snmp_get_next_index/2 and snmp_get_mnesia_key/2 have been
	      made context aware, i.e. inside a transaction they will
	      compensate for table updates made earlier in the same
	      transaction. This might cause a performance drop if a lot of
	      updates have been made before the invocation of these
	      functions.

    OTP-6923  Introduced erlang:phash/2 as new default for fragmented
	      tables. Already existing tables will continue to use whatever
	      hash function they were using.

    OTP-6981  Mnesia ignored the module argument to mnesia:restore/2.
	      Thanks Paul Minerio.


--- odbc-2.0.9 ------------------------------------------------------------

    OTP-6984  The odbc application now has to be explicitly started and
	      stopped e.i. it will not automatically be started as a
	      temporary application as it did before. Although a practical
	      feature when testing things in the shell it is not desirable
	      that people take advantage of this and not start the odbc
	      application in a correct way in their products. Added
	      functions to the odbc API that calls application:start/stop.

    OTP-6987  Changed Makefile.in so that odbc is not disabled on 64-bits
	      architectures. It was earlier disabled due to that it had
	      never been tested in that environment.


--- orber-3.6.8 ------------------------------------------------------------

    OTP-6844  When a local port range has been defined (i.e.
	      iiop_out_ports), Orber set the socket option reuseaddr to
	      true and after one timed out connection attempt no other port
	      in the given range is used for that particular connect
	      attempt.

    OTP-6868  The parameter ssl_client_ciphers was used on the server side
	      as well instead of ssl_server_ciphers.

    OTP-6869  Possible to override global SSL parameters when using local
	      interfaces.

    OTP-6912  The configuration parameter iiop_max_in_requests was ignored,
	      until the first incoming request arrived, if iiop_packet_size
	      was set at the same time.


--- os_mon-2.1.3 ------------------------------------------------------------

    OTP-6860  Extended memsup memory probing on linux to use a port program
	      to probe memory usage. This is faster then the previous
	      implementation.


--- parsetools-1.4.2 ------------------------------------------------------------

    OTP-6851  The size of the code generated by yecc has been reduced.

	      A note regarding the includefile option: although yecc can
	      cope with includefiles based on some earlier yeccpre.hrl it
	      is recommended for efficiency reasons to update includefiles
	      as to follow the pattern in the latest yeccpre.hrl.


--- percept-0.5.0 ------------------------------------------------------------

    OTP-6794  percept is a new application to profile concurrency.


--- runtime_tools-1.6.7 ------------------------------------------------------------

    OTP-6881  The following bugs/improvements have been done: Internal
	      interworking between inviso_rt and inviso_rt_meta. The call
	      function used by inviso_rt to call inviso_rt_meta is now
	      protected with a monitor. Inviso_rt_meta now includes the
	      timestamp of the incoming meta trace message when calling the
	      call-callback. (Makes it possible to add a "better" timestamp
	      to the ti-file.) Bug in inviso_tool making it not remove
	      trace patterns when terminating. Bug in internal function
	      h_start_session making inviso_tool crash if there were no
	      active nodes to start the session on. The user-inviso_tool
	      and inviso API-inviso control component request/response
	      gen_server protocols had default time-out. Since many trace
	      operations can be time consuming, a longer time-out is
	      necessary. Improved overload protection. It is now possible
	      to let the overload protection renew itself (e.g after an
	      exit from an external overload protector). Inviso_rt_meta now
	      fully uses the exception_trace match spec action term. Run
	      Trace Case API (as in contrast to activate and deactivate
	      trace case APIs) in inviso_tool. Flush trace-port API added
	      to inviso. Get_session_data API added to inviso_tool.
	      Improved inviso_tool:stop making it possible to name nodes
	      which shall not have their trace patterns removed when
	      inviso_tool terminates. Bug in handling of writing multiple
	      ti-entries if returned from a call/return_from call-back in
	      inviso_rt_meta Process trace flags are no longer explicitly
	      removed by the inviso_tool when it terminates. Not necessary.
	      Inviso_tool get_autostart_data adopted to standard
	      autostarter.


--- runtime_tools-1.6.8 ------------------------------------------------------------

    OTP-6918  In this release the following has been fixed and enhanced:
	      Autostart: It is now possible to configure modules that shall
	      be loaded by the autostart mechanism. This because it is not
	      certain that all application systems make use of the OTP boot
	      script to set up paths to all Erlang modules.
	      Runtime_tools/Inviso: A bug in the fetch_log functionality
	      has been fixed. Further a bug that was (supposedly) fixed in
	      a previous patch concerning meta-tracer write_ti has been
	      fixed (again) in this patch. A bug in inviso_as_lib making
	      remote autostart config file updates fail has been fixed.
	      Inviso: inviso_tool has been given a flush API.


--- runtime_tools-1.7 ------------------------------------------------------------

    OTP-6939  The undocumented and unsupported function dbg:tracer/1 has
	      been removed. The undocumented, unsupported, and broken
	      function dbg:i/1 has been removed.

    OTP-6946  dbg could leave traced processes in a suspended state if the
	      tracer process was killed with exit reason kill.

	      erlang:suspend_process/2 has been introduced which accepts an
	      option list as second argument. For more information see the
	      erlang(3) documentation.

	      Processes suspended via erlang:suspend_process/[1,2] will now
	      be automatically resumed if the process that called
	      erlang:suspend_process/[1,2] terminates.

	      Processes could previously be suspended by one process and
	      resumed by another unless someone was tracing the suspendee.
	      This is not possible anymore. The process resuming a process
	      has to be the one that suspended it.


--- sasl-2.1.5.2 ------------------------------------------------------------

    OTP-6998  Minor updates.


--- snmp-4.9.4 ------------------------------------------------------------

    OTP-6771  The snmp documentation source has been converted from SGML to
	      XML.

    OTP-6784  [agent] Unexpected worker process termination. When the agent
	      is multi-threaded (multi_thread = true), sending a request to
	      the agent with an invalid context could lead to an unexpected
	      worker process termination. This is a non-fatal problem since
	      the master-agent would simply create a new worker process.


--- snmp-4.9.5 ------------------------------------------------------------

    OTP-6805  [agent] The order in which the processes in the snmp agent where
	      terminated was incorrect. This could, in some case's, lead to
	      incomming request(s) beeing processed during the application
	      termination phase. This, in turn, could lead to various
	      process crashes (when expected resources where no longer
	      available).

    OTP-6815  [agent] In version 4.9.4 some requests could be handled
	      single threaded regardless of the value of the multi_thread
	      config option.


--- snmp-4.9.6 ------------------------------------------------------------

    OTP-6840  [compiler] The MIB compiler did not handle import of the
	      macro from the MIB RFC1155-SMI.

    OTP-6843  Bad length check (i.e. none) when decoding
	      AuthenticationParameters.


--- snmp-4.10 ------------------------------------------------------------

    OTP-6649  [agent] Added support for message filtering in the network
	      interface module provided with the application. The component
	      that actually make the filter decisions is the network
	      interface filter module. This module must implement the
	      network interface filter behaviour for message filtering. See
	      also the Configuring the application chapter of the User's
	      Guide to see how to configure this feature.

    OTP-6841  Add ability to modify Audit Trail Log type in run-time for
	      both agent and manager.

    OTP-6898  Add ability to modify the request limit in run-time for both
	      agent and manager.

    OTP-6945  Added buffer sizes (both receive and send) of the udp
	      socket(s) when calling the snmpa:info and snmpm:info
	      function(s).


--- ssh-0.9.9.2 ------------------------------------------------------------

    OTP-6727  The caller was hanged when listening with ssh_sshd:listen (or
	      ssh_sftpd:listen) on a port and IP already in use. Now an
	      error is returned instead. Cd ../.. didn't work when
	      connecting to a ssh_sftpd server.


--- ssl-3.9 ------------------------------------------------------------

    OTP-4677  All inet options are available in the new ssl implementation
	      that is released as a alpha in ssl-3.9 and will replace the
	      old implementation in ssl-4.0. This will not be fixed in the
	      old implementation.

    OTP-5510  The new ssl implementation released as a alpha in this version
	      supports upgrading of a tcp connection to a ssl connection so
	      that http client and servers may implement RFC 2817.

    OTP-6619  A new implementation of ssl is released as a alpha version in
	      ssl-3.9 it will later replace the old implementation in
	      ssl-4.0. The new implementation can be accessed by providing
	      the option {ssl_imp, new} to the ssl:connect and ssl:listen
	      functions.

	      The new implementation is Erlang based and all logic is in
	      Erlang and only payload encryption calculations are done in C
	      via the crypto application. The main reason for making a new
	      implementation is that the old solution was very crippled as
	      the control of the ssl-socket was deep down in openssl making
	      it hard if not impossible to support all inet options, ipv6
	      and upgrade of a tcp connection to a ssl connection. The alpha
	      version has a few limitations that will be removed before the
	      ssl-4.0 release. Main differences and limitations in the alpha
	      are listed below.

	      The new ssl requires the crypto
	      application. The option reuseaddr is supported and the
	      default value is false as in gen_tcp. Old ssl is patched to
	      accept that the option is set to true to provide a smoother
	      migration between the versions. In old ssl the option is hard
	      coded to true. ssl:version/0 is replaced by ssl:versions/0
	      ssl:ciphers/0 is replaced by ssl:cipher_suites/0 ssl:pid/1 is
	      a meaningless function in new ssl and will be deprecated in
	      ssl-4.0 until it is removed it will return a valid but
	      meaningless pid. New API functions are ssl:shutdown/2,
	      ssl:cipher_suites/[0,1] and ssl:versions/0 Diffie-Hellman
	      keyexchange is not supported. Not all inet packet types are
	      supported. CRL and policy certificate extensions are not
	      supported. In this alpha only sslv3 is enabled, although tlsv1
	      and tlsv1.1 versions are implemented and will be supported in
	      future versions. For security reasons sslv2 is not supported.

    OTP-6637  New ssl implementation, released as alpha in ssl-3.9, supports
	      ipv6. It will not be supported in the old implementation.

    OTP-6926  ssl_prim.erl was passing an FD rather than an #sslsocket to
	      ssl_broker:ssl_accept_prim. This could cause problems in the
	      deprecated accept function, this will not cause any more
	      problems however this function is deprecated!


--- stdlib-1.14.5.1 ------------------------------------------------------------

    OTP-6745  The documentation of process_flag(priority, Level)
	      has been updated, see the erlang(3) documentation.
	      
    OTP-6789  Restored speed of bit-syntax matching of 32 bits integers.

    OTP-6800  The log_mf_h event handler didn't close the index file when
	      it was done reading it causing a file descriptor leak.

    OTP-6806  The internal (rarely used) DNS resolver has been modified to
	      not use the domain search list when asked to resolve an
	      absolute name; a name with a terminating dot. There was also
	      a bug causing it to create malformed DNS queries for absolute
	      names that has been corrected, correction suggested by Scott
	      Lystig Fritchie. The code has also been corrected to look up
	      cached RRs in the same search order as non-cached, now allows
	      having the root domain among the search domains, and can now
	      actually do a zone transfer request.

    OTP-6811  zlib:close/1 would leave an EXIT message in the message queue
	      if the calling process had the trap_exit flag enabled.

    OTP-6816  All exported functions in gzio.c have now been renamed to
	      avoid conflict with drivers that are indirectly linked with
	      an external zlib library.

    OTP-6817  Calling binary_to_term/1 with certain invalid binaries would
	      crash the emulator.

    OTP-6818  The dict:size/1 and orddict:size/1 functions have been
	      documented.


--- stdlib-1.14.5.2 ------------------------------------------------------------

    OTP-6834  The compiler will for forward compatibility ignore the
	      -type() and -spec() attributes that will be introduced in the
	      R12B release.


--- stdlib-1.14.5.3 ------------------------------------------------------------

    OTP-6861  The allowed syntax for -type() and -spec() was updated.


--- stdlib-1.15 ------------------------------------------------------------

    OTP-3954  The behaviour of the internal functions gen:call/3,4 has been
	      changed slightly in the rare case that when the caller was
	      linked to the called server, and the server crashed during
	      the call; its exit signal was consumed by the gen:call/3,4
	      code and converted to an exit exception. This exit signal is
	      no longer consumed.

	      To even notice this change, 1) the calling process has to be
	      linked to the called server.

	      2) the call must not be remote by name that is it must be
	      local or remote by pid, local by name or global by name.

	      3) the calling process has to have set
	      process_flag(trap_exit, true).

	      4) the server has to crash during the call.

	      5) the calling process has to be sensitive to getting
	      previously consumed {'EXIT',Pid,Reason} messages in its
	      message queue.

	      The old behaviour was once the only way for a client to
	      notice if the server died, but has since
	      erlang:monitor(process, {Name,Node}) was introduced and used
	      in gen:call been regarded as an undesired behaviour if not a
	      bug.

	      The affected user APIs are: gen_server:call/2,3,
	      gen_fsm:sync_send_event/2,3,
	      gen_fsm:sync_send_all_state_event/2,3, gen_event:_, sys:_ and
	      maybe a few others that hardly will be noticed.

    OTP-6554  When an exception occurs the Erlang shell now displays the
	      class, the reason, and the stacktrace in a clearer way
	      (rather than dumping the raw EXIT tuples as before).
	      proc_lib:format/1 displays the exception of crash reports in
	      the same clearer way.

	      The new shell command catch_exception and the new application
	      configuration parameter shell_catch_exception can be used for
	      catching exceptions that would normally exit the Erlang
	      shell.

    OTP-6671  The function string:join/2 joins strings in a list with a
	      separator. Example: 'string:join(["a", "b", "c"], ", ") gives
	      "a, b, c"'

    OTP-6673  Bugs have been fixed in qlc: Setting
	      the lookup_fun option of qlc:table/2 to undefined could cause
	      a crash. If a QLC restricted some column of a table in such a
	      way that a traversal using a match specification was possible
	      and the QLC also compared the key column or some indexed
	      column of the the table with a column of some other table,
	      qlc always chose to traverse the table first, never
	      considering lookup join. This has been changed so that lookup
	      join is always preferred; if an initial traversal using the
	      match specification is desired, the query needs to be
	      rewritten introducing an extra QLC with the filter(s)
	      restricting the column. When trying to find candidates for
	      match specifications and lookup, filters using variables from
	      one generator only are ignored unless they are placed
	      immediately after the generator and possibly other filters
	      using variables from the same generator. In particular,
	      filters joining two tables should not be placed between the
	      generator and the filters using the generator only. The
	      call-back function TraverseFun used for implementing QLC
	      tables is allowed to return a term other than a list since
	      STDLIB 1.14 (OTP-5195). However, when the returned term was a
	      fun qlc often tried to call the fun instead of returning it.

	      A few minor optimizations have been implemented as well.

    OTP-6708  The control sequence P of the Format argument of the
	      functions io:fwrite/2,3 and io_lib:fwrite/2 now inserts fewer
	      line breaks when printing tuples and lists. A soft upper
	      limit of 60 on the number of non-white characters on a line
	      has been introduced.

    OTP-6733  The new module array provides a fast functional array
	      implementation.

    OTP-6785  A bug concerning the use of parameterized modules from the
	      shell has been fixed.

    OTP-6787  A bug regarding the size expression of the bit syntax has
	      been fixed in the erl_eval module.

    OTP-6800  The log_mf_h event handler didn't close the index file when
	      it was done reading it causing a file descriptor leak.

    OTP-6845  Functions that have long been deprecated have now been
	      removed from the following modules: dict, erl_eval, erl_pp,
	      io, io_lib, lists, orddict, ordsets, sets, and string.

	      The undocumented function lists:zf/3 has also been removed
	      (use a list comprehension or lists:zf/2 instead).

    OTP-6853  Minor documentation corrections for file:pread/2 and
	      file:pread/3.

    OTP-6870  Definitions for the filename() and dirname() types have been
	      added to the documentation for the filelib module.

    OTP-6906  The ets:fixtable/2 function, which has been deprecated for
	      several releases, has been removed.

	      The ets:info/1 function has been reimplemented as a BIF,
	      which guarantees that information returned is consistent.

	      The ets:info/2 function now fails with reason badarg if the
	      second argument is invalid. (Dialyzer can be used to find
	      buggy code where the second argument is misspelled.)

    OTP-6911  The Erlang pretty printer erl_pp now inserts more newlines in
	      order to facilitate line coverage analysis by Cover. (Thanks
	      to Thomas Arts.)

    OTP-6928  The documentation for ets:safe_fixtable/2, ets:foldl/3, and
	      ets:foldr/3 is now clearer about what will happen if objects
	      are inserted during table traversals.

    OTP-6943  It is now possible to extract files in tar files directly
	      into binaries. It is also possible to add files to tar files
	      directly from binaries.

    OTP-6953  The functions keystore/4 and keytake/3 are new in the lists
	      module.

    OTP-6964  The new qlc option tmpdir_usage can be used for outputting
	      messages onto the error logger when a temporary file is about
	      to be created, or to prohibit the usage of temporary files
	      altogether.

    OTP-6967  file:write_file/3, file:write/2 and file:read/2 could crash
	      (contrary to documentation) for odd enough file system
	      problems, e.g write to full file system. This bug has now
	      been corrected.

	      In this process the file module has been rewritten to produce
	      better error codes. Posix error codes now originate from the
	      OS file system calls or are generated only for very similar
	      causes (for example 'enomem' is generated if a memory
	      allocation fails, and 'einval' is generated if the file
	      handle in Erlang is a file handle but currently invalid).

	      More Erlang-ish error codes are now generated. For example
	      {error,badarg} is now returned from file:close/1 if the
	      argument is not of a file handle type. See file(3).

	      The possibility to write a single byte using file:write/2
	      instead of a list or binary of one byte, contradictory to the
	      documentation, has been removed.

    OTP-6977  A bug concerning the evaluation of the ++/2 operator has been
	      fixed in erl_eval. (Thanks to Matthew Dempsky.)


--- test_server-3.2.0 ------------------------------------------------------------

    OTP-6989  Test Server is a portable test server for automated
	      application testing. The server can run test suites on local
	      or remote targets and log progress and results to HTML pages.
	      The main purpose of Test Server is to act as engine inside
	      customized test tools. A callback interface for such
	      framework applications is provided.


--- tools-2.6 ------------------------------------------------------------

    OTP-6758  The cover tool could use huge amounts of memory when used in
	      a distributed system.


--- webtool-0.8.3.2 ------------------------------------------------------------

    OTP-6998  Minor updates.


--- xmerl-1.1.5 ------------------------------------------------------------

    OTP-6720  The head of a substitutionGroup may have type anyType and
	      thus allow members of any type. This was overseen, but is now
	      corrected.

    OTP-6739  A recursive group reference in a redefine refers to the
	      definition in the redefined schema. See 4.2.2 in XMLSchema
	      part1 "Schema Representation Constraint: Individual Component
	      Redefinition" bullet 2.

    OTP-6752  Solved some content model problems, for instance in some
	      cases failed when more than one choice.


--- xmerl-1.1.6 ------------------------------------------------------------

    OTP-6773  Parsing XML with option {validation,schema} is now
	      corrected.

    OTP-6877  union type is now supported

    OTP-6910  Now xmerl validates as expected when a sequence has a present
	      group member and a following element.