Bug fix release : otp_src_R14B04
Build date      : 2011-10-04

This is R14B04, the fourth maintenance release for the R14B major release.

You can find the README file for the release at

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

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

  http://www.erlang.org/download/otp_src_R14B04.tar.gz
  http://www.erlang.org/download/otp_win32_R14B04.exe

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

  http://www.erlang.org/download/otp_src_R14B04.tar.gz.torrent
  http://www.erlang.org/download/otp_win32_R14B04.exe.torrent

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

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

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

  http://www.erlang.org/download/otp_doc_html_R14B04.tar.gz
  http://www.erlang.org/download/otp_doc_man_R14B04.tar.gz

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

The OTP Team


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

    OTP-9491  Again: Call chmod without the "-f" flag

	      Commit 7ed11a886fc8fcaf3c2b8324294e2f24e02b0f28 removed the
	      "-f" flag from chmod calls in Makefiles:

	      | "-f" is a non-standard chmod option which at least SGI IRIX
	      and HP UX | do not support. As the only effect of the "-f"
	      flag is to suppress | warning messages, it can be safely
	      omitted.

	      Meanwhile, new "chmod -f" calls have been added. This commit
	      removes the "-f" flag from those new calls. (Thanks to Holger
	      Wei�)

    OTP-9555  Improve spelling throughout documentation, code comments and
	      error messages


--- asn1-1.6.18 ---------------------------------------------------------

    OTP-9536  Implement or fix -Werror option

	      If -Werror is enabled and there are warnings no output file
	      is written. Also make sure that error/warning reporting is
	      consistent. (Thanks to Tuncer Ayaz)


--- common_test-1.5.5 ---------------------------------------------------

    OTP-8933  Various corrections and updates to improve the handling and
	      reporting of errors.

    OTP-9155  The dir and suite start option can now be used in
	      combination. E.g. executing my_SUITE in directory my_tests
	      can either be specified as "ct_run -suite my_tests/my_SUITE"
	      or as "ct_run -dir my_tests -suite my_SUITE". Furthermore,
	      the specification:
	      ct:run_test([{suite,["./my_SUITE"]},{testcase,t1}]) is now
	      interpreted as
	      ct:run_test([{suite,"./my_SUITE"},{testcase,t1}]), i.e. only
	      testcase t1 in test suite my_SUITE - not all cases - will be
	      executed.

    OTP-9237  An error in how comments are colored in the test suite
	      overview html log file has been corrected. As result, a new
	      framework callback function, format_comment/1, has been
	      introduced.

    OTP-9369  Automatically generated init- and end-configuration functions
	      for test case groups caused incorrect execution order of test
	      cases. This has been corrected.

    OTP-9370  If multiple directories were specified with the 'logdir'
	      flag/option, Common Test would crash. This has been fixed so
	      that an error is properly reported instead.

    OTP-9371  If ct:log/2 was called with bad arguments, this could cause
	      the Common Test IO handling process to crash. This fault has
	      been corrected.

    OTP-9372  A new option, 'logopts', has been introduced, to make it
	      possible to modify some aspects of the logging behaviour in
	      Common Test (or Test Server). For example, whenever an io
	      printout is made, test_server adds newline (\n) to the end of
	      the output string. This may not always be a preferred action
	      and can therefore be disabled by means of "ct_run ...
	      -logopts no_nl" (or ct:run_test([..., {logopts,[no_nl]}])). A
	      new framework callback function, get_logopts/0, has been
	      introduced (see the ct_framework module for details).

    OTP-9379  A bug has been fixed that made Test Server call the end_tc/3
	      framework function with an incorrect module name as first
	      argument.

    OTP-9396  A new option, 'logopts', has been introduced, to make it
	      possible to modify some aspects of the logging behaviour in
	      Common Test (or Test Server). For example, if the html
	      version of the test suite source code should not be generated
	      during the test run (and consequently be unavailable in the
	      log file system), the feature may be disabled by means of
	      "ct_run ... -logopts no_src" (or ct:run_test([...,
	      {logopts,[no_src]}])). A new framework callback function,
	      get_logopts/0, has been introduced (see the ct_framework
	      module for details).

    OTP-9398  If a timetrap timeout occured during execution of of a
	      function in a lib module (i.e. a function called directly or
	      indirectly from a test case), the Suite argument in the
	      end_tc/3 framework callback function would not correctly
	      contain the name of the test suite, but the lib module. (This
	      would only happen if the lib module was compiled with ct.hrl
	      included). This error has been solved.

    OTP-9429  Corrections of the vts mode. It will now report errors (about
	      e.g. incorrect config files) instead of crashing or hanging.
	      Furthermore, the requirement that the test directory name
	      must have a "_test" suffix has been removed. Also, a
	      workaround has been implemented for the limitation that the
	      file browser (in many web browsers) will only return the
	      basic file name, not the full directory path (which made it
	      impossible to have config files in other directories than the
	      main test directory).

    OTP-9445  CT Hooks can now be assigned a priority. The priority of a
	      CTH determines when it should execute in relation to other
	      CTHs. The CTH with the lowest priority will be executed
	      first, CTHs with equal priority will be executed in the order
	      which they were installed.

    OTP-9499  Add a proplist() type

	      Recently I was adding specs to an API and found that there is
	      no canonical proplist() type defined. (Thanks to Ryan
	      Zezeski)

    OTP-9501  It is now possible to use a tuple {M,F,A}, or a fun, as
	      timetrap specification in the suite info function or test
	      case info functions. The function must return a valid timeout
	      value, as documented in the common_test man page and in the
	      User's Guide.

    OTP-9518  It is now possible to use the 'step' flag/option to run the
	      debugger for test suites that contain test case groups. This
	      previously caused Common Test to crash. If 'step config' is
	      specified, breakpoints are now also automatically set on
	      init_per_group and end_per_group. Note that breakpoints are
	      always set automatically on test case functions and this is
	      true also for grouped cases.

    OTP-9520  The test index page was not refreshed at the start of each
	      test suite which made it impossible to follow test execution
	      by means of refreshing the browser window (no links to
	      follow). This has been fixed.

    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-9564  Common Test now has the possibility to have built-in hooks
	      which are started by default when any test is run. To disable
	      built-in hooks pass 'enable_builtin_hooks false' to common
	      test. See the common test hooks documentation for more
	      details.

    OTP-9584  If a test suite would start with a test case group defined
	      without the init_per_group/2 and end_per_group/2 function,
	      init_per_suite/1 would not execute initially and logging of
	      the test run would fail. This error has been fixed.

    OTP-9592  The "Missing Suites" link from the top level index page was
	      incorrect and has been fixed.


