Major relese    : otp_src_R13B
Build date      : 2009-04-21

R13B is a major new release of Erlang/OTP.
You can download the full source distribution from
 
  http://www.erlang.org/download/otp_src_R13B.tar.gz
  http://www.erlang.org/download/otp_src_R13B.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_R13B.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_R13B.tar.gz
  http://www.erlang.org/download/otp_doc_man_R13B.tar.gz

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

The OTP Team

--- POTENTIAL INCOMPATIBILITIES -----------------------------------------

    OTP-7892  The Erlang scanner no longer returns the text of tokens when
	      the start location is a pair of a line and column unless the
	      new option text is supplied (incompatibility with R13A).

	      There are new functions to access the attributes of tokens:
	      attributes_info/1,2 and set_attribute/3.

    OTP-7906  Only the source instance of InitialReference.java is now
	      included. Users are adviced to use the Interoperable Naming
	      Service (INS) instead. INS is a part of the OMG standard
	      specification.

    OTP-7929  The error behavior of gen_tcp and gen_udp has been corrected.
	      gen_tcp:connect/3,4 and gen_udp:send/4 now returns
	      {error,eafnosupport} for conflicting destination address
	      versus socket address family. Other corner cases for IP
	      address string host names combined with not using the native
	      (OS) resolver (which is not default) has also been changed to
	      return {error,nxdomain} instead of {error,einval}. Those
	      changes just may surprise old existing code. gen_tcp:listen/2
	      and gen_udp:open/2 now fails for conflicting local address
	      versus socket address family instead of trying to use an
	      erroneous address. Problem reported by Per Hedeland.


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

    OTP-7891  The escape sequence \{ which was given a new interpretation
	      in R13A has retained its old meaning (the ASCII code for {),
	      which means that codes greater than 255 have to be stated
	      using hexadecimal characters (for example, \x{AAA}). The
	      escape sequence \xH where H is a hexadecimal character
	      followed by something else but a hexadecimal character is no
	      longer valid (incompatibility with R13A). Character codes
	      less than 256 can be stated using two hexadecimal characters
	      (for example, \x0D).


--- asn1-1.6.10 ------------------------------------------------------------

    OTP-7953  The anonymous part of the decode that splits the ASN1 TLV
	      into Tag Value tuples has been optimized.

    OTP-7954  A faulty receive case that catched all messages in the
	      initialization of the driver has been removed, the
	      initialization has been restructured.


--- common_test-1.4.1 ------------------------------------------------------------

    OTP-7897  Minor updates and corrections.


--- compiler-4.6.0.1 ------------------------------------------------------------

    OTP-7905  Using andalso orelse or record access in a
	      try...catch could cause a compiler crash.

	      Som large and complex functions could require extremely
	      long compilation times (hours or days).


--- compiler-4.6.1 ------------------------------------------------------------

    OTP-7924  There will be more efficient code if there is a clause that
	      matches the empty binary and no other clauses that matches
	      non-empty binaries.

    OTP-7927  There is new option to allow a module to have a module name
	      other than the filename. Do not use it unless you know what
	      you are doing.

    OTP-7937  Miscellaneous minor bugs fixed.


--- dialyzer-1.9.1 ------------------------------------------------------------

    OTP-7958  Has better handling of opaque types.

	      The handling of UTF segments of bitstreams has been
	      significantly strengthened and revised. In all probability,
	      now it is correct.


--- erl_interface-3.6.1 ------------------------------------------------------------

    OTP-7959  Minor update to the configure script.

    OTP-7960  A faulty validation in ei_reg_getpval caused it to never
	      return the key-value. This has now been fixed. (Thanks to
	      Matt Stancliff)


--- erts-5.7.1 ------------------------------------------------------------

    OTP-7816  Fixed a bug on Windows that could make gen_tcp:send hang
	      trying to send an iolist of more than 16 binaries.

    OTP-7854  Rudimentary support for cross compiling is added to the
	      source release. The support is still in its infancy and has
	      only been used to cross compile on Linux for a different cpu
	      architecture and a different Linux version, but should be
	      extendable to support other platforms as well. The cross
	      configuration files with examples are placed in
	      $ERL_TOP/xcomp/. View README.xcomp and run $ERL_TOP/otp_build
	      -help for further information.

    OTP-7891  The escape sequence \{ which was given a new interpretation
	      in R13A has retained its old meaning (the ASCII code for {),
	      which means that codes greater than 255 have to be stated
	      using hexadecimal characters (for example, \x{AAA}). The
	      escape sequence \xH where H is a hexadecimal character
	      followed by something else but a hexadecimal character is no
	      longer valid (incompatibility with R13A). Character codes
	      less than 256 can be stated using two hexadecimal characters
	      (for example, \x0D).

    OTP-7894  The term_to_binary/1 BIF used to be implemented with
	      recursive C code, which could cause the Erlang emulator to
	      terminate because of a stack overflow.

	      Also fixed some minor issues in term_to_binary/1 and
	      binary_to_term/1 pointed out by Matthew Dempsky.

    OTP-7896  Several glitches and performance issues in the Unicode and
	      I/O-system implementation of R13A have been corrected.

    OTP-7901  Minor documentation improvements of the scheduler_bind_type
	      argument of erlang:system_flag/2, and the
	      scheduler_bind_type, and the scheduler_bindings arguments of
	      erlang:system_info/1.

    OTP-7908  The runtime system could under rare circumstances crash
	      during load balancing.

    OTP-7913  There is a new BIF erlang:make_tuple/3.

    OTP-7916  run_erl uses fallback if Unix98 pseudo-terminal is not
	      present on host.

    OTP-7941  A message buffer memory leak in the runtime system without
	      smp support has been fixed.

    OTP-7942  Attempting to append a binary of 16Mb or greater to another
	      binary using the bit syntax would cause a system_limit
	      exception. There was also several cases when constructing
	      binaries when a badarg exception was generated when it should
	      have been system_limit.

    OTP-7946  The runtime system with SMP support failed to terminate the
	      caller of link(RemotePid) properly, if RemotePid was the pid
	      of a process on an unreachable node. The calling process was
	      in this case marked as exiting, but never terminated.


--- eunit-2.1 ------------------------------------------------------------

    OTP-7964  Mostly internal changes, in particular to the event protocol;
	      fixes problems with timeouts that could cause eunit to hang,
	      and makes it much easier to write new reporting back-ends.

	      New "surefire" report backend for Maven and Bamboo.

	      The test representation is no longer traversed twice (the
	      first pass was for enumeration only). This eliminates some
	      strange restrictions on how generators can be written, but it
	      also means that reports cannot be quite as complete as before
	      in the event of skipped tests.


--- hipe-3.7.1 ------------------------------------------------------------

    OTP-7958  Has better handling of opaque types.

	      The handling of UTF segments of bitstreams has been
	      significantly strengthened and revised. In all probability,
	      now it is correct.


--- jinterface-1.5.1 ------------------------------------------------------------

    OTP-7885  jinterface uses the new environment variable ERL_EPMD_PORT
	      the same way that erl, epmd and erl_interface do since R13A.

    OTP-7899  Many Erlang classes, e.g. OtpErlangRef, was missing an
	      implementation of the hashCode() method, making it futile to
	      put them in hash structures such as HashMap. Bug and patch
	      provided by Paul Guyot. We extended the patch to all classes
	      and improved (?) on the hash algorithm.


--- kernel-2.13.1 ------------------------------------------------------------

    OTP-7890  Many concurrent calls to os:cmd/1 will only block one
	      scheduler thread at a time, making an smp emulator more
	      responsive if the OS is slow forking processes.

    OTP-7896  Several glitches and performance issues in the Unicode and
	      I/O-system implementation of R13A have been corrected.

    OTP-7903  Fixed hanging early RPC that did IO operation during node
	      start.

    OTP-7925  The unsupported DNS resolver client inet_res has now been
	      improved to handle NAPTR queries.

    OTP-7929  The error behavior of gen_tcp and gen_udp has been corrected.
	      gen_tcp:connect/3,4 and gen_udp:send/4 now returns
	      {error,eafnosupport} for conflicting destination address
	      versus socket address family. Other corner cases for IP
	      address string host names combined with not using the native
	      (OS) resolver (which is not default) has also been changed to
	      return {error,nxdomain} instead of {error,einval}. Those
	      changes just may surprise old existing code. gen_tcp:listen/2
	      and gen_udp:open/2 now fails for conflicting local address
	      versus socket address family instead of trying to use an
	      erroneous address. Problem reported by Per Hedeland.


--- megaco-3.10.1 ------------------------------------------------------------

    OTP-7926  The megaco_user callback function handle_unexpected_trans
	      could during high load be called with unexpected values for
	      the Trans argument, such as an TransactionReply where
	      transactionResult had the value {error, timeout}. This was a
	      result of a raise condition and has now been fixed.

    OTP-7936  [text] It was not possible to encode a PropertyParm value as
	      a quoted string (unless it *had* to (has at least one
	      RestChar)). The megaco text codec's now also accepts quoted
	      strings as PropertyParm values.


--- mnesia-4.4.9 ------------------------------------------------------------

    OTP-7911  mnesia:clear_table/1 crashed instead of returning
	      {aborted,..} if it was called inside a transaction.


--- orber-3.6.12 ------------------------------------------------------------

    OTP-7906  Only the source instance of InitialReference.java is now
	      included. Users are adviced to use the Interoperable Naming
	      Service (INS) instead. INS is a part of the OMG standard
	      specification.


--- os_mon-2.2.1 ------------------------------------------------------------

    OTP-7938  Added support for dragonfly OS.

    OTP-7944  An error in memsup could cause os_mon to report erroneous
	      memory values on windows for ranges of memory between 2GB and
	      4GB. This have now been fixed.


--- parsetools-1.4.7 ------------------------------------------------------------

    OTP-7945  A bug in yeccpre.hrl introduced in R13A has been fixed.


--- percept-0.8.1 ------------------------------------------------------------

    OTP-7923  egd now supports encapsulated postscript output format.


--- reltool-0.2.1 ------------------------------------------------------------

    OTP-7840  Minor GUI fixes


--- snmp-4.13.1 ------------------------------------------------------------

    OTP-7902  Registration of users had some issues. Not all of the
	      registration functions where actually exported
	      (snmpm:register_user/4 and snmpm:register_user_monitor/4).
	      This has now been fixed. Also, the registration did not
	      succeed unless user implemented the *new* behaviour. This has
	      now also been fixed (registration succeeds if the user
	      implements either the new or the old user behaviour).


--- ssh-1.1.2 ------------------------------------------------------------

    OTP-7914  Ssh confused local and remote channel id's, which in some
	      cases resulted in that messages were discarded.

    OTP-7917  Ssh could not handle echo values other than 0 and 1.

    OTP-7918  A crash occurred if a non-valid channel reference were
	      received.

    OTP-7919  By using the sftpd option {max_files, Integer}, the message
	      size for READDIR commands can be reduced.

    OTP-7921  Sftpd connections was not closed after receiving eof from a
	      client.

    OTP-7930  It was not possible to start a SFTP subsystem on certain
	      platforms, i.e. those who do not support symbolic links.

    OTP-7957  In some cases the message {ssh_cm, ssh_connection_ref(),
	      {closed, ssh_channel_id()}} was not passed to the registered
	      callback module.


--- stdlib-1.16.1 ------------------------------------------------------------

    OTP-7892  The Erlang scanner no longer returns the text of tokens when
	      the start location is a pair of a line and column unless the
	      new option text is supplied (incompatibility with R13A).

	      There are new functions to access the attributes of tokens:
	      attributes_info/1,2 and set_attribute/3.

    OTP-7895  The documentation of dets:open_file/1 now states that the
	      file is repaired if it has not been properly closed. (Thanks
	      to Ulf Wiger.)

    OTP-7896  Several glitches and performance issues in the Unicode and
	      I/O-system implementation of R13A have been corrected.

    OTP-7915  The type spec of filelib:wildcard/2 has been corrected.

    OTP-7947  New functions: gb_sets:is_disjoint/2, ordsets:is_disjoint/2,
	      and gb_sets:is_disjoint/2.

    OTP-7948  The function gb_trees:map/2 which was added in R13A is now
	      documented.


--- test_server-3.3.1 ------------------------------------------------------------

    OTP-7897  Minor updates and corrections.


--- tools-2.6.4 ------------------------------------------------------------

    OTP-7939  cover now properly escapes greater-than and less-than
	      characters in comments in HTML reports. (Thanks to Magnus
	      Henoch.)


--- typer-0.1.7 ------------------------------------------------------------

    OTP-7958  Has better handling of opaque types.

	      The handling of UTF segments of bitstreams has been
	      significantly strengthened and revised. In all probability,
	      now it is correct.


--- wx-0.98.1 ------------------------------------------------------------

    OTP-7875  Added xrcctrl/3 to wxXmlResource and added a resource
	      example.

	      Added several event types and events records and fixed a
	      couple of event related bugs.

	      Event callbacks can now use wxEvtHandler:connect/2.

	      Error handling and debugging aid have been improved.

	      Added wxSplitterWindow and wxGauge:pulse and a couple of
	      missing macros in wx.hrl.

	      Thanks to Steve Davis for feedback and bug reports.