--- compiler-4.7.5 ------------------------------------------------------

    OTP-9534  Compiler options given in the source code using a -compile()
	      attribute used to be included twice in
	      Mod:module_info(compile). They are now only included once at
	      the beginning of the list of options.

    OTP-9571  beam_disasm: Handle stripped BEAM files

	      beam_disasm:file/1 would crash if asked to disassemble a
	      stripped BEAM file without an "Attr" chunk. (Thanks to Haitao
	      Li)


--- cosFileTransfer-1.1.12 ----------------------------------------------

    OTP-9550  XML files have been corrected.


--- crypto-2.0.3.1 ------------------------------------------------------

    OTP-9566  crypto changed to be dynamically linked against OpenSSL


--- crypto-2.0.3.2 ------------------------------------------------------

    OTP-9603  Changed crypto and ssl to be dynamically linked to OpenSSL 
              and use version 0.9.8 of OpenSSL (instead of 0.9.7) on PowerPC.


--- crypto-2.0.4 --------------------------------------------------------

    OTP-9526  crypto:rand_uniform works correctly for negative integers.
	      Fails with badarg exception for invalid ranges (when Hi =<
	      Lo) instead of returning incorrect output.

    OTP-9532  Fix win32 OpenSSL static linking (Thanks to Dave Cottlehuber)


--- dialyzer-2.4.4 ------------------------------------------------------

    OTP-9483  Update results of race_SUITE/extract_translations Update
	      results of small_SUITE/flatten Add codec_can and
	      list_to_bitstring tests Fix bug when reporting unused
	      functions Update Dialyzer r9c_suite results Fix dialyzer
	      warning on default clause for binary comprehension (Thanks to
	      Ivan Dubrov)

    OTP-9489  Fix server loop detection

	      Dialyzer does not normally emit warnings for functions that
	      implement non-terminating server loops. This detection failed
	      when some of the elements in an SCC terminated normally
	      (being for example list comprehensions or other generic
	      anonymous functions that were included in the SCC). This
	      patch fixes that.

    OTP-9496  Types for several BIFs have been extended/corrected. Also the
	      types for types for lists:keyfind/3, lists:keysearch/3, and
	      lists:keyemember/3 have been corrected. The
	      incorrect/incomplete types could cause false dialyzer
	      warnings.

    OTP-9499  Add a proplist() type

	      Recently I was adding specs to an API and found that there is
	      no canonical proplist() type defined. (Thanks to Ryan
	      Zezeski)

    OTP-9529  Suppress some warnings about generation of non-returning funs

	      No warnings are emitted for funs that are non-returning when
	      the function that generates them has a contract that
	      specifies that it will return such a non-returning fun.

	      Enhance Dialyzer's inference on comparisons

	      This patch makes Dialyzer aware of Erlang's total ordering of
	      terms, enabling discrepancy detection in cases where e.g.
	      integer() < tuple() is treated as a comparison that might
	      also return false (when it is certain to always return true).

	      Minor fix in dead code

	      Fix infinite loop in dataflow

	      Update r9c/{inets,mnesia} results in dialyzer's test suite

	      Add origin information to #fun_var closures

	      (Thanks to Tuncer Ayaz and Maria Christakis)

    OTP-9560  Quote atoms if necessary in types

	      Atoms in some occurrences were not correctly quoted when
	      formatted to strings, for instance by the typer program
	      (Thanks to Tomas Abrahamsson)

	      Update Dialyzer's reference results

    OTP-9597  Fix typer's crash for nonexisting files Remove unused macro
	      Fix bug in dataflow Decrease tuple arity limit This fixes a
	      memory related crash.


--- diameter-0.10 -------------------------------------------------------

    OTP-9467  @id required in dictionary files only when @messages is
	      specified.

	      @id defines an application identifier and this is used only
	      when sending or receiving messages. A dictionary can define
	      only AVP's however, to be included by other dictionaries
	      using @inherits, in which case it makes no sense to require
	      @id.

	      Note that message definitions are not inherited with
	      @inherits, only AVP's

    OTP-9469  Allow @enum when AVP is defined in an inherited dictionary.

	      3GPP standards (for one) extend the values allowed for RFC
	      3588 AVP's of type Enumerated. Previously, extending an AVP
	      was only possible by completely redefining the AVP.

    OTP-9538  Handle #sctp_paddr_change and #sctp_pdapi_event from
	      gen_sctp.

	      The events are enabled by default but diameter_sctp neither
	      disabled nor dealt with them. Reception of such an event
	      caused a transport process to crash.

    OTP-9553  Migrate testsuites to pure common test and add both suites
	      and testcases.

    OTP-9577  Fix header folding bug.

	      A prepare_request callback from diameter can return a
	      diameter_header record in order to set values in the header
	      of an outgoing request. A fault in diameter_lib:fold_tuple/3
	      caused the subsequent encode of the outgoing request to fail.

    OTP-9578  Fix bugs in sending of answer-message replies.

	      3001 (DIAMETER_COMMAND_UNSUPPORTED) was not sent since the
	      decode placed the AVP list in the wrong field of the
	      diameter_packet, causing the subsequent encode to fail.
	      Session-Id was also set improperly, causing encode to fail
	      even in this case.

    OTP-9579  Fix improper use of error_logger:info_report/2.

	      Function doesn't take a format string and arguments as it was
	      called. Instead use error_logger:info_report/1 and use the
	      same report format as used for warning and error reports.

    OTP-9580  Fix and clarify semantics of peer filters.

	      An eval filter returning a non-true value caused the call
	      process to fail and the doc was vague on how an exception was
	      treated. Clarify that the non-tuple host/realm filters assume
	      messages of a certain form.

    OTP-9581  Requests of arbitrary form.

	      diameter:call/4 can be passed anything, as long as the
	      subsequent prepare_request callback returns a term that can
	      be encoded.

    OTP-9583  Fix and clarify relay behaviour.

	      Implicit filtering of the sending peer in relaying a request
	      could cause loop detection to be preempted in a manner not
	      specified by RFC3588. Reply with 3002
	      (DIAMETER_UNABLE_TO_DELIVER) on anything but an answer to a
	      relayed request.


--- docbuilder-0.9.8.11 -------------------------------------------------

    OTP-9509  The docbuilder application has been deprecated and will be
	      removed in the R15 release.


--- edoc-0.7.9 ----------------------------------------------------------

    OTP-9350  no_return is a new built-in type.

    OTP-9463  synchronized with edoc development version

	      forgot to ensure that xmerl is found in path for include_lib
	      to work

	      fix -spec declaration that doesn't work in R13B04

	      eliminate warnings about unused imports

	      removed CVS-keywords from source files (Thanks to Richard
	      Carlsson )

    OTP-9499  Add a proplist() type

	      Recently I was adding specs to an API and found that there is
	      no canonical proplist() type defined. (Thanks to Ryan
	      Zezeski)

    OTP-9590  Removed some never-matching clauses reported by dialyzer Fix
	      macro expansion in comments following Erlang types URI-escape
	      bytes as two hex digits always (reported by Alfonso De
	      Gregorio) Updated author e-mail Recognize some more URI
	      schemas in wiki text, in particular https (Thanks to Richard
	      Carlsson)


--- erl_docgen-0.2.6 ----------------------------------------------------

    OTP-9360  Bug fixes.

    OTP-9541  The manpage generation has been improved.

    OTP-9562  Fix eix file generation for new function spec references.

    OTP-9563  The function signatures in the pdf files was not in a fixed
	      font.

    OTP-9576  The parts level in the system documentation was missing in
	      the bookmarks menu for the pdf and the copyright year
	      generation for PDF was not correct.

    OTP-9588  The indentation after Warning: and Note: in manpages has been
	      improved.


--- erl_interface-3.7.5 -------------------------------------------------

    OTP-9390  Align ei buffer according to size of pointers

    OTP-9530  ei: integer overflow in string/atom encoding

	      ei_encode_atom() and ei_encode_string() use strlen() to get
	      the length of the buffer. As strlen() returns an unsigned
	      long long and both ei functions take a signed integer, the
	      length fields may overflow.

	      Check so that the results of strlen can be held in a signed
	      integer. (Thanks to Michael Santos)

    OTP-9550  XML files have been corrected.

    OTP-9559  Make comment and documentation reflect code in
	      erl_interface/src/misc/ei_decode_term.c (Thanks to Anneli
	      Cuss)


--- erts-5.8.4.1 --------------------------------------------------------

    OTP-9339  The erts_alloc_util framework has been extended with functionality 
              for separation of small blocks from other blocks in separate 
              carriers. This functionality is currently disabled by default, 
              but can be enabled in order to finetune memory management. 
              For more information see erts_alloc(3). 

    OTP-9422  Fix bug in tracing with matchspec body containing enable_trace 
              or disable_trace. Could cause emulator crash if trace was 
              altered with erlang:trace_pattern by racing process during 
              ongoing tracing. 

    OTP-9423  Fix emulator deadlock in ets:delete on tables with write_concurrency 
              caused by race with concurrent process that tries to do 
              other operation on the same table. Does not apply to ordered_set. 
              Bug exist since R14B.


--- erts-5.8.5 ----------------------------------------------------------

    OTP-9284  Several bugs concerning constant binary constructions such as
	      <<0:4294967295>> have been corrected. Depending on the actual
	      size of the binary and the type of run-time system (32-bit,
	      halfword, 64-bit), such expression could either crash the
	      run-time system or make the loader refuse loading of the
	      module.

    OTP-9344  The Erlsrv utility failed to stop the erlang machine if no
	      StopAction was defined when the service was stopped. This is
	      now corrected.

    OTP-9356  Types and specifications have been added.

    OTP-9373  Due to a bug in glibc the runtime system could abort while
	      trying to destroy a mutex. A fix for this was introduced in
	      R14B02. This fix did, however, not solve the problem. The
	      runtime system will now issue a warning instead of aborting.

    OTP-9377  Replace atom in DRV macro in prim_file with string

	      An experimental version of Dialyzer discovered that the atom
	      that replaced the DRV macro in prim_file ends up in calls to
	      erlang:open_port({spawn, Driver}, Portopts) as the Driver
	      argument. The documentation states that this call requires a
	      string there.

	      This change is also consistent with the one introduced in
	      commit 0f03b1e9d2bef3bc830c31a369261af4c5234727 by Kostis
	      Sagonas.

    OTP-9387  Fix typos in the epmd documentation (Thanks to Holger Wei� )

    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-9424  New allocator strategy "address order first fit". May ease
	      the emptying of memory carriers and thereby real release of
	      memory back to the OS.

    OTP-9427  Fix epmd crash on vxworks caused by faulty argument to
	      select() system call.

    OTP-9435  The ets:test_ms function could in rare cases truncate the
	      error messages. This is now corrected.

    OTP-9452  Fix bug related to hibernate and HiPE (clear
	      F_HIBERNATE_SCHED flag)

	      F_HIBERNATE_SCHED flag that was introduced in
	      b7ecdcd1ae9e11b8f75e must be cleared in hipe_mode_switch as
	      well. Otherwise, processes running HiPE code that hibernate,
	      wake up and then trap into a BIF will not be
	      rescheduled.(Thanks to Paul Guyot)

    OTP-9453  Fix bug in FreeBSD topology detection code (Thanks to Paul
	      Guyot)

    OTP-9454  Fix use of logical operator &amp;&amp; with constant operand
	      instead of bitwise &amp; (Thanks to Cristian Greco)

    OTP-9455  inet: error if fd does not match socket domain

	      If an IPv4 fd is opened as an IPv6 socket, unexpected
	      behaviour can occur. For example, if an IPv4 UDP socket is
	      opened and passed into Erlang as an IPv6 socket, the first 3
	      bytes (corresponding to 1 byte representing the protocol
	      family, 2 bytes set to the port) are stripped from the
	      payload. The cause of the UDP payload truncation happens in
	      inet_drv.c:packet_inet_input when a call to inet_get_address
	      fails silently because the family is set to PF_INET6 but the
	      buffer len is the size of an IPv4 struct sockaddr_in.

	      (Thanks to Andrew Tunnell-Jones for finding the bug and the
	      test case!)

    OTP-9487  erts: use a union to avoid strict aliasing issues

	      Use a union for pointer type conversion to avoid compiler
	      warnings about strict-aliasing violations with gcc-4.1. gcc
	      >= 4.2 does not emit the warning. erts: adapt matrix_nif to
	      R14 erl_nif API changes (Thanks To Tuncer Ayaz)

    OTP-9488  fix 64-bit issues in the garbage collection (Thanks to
	      Richard Carlsson)

    OTP-9495  The new erlang:check_old_code/1 BIF checks whether a module
	      has old code.

    OTP-9500  epmd: fix compiler warnings

	      Suppress compiler warnings about ignored return values.
	      (Thanks to Michael Santos )

    OTP-9504  Fix non-existing function (erlang:disconnect/1) in
	      distributed reference manual (Thanks to Fabian Kr�l)

    OTP-9506  Update documentation and specifications of some of the zlib
	      functions.

    OTP-9512  Document fdatasync -lrt requirement (SunOS <= 5.10) (Thanks
	      to Tuncer Ayaz)

    OTP-9525  Let epmd ignore empty ERL_EPMD_ADDRESS

	      If the environment variable ERL_EPMD_ADDRESS is set to the
	      empty string, empd now behaves like it does by default when
	      ERL_EPMD_ADDRESS is unset. That is, in this case, epmd now
	      listens on all available interfaces instead of using only the
	      loopback interface, which happened because epmd added the
	      loopback address to the (in this case empty) list of
	      addresses specified via ERL_EPMD_ADDRESS.

	      Also, epmd now ignores ERL_EPMD_ADDRESS if it contains only
	      separator characters (comma and space).

	      The same applies to epmd's -address option.(Thanks to Holger
	      Wei�)

    OTP-9527  Remove dead code in erl_compile (Thanks to Tuncer Ayaz)

    OTP-9528  Add erlang:external_size/2 BIF

	      This BIF's second parameter is a list of options. Currently
	      the only allowed option is {minor_version, Version} where
	      version is either 0 (default) or 1. (Thanks to Filipe David
	      Manana )

    OTP-9531  Detect the available CPUs on IRIX

	      Add support for querying the number of configured and online
	      processors on SGI systems running IRIX.(Thanks to Holger
	      Wei�)

    OTP-9533  Fix enif_compare on 64bits machines

	      In 64bits machines the Sint type has a size of 8 bytes, while
	      on 32bits machines it has a 4 bytes size. enif_compare was
	      ignoring this and therefore returning incorrect values when
	      the result of the CMP function (which returns a Sint value)
	      doesn't fit in 4 bytes. (Thanks to Filipe David Manana)

    OTP-9536  Implement or fix -Werror option

	      If -Werror is enabled and there are warnings no output file
	      is written. Also make sure that error/warning reporting is
	      consistent. (Thanks to Tuncer Ayaz)

    OTP-9537  In some rare cases we did not have a run queue when
	      scheduling misc ops. This is now fixed.

    OTP-9542  Remove misc. compiler warnings

    OTP-9544  Two bugs in gen_sctp has been corrected: getopts/setopts
	      hence also send could only be called from socket owner, and
	      options 'linger', 'rcvbuf' and 'sndbuf' was read from wrong
	      protocol layer hence read wrong values by getopts.

    OTP-9547  Erlang/OTP can now be built on MacOS X Lion.

    OTP-9550  XML files have been corrected.

    OTP-9557  Fix potential errors inspired by running cppcheck(1) (Thanks
	      to Christian von Roques)

    OTP-9567  When auxiliary work was enqueued on a scheduler, the wakeup
	      of the scheduler in order to handle this work could be lost.
	      Wakeups in order to handle ordinary work were not effected by
	      this bug. The bug only effected runtime systems with SMP
	      support as follows:

	      Deallocation of some ETS data structures could be delayed. On
	      Linux systems not using the NPTL thread library (typically
	      ancient systems with kernel versions prior to 2.6) and
	      Windows systems, the {Port, {exit_status, Status}} message
	      from a terminating port program could be delayed. That is, it
	      only effected port programs which had been started by passing
	      exit_status as an option to open_port/2.

    OTP-9586  Handle rare race in the crypto key server functionality


--- et-1.4.4 ------------------------------------------------------------

    OTP-9470  Dialyzer warnings have been fixed.


--- eunit-2.2.1 ---------------------------------------------------------

    OTP-9465  Generate separate surefire XMLs for each test suite

	      Previously the test cases of all test suites (=modules) were
	      put in one and the same surefire report XML thereby breaking
	      the principle of least astonishment and making post analysis
	      harder. Assume the following layout:

	      src/x.erl src/y.erl test/x_tests.erl test/y_tests.erl

	      The results for both x_tests and y_tests were written to only
	      one report grouped under either module x or y (seemingly
	      randomly).

	      Now two reports, one for module x and one for y are
	      generated. (Thanks to Klas Johansson)

    OTP-9505  Updated to EUnit version 2.2.0

	      New macros assertNotMatch(Guard, Expr),
	      assertNotEqual(Unexpected, Expr), and
	      assertNotException(Class, Term, Expr). 

	      The debugMsg macro now also prints the pid of the current
	      process.

	      When testing all modules in a directory, tests in
	      Module_tests.erl are no longer executed twice.

	      The use of regexp internally has been replaced with re.
	      (Thanks to Richard Carlsson)

    OTP-9591  Removed some never-matching clauses reported by dialyzer
	      Updated author e-mails and homepages Removed cvs keywords
	      from files Removed files that should not be checked in
	      (Thanks to Richard Carlsson)


--- gs-1.5.14 -----------------------------------------------------------

    OTP-9542  Remove misc. compiler warnings


--- hipe-3.8.1 ----------------------------------------------------------

    OTP-9496  Types for several BIFs have been extended/corrected. Also the
	      types for types for lists:keyfind/3, lists:keysearch/3, and
	      lists:keyemember/3 have been corrected. The
	      incorrect/incomplete types could cause false dialyzer
	      warnings.

    OTP-9511  Clean up hipe.hrl.src (Thanks to Tuncer Ayaz)

    OTP-9556  Fix bug with binary pattern matching of floats of variable
	      size

	      Pattern matching of floats with variable size (<<F:S/float>>)
	      did always fail. Judging from similar code for ints, this bug
	      is simply a typo.(Thanks to Paul Guyot)

    OTP-9560  Quote atoms if necessary in types

	      Atoms in some occurrences were not correctly quoted when
	      formatted to strings, for instance by the typer program
	      (Thanks to Tomas Abrahamsson)

	      Update Dialyzer's reference results

    OTP-9597  Fix typer's crash for nonexisting files Remove unused macro
	      Fix bug in dataflow Decrease tuple arity limit This fixes a
	      memory related crash.


--- ic-4.2.27 -----------------------------------------------------------

    OTP-9460  Reduced compile overhead (Thanks to Haitao Li).


--- inets-5.7 -----------------------------------------------------------

    OTP-5566  [httpc|httpd] Added support for IPv6 with ssl. 

    OTP-9317  [httpc] Remove unnecessary usage of iolist_to_binary when 
              processing body (for PUT and POST). Filipe David Manana 

    OTP-9342  [ftp] FTP client doesn't work with IPv6 host. Attila Rajmund 
              Nohl 

    OTP-9343  Peer/sockname resolv doesn't work with IPv6 addrs in HTTP. 
              Attila Rajmund Nohl. 

    OTP-9365  [httpc] Clients started stand-alone not properly handled. 
              Also it was not documented how to use them, that is that 
              once started, they are represented by a pid() and not by 
              their profile().


--- inets-5.7.1 ---------------------------------------------------------

    OTP-9433  [httpc] Parsing of a cookie expire date should be more
	      forgiving. That is, if the parsing fails, the date should be
	      ignored. Also added support for (yet another) date format:
	      "Tue Jan 01 08:00:01 2036 GMT".

    OTP-9434  [httpc] Rewrote cookie parsing. Among other things solving
	      cookie processing from www.expedia.com.

    OTP-9524  [httpd] Typofix in httpd_file:handle_error message (Thanks to
	      Andr�s Veres-Szentkir�lyi )

    OTP-9561  [httpd] Fix httpd directory traversal on Windows. Directory
	      traversal was possible on Windows where backward slash is
	      used as directory separator.


--- kernel-2.14.5 -------------------------------------------------------

    OTP-9260  The types and specifications of the inet modules have been
	      improved.

    OTP-9356  Types and specifications have been added.

    OTP-9485  Contracts in STDLIB and Kernel have been improved and type
	      errors have been corrected.

    OTP-9506  Update documentation and specifications of some of the zlib
	      functions.

    OTP-9514  Fix type of Packet arg of gen_tcp:send/2 and gen_udp:send/4

	      The type is marked as a binary() or a string() but in
	      practice it can be an iodata(). The test suite was updated to
	      confirm the gen_tcp/2 and gen_udp:send/4 functions accept
	      iodata() (iolists) packets. (Thanks to Filipe David Manana)

    OTP-9550  XML files have been corrected.


--- megaco-3.15.1.1 -----------------------------------------------------

    OTP-9550  XML files have been corrected.


--- mnesia-4.5 ----------------------------------------------------------

    OTP-9473  Fix protocol issues. Mnesia-4.4.19 could not communicate with
	      to older nodes.

    OTP-9550  XML files have been corrected.

    OTP-9551  Dump the log even if no transactions have been invoked on
	      local node, otherwise the log will grow forever with
	      decisions from the other nodes who have tables on disk.
	      Thanks Marek Majkowski.

    OTP-9558  Use dedicated api for clear_table, i.e. instead of
	      match_delete use delete_all_objects. Thanks KukHyun Lee.


--- observer-0.9.10 -----------------------------------------------------

    OTP-9515  Do not install *.bat files on non-win32 machines (Thanks to
	      Hans Ulrich Niedermann)


--- odbc-2.10.11 --------------------------------------------------------

    OTP-8407  Add code to handle old ODBC drivers on solaris. Also adds
	      tests with MySQL.

    OTP-8493  Odbc now supports SQL_WLONGVARCHAR, thanks to Hanfei Shen for
	      the patch.

    OTP-9444  When using output parameters the internal odbc state was not
	      correctly cleaned causing the next call to param_query to
	      misbehave.

    OTP-9550  XML files have been corrected.


--- orber-3.6.22 --------------------------------------------------------

    OTP-9550  XML files have been corrected.


--- os_mon-2.2.7 --------------------------------------------------------

    OTP-9542  Remove misc. compiler warnings


--- parsetools-2.0.6 ----------------------------------------------------

    OTP-8318  Dialyzer warnings have been removed.

    OTP-9376  yecc: add warnings_as_errors option(Thanks to Tuncer ayaz)

    OTP-9484  Fix incorrect order of pseudo variables in yecc example

	      The example is for converting from infix to prefix. This
	      change uses to correct ordering of the triplet. (Thanks to
	      Garret Smith)

    OTP-9536  Implement or fix -Werror option

	      If -Werror is enabled and there are warnings no output file
	      is written. Also make sure that error/warning reporting is
	      consistent. (Thanks to Tuncer Ayaz)

    OTP-9550  XML files have been corrected.


--- percept-0.8.6 -------------------------------------------------------

    OTP-9490  Fix message handling in select requests

	      percept_db used to send results in untagged messages, and use
	      a non selective receive to extract them. When percept is used
	      from the shell process, this can confuse other messages with
	      the actual result.

	      Add a tag to the message to be {result, Result}. Add
	      demonitor to avoid keeping DOWN message in the queue fix one
	      spec in do_start/0

	      (Thanks to Ahmed Omar)


--- public_key-0.13 -----------------------------------------------------

    OTP-9464  replace "a ssl" with "an ssl" reindent pkix_path_validation/3
	      Trivial documentation fixes (Thanks to Christian von Roques )


--- reltool-0.5.7 -------------------------------------------------------

    OTP-9383  If a module was duplicated in the library directories visible
	      to reltool, and the configuration did not point out which
	      file to use, then reltool:start would always fail. A pop-up
	      is added which asks if you want to continue with a safe and
	      minimal configuration.

    OTP-9384  wx would sometimes crash due to an empty radiobox on the
	      'releases' tab of the system window. This radiobox is
	      removed, and replaced by a listbox which will always contain
	      at least kernel and stdlib applications.


--- runtime_tools-1.8.6 -------------------------------------------------

    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.


--- sasl-2.1.10 ---------------------------------------------------------

    OTP-9306  The release_handler functionality on windows services was
	      broken. This has been corrected.

    OTP-9395  release_handler:install_release could be very slow when there
	      are many processes in the system. Some optimization work has
	      been done both in erts and in the release handler in order to
	      improve this. 

	      A new option, purge, is added to
	      release_handler:check_install_release which can be called
	      first in order to speed up the execution of
	      release_handler:install_release.

    OTP-9402  If a new version of an application did not include any erlang
	      module changes, the code path of the application was not
	      updated by the release_handler unless a 'load_object_code'
	      instruction was added for the application. This would be a
	      problem if e.g. only some files in the priv dir were changed
	      since calls to code:lib_dir or code:priv_dir would then point
	      to the old location of the application. This has been
	      corrected - now code:replace_path/2 will be called for all
	      applications that are changed (i.e. when the application's
	      vsn is changed in the .rel file).

    OTP-9417  The appup instruction 'delete_module' would cause a crash
	      during upgrade if the module to be deleted was not loaded.
	      This has been corrected.

    OTP-9507  If a path was given as ONLY 'ebin' and not for example
	      './ebin', then systools:make_tar would fail with a
	      function_clause exception in filename:join/1. This has been
	      corrected. (Thanks to Nikola Skoric for reporting).

    OTP-9536  Implement or fix -Werror option

	      If -Werror is enabled and there are warnings no output file
	      is written. Also make sure that error/warning reporting is
	      consistent. (Thanks to Tuncer Ayaz)

    OTP-9546  Improved error information for timeouts during
	      release_handler:install_release.

	      This patch addresses two cases where a timeout will occur
	      during upgrade. 1) if a supervisor is suspended (call to get
	      children from supervisor will hang) 2) if the child spec for
	      a supervisor incorrectly states that it is a worker with a
	      dynamic set of modules (call to get modules from gen_event
	      will hang)

	      An error report will now be printed, and the return value of
	      release_handler:install_release will indicate what happened.
	      (Thanks to joe williams)


--- snmp-4.20.1 ---------------------------------------------------------

    OTP-9400  [agent] Did not handle transport domains properly in some 
              cases, for instance trap sending. 

    OTP-9425  [agent] Wrong default transport domain, snmpUDPDomain, instead 
              of transportDomainUdpIpv4.


--- snmp-4.21 -----------------------------------------------------------

    OTP-9305  [manager] No way to specify transport domain. Transport 
              domains was assumed to be IPv4. This has now been changed 
              so that it can also be IPv6. To facilitate this, the transportDomain 
              is now a (new) valid option. This also mean that the transport 
              behaviour has changed. 

    OTP-9354  The snmp config tool could not handle (manager) audit trail 
              config because the option seqno was not handled. 

    OTP-9367  [agent] The SNMP ACM cache was not properly updated when 
              changes where made to the VACM security-to-group, access 
              and view-tree-family tables. 

    OTP-9437  [compiler] Added the option warnings_as_errors which specifies 
              whether warnings should be treated as errors. Tuncer Ayaz. 

    OTP-9442  Fixed install directory typo for man3. Peter Lemenkov Hans 
              Ulrich Niedermann


--- snmp-4.21.1 ---------------------------------------------------------

    OTP-9236  [manager] Enable community override for GET and GETNEXT
	      requests.

    OTP-9446  [agent] Some minor debugging improvements.

    OTP-9447  [compiler] Used wrong variable name (for warnings-as-errors
	      variable), which caused the compiler to crash when using the
	      snmpc script. Also added the option --Werror for the SNMP MIB
	      compiler (escript) frontend (to mimic erlc), which specifies
	      whether warnings should be treated as errors.

    OTP-9536  Implement or fix -Werror option

	      If -Werror is enabled and there are warnings no output file
	      is written. Also make sure that error/warning reporting is
	      consistent. (Thanks to Tuncer Ayaz)


--- ssh-2.0.8 -----------------------------------------------------------

    OTP-9386  Calling ssh_sftp:stop_channel/1 resulted in that the
	      trap_exit flag was set to true for the invoking process.


--- ssl-4.1.5.1 ---------------------------------------------------------

    OTP-9346  The clean up of the session table now works as intended. 
              In ssl-4.1.5 temporary clean-up processes would crash resulting 
              in that the session table would not be cleaned up (e.i. 
              using more and more memory) and error reports would be printed, 
              but connections would not be affected. Thanks to Ferenc 
              Holzhauser for so promptly reporting this and suggesting 
              a solution.


--- ssl-4.1.5.2 ---------------------------------------------------------

    OTP-9603  Changed crypto and ssl to be dynamically linked to OpenSSL 
              and use version 0.9.8 of OpenSSL (instead of 0.9.7) on PowerPC.


--- ssl-4.1.6 -----------------------------------------------------------

    OTP-9364  Adds function clause to avoid denial of service attack.
	      Thanks to Vinod for reporting this vulnerability.

    OTP-9382  Error handling code now takes care of inet:getopts/2 and
	      inets:setopts/2 crashes. Thanks to Richard Jones for
	      reporting this.

    OTP-9461  Support explicit use of packet option httph and httph_bin

    OTP-9464  replace "a ssl" with "an ssl" reindent pkix_path_validation/3
	      Trivial documentation fixes (Thanks to Christian von Roques )

    OTP-9589  Decoding of hello extensions could fail to come to the
	      correct conclusion due to an error in a binary match pattern.
	      Thanks to Ben Murphy.


--- stdlib-1.17.5 -------------------------------------------------------

    OTP-9356  Types and specifications have been added.

    OTP-9368  erl_tar:extract failed when executed inside a directory with
	      some parent directory to which the user has no read access.
	      This has been corrected.

    OTP-9412  A bug in erl_scan:set_attribute/3 has been fixed.

    OTP-9413  The contract of io_lib:fread() has been corrected.

    OTP-9418  The contracts of the queue module have been modified.

    OTP-9439  A crash in io_lib:fread/2 when end of input data was
	      encountered while trying to match literal characters, which
	      should return {more,_,_,_} but instead crashed, has been
	      corrected. Reported by Klas Johansson.

	      A similar peculiarity for io:fread when encountering end of
	      file before any field data has also been corrected.

    OTP-9450  The contract of timer:now_diff() has been corrected. (Thanks
	      to Alex Morarash).

    OTP-9456  Fix minor typo in gen_fsm documentation (Thanks to Haitao Li)

    OTP-9471  The contracts of zip:zip_list_dir/1 and zip:zip_get/2 have
	      been corrected.

    OTP-9472  A bug in zip:zip_open() has been fixed.

    OTP-9485  Contracts in STDLIB and Kernel have been improved and type
	      errors have been corrected.

    OTP-9496  Types for several BIFs have been extended/corrected. Also the
	      types for types for lists:keyfind/3, lists:keysearch/3, and
	      lists:keyemember/3 have been corrected. The
	      incorrect/incomplete types could cause false dialyzer
	      warnings.

    OTP-9498  Fix trivial documentation errors(Thanks to Matthias Lang)

    OTP-9499  Add a proplist() type

	      Recently I was adding specs to an API and found that there is
	      no canonical proplist() type defined. (Thanks to Ryan
	      Zezeski)

    OTP-9502  fix supervisors restarting temporary children

	      In the current implementation of supervisors, temporary
	      children should never be restarted. However, when a temporary
	      child is restarted as part of a one_for_all or rest_for_one
	      strategy where the failing process is not the temporary
	      child, the supervisor still tries to restart it.

	      Because the supervisor doesn't keep some of the MFA
	      information of temporary children, this causes the supervisor
	      to hit its restart limit and crash.

	      This patch fixes the behaviour by inserting a clause in
	      terminate_children/2-3 (private function) that will omit
	      temporary children when building a list of killed processes,
	      to avoid having the supervisor trying to restart them again.

	      Only supervisors in need of restarting children used the
	      list, so the change should be of no impact for the functions
	      that called terminate_children/2-3 only to kill all children.

	      The documentation has been modified to make this behaviour
	      more explicit. (Thanks to Fred Hebert)

    OTP-9516  fix broken edoc annotations (Thanks to Richard Carlsson)

    OTP-9550  XML files have been corrected.

    OTP-9586  Handle rare race in the crypto key server functionality


--- test_server-3.4.5 ---------------------------------------------------

    OTP-9237  An error in how comments are colored in the test suite
	      overview html log file has been corrected. As result, a new
	      framework callback function, format_comment/1, has been
	      introduced.

    OTP-9311  Test Server did not release SASL TTY handlers
	      (sasl_report_tty_h and error_logger_tty_h) properly after
	      each test run. This error has been fixed.

    OTP-9369  Automatically generated init- and end-configuration functions
	      for test case groups caused incorrect execution order of test
	      cases. This has been corrected.

    OTP-9371  If ct:log/2 was called with bad arguments, this could cause
	      the Common Test IO handling process to crash. This fault has
	      been corrected.

    OTP-9372  A new option, 'logopts', has been introduced, to make it
	      possible to modify some aspects of the logging behaviour in
	      Common Test (or Test Server). For example, whenever an io
	      printout is made, test_server adds newline (\n) to the end of
	      the output string. This may not always be a preferred action
	      and can therefore be disabled by means of "ct_run ...
	      -logopts no_nl" (or ct:run_test([..., {logopts,[no_nl]}])). A
	      new framework callback function, get_logopts/0, has been
	      introduced (see the ct_framework module for details).

    OTP-9379  A bug has been fixed that made Test Server call the end_tc/3
	      framework function with an incorrect module name as first
	      argument.

    OTP-9396  A new option, 'logopts', has been introduced, to make it
	      possible to modify some aspects of the logging behaviour in
	      Common Test (or Test Server). For example, if the html
	      version of the test suite source code should not be generated
	      during the test run (and consequently be unavailable in the
	      log file system), the feature may be disabled by means of
	      "ct_run ... -logopts no_src" (or ct:run_test([...,
	      {logopts,[no_src]}])). A new framework callback function,
	      get_logopts/0, has been introduced (see the ct_framework
	      module for details).

    OTP-9397  If end_per_testcase caused a timetrap timeout, the actual
	      test case status was discarded and the test case logged as
	      successful (even if the case had actually failed before the
	      call to end_per_testcase). This fault has been fixed.

    OTP-9398  If a timetrap timeout occured during execution of of a
	      function in a lib module (i.e. a function called directly or
	      indirectly from a test case), the Suite argument in the
	      end_tc/3 framework callback function would not correctly
	      contain the name of the test suite, but the lib module. (This
	      would only happen if the lib module was compiled with ct.hrl
	      included). This error has been solved.

    OTP-9499  Add a proplist() type

	      Recently I was adding specs to an API and found that there is
	      no canonical proplist() type defined. (Thanks to Ryan
	      Zezeski)

    OTP-9501  It is now possible to use a tuple {M,F,A}, or a fun, as
	      timetrap specification in the suite info function or test
	      case info functions. The function must return a valid timeout
	      value, as documented in the common_test man page and in the
	      User's Guide.

    OTP-9550  XML files have been corrected.

    OTP-9584  If a test suite would start with a test case group defined
	      without the init_per_group/2 and end_per_group/2 function,
	      init_per_suite/1 would not execute initially and logging of
	      the test run would fail. This error has been fixed.


--- toolbar-1.4.2 -------------------------------------------------------

    OTP-9555  Improve spelling throughout documentation, code comments and
	      error messages


--- tools-2.6.6.5 -------------------------------------------------------

    OTP-9416  Bugs in xref(3) have been fixed. (Thanks to Matthias Lang.)

    OTP-9503  Teach the emacs mode to compile yecc and leex files

	      If visiting a .yrl or .xrl file in emacs with erlang-mode,
	      then the `erlang-compile' function (normally bound to C-c
	      C-k), now knows how to compile yecc and leex files, and then,
	      if that compilation succeeds, also compiles the resulting
	      .erl files.

	      Also introduce a `erlang-compile-command-function-alist' to
	      make it possible to hook in other functions for computing
	      compilation commands/expressions, depending on file name.
	      (Thanks to Tomas Abrahamsson )


--- typer-0.9.2 ---------------------------------------------------------

    OTP-9560  Quote atoms if necessary in types

	      Atoms in some occurrences were not correctly quoted when
	      formatted to strings, for instance by the typer program
	      (Thanks to Tomas Abrahamsson)

	      Update Dialyzer's reference results

    OTP-9597  Fix typer's crash for nonexisting files Remove unused macro
	      Fix bug in dataflow Decrease tuple arity limit This fixes a
	      memory related crash.


--- webtool-0.8.9 -------------------------------------------------------

    OTP-9515  Do not install *.bat files on non-win32 machines (Thanks to
	      Hans Ulrich Niedermann)


--- wx-0.99 -------------------------------------------------------------

    OTP-9415  Support virtual tables in wxListCtrl.

    OTP-9513  wx: fix obsolete guard warning (list/1) (Thanks to Tuncer
	      Ayaz)

    OTP-9550  XML files have been corrected.


--- xmerl-1.2.10 --------------------------------------------------------

    OTP-9410  Fixed a schema search bug in xmerl_xsd.

	      A new flag was needed in the xsd_state record so if the state
	      is saved there is an incompatibility and a state conversion
	      is needed.

    OTP-9411  Fixed xmerl_scan problems with entities in attribute values.

    OTP-9457  Streaming bug in xmerl_scan.

	      If the continuation_fun runs out of input at the end of an
	      attribute value then it crashed. (Thanks to Simon Cornish)

    OTP-9548  Fixed xmerl_ucs UCS2 little endian en/decoding

	      Corrected number of shift bytes in xmerl_ucs:char_to_ucs2le
	      and recursive call from from_ucs2le to from_ucs4le. (Thanks
	      to Michal Ptaszek)

    OTP-9552  Add latin9 (iso-8859-15) support in xmerl_ucs (Thanks to
	      David Julien)

    OTP-9555  Improve spelling throughout documentation, code comments and
	      error messages