Bug fix release : otp_src_R10B-8
Build date : 2005-10-25
This is a bug fix release 8 for the R10B release.
You can download the full source distribution from
http://www.erlang.org/download/otp_src_R10B-8.tar.gz
http://www.erlang.org/download/otp_src_R10B-8.readme (this file)
Note: To unpack the TAR archive you need a GNU TAR compatible
program. For instance, on MacOS X before 10.3 you must use the 'gnutar' command;
you can't use the 'tar' command or StuffIt to unpack the sources.
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_R10B-8.exe
The documentation at http://www.erlang.org will be updated. You can
also download the complete HTML documentation or the Unix manual files
http://www.erlang.org/download/otp_doc_html_R10B-8.tar.gz
http://www.erlang.org/download/otp_doc_man_R10B-8.tar.gz
For some OTP applications there are more detailed release notes in the
HTML documentation.
We also want to thank those that sent us patches, suggestions and bug
reports,
The OTP Team
--- asn1-1.4.4.8 ------------------------------------------------------------
OTP-5687 The dynamic sort of SET OF values now correctly handles
values encoded in the "ber_bin, der, optimize" mode,
the value of a SET OF is a list of binaries.
OTP-5688 Bad code was generated for an INTEGER with valuerange.
If the value that was encoded had a lower bound with
negative value it caused a crash. This bug is now
removed.
OTP-5689 Compiler now handles wrong include paths by returning
an error if a referenced module is not available.
OTP-5701 Better handling of filename paths
OTP-5710 The bug causing a runtime error when encoding a type
defined by: BIT STRING {a(1),b(2)} with the value [] in
per_bin mode is now removed.
--- compiler-4.3.10 ------------------------------------------------------------
OTP-5714 When given the new option 'strict_record_tests', the
compiler will generate code that verifies the record
type for 'R#record.field' operations (in body context
only, not in guards). See the documentation for the
compile module for more information.
The beam validator pass of the compiler could crash
given in rare circumstances when given certain
combinations of catches and record operations. (Thanks
to Mats Cronqvist.)
Attributes containing binaries (such as -a(<<1,2,3>>))
would crash the compiler. (Thanks to Roger Price.)
Multiple behaviours in the same module will no longer
generate a warning, unless one or more callbacks for
the behaviours overlap. For instance, using both the
'application' and 'supervisor' behaviours in the same
module will NOT generate any warning, but using
'gen_server' and 'gen_fsm' will.
OTP-5777 The pre-processor used to complain that the macro
definition '-define(S(S), ??S).' was circular, which it
isn't. (Thanks to Richard Carlsson.)
--- crypto-1.4 ------------------------------------------------------------
OTP-5631 The previously undocumented and UNSUPPORTED ssh
application has been updated and documented. This
release of the ssh application is still considered to
be a beta release and (if necessary) there could still
be changes in its API before it reaches 1.0.
Also, more cryptographic algorithms have been added to
the crypto application.
--- debugger-3.0 ------------------------------------------------------------
OTP-5730 Debugger can now handle try-catch. This meant large
parts of the interpreter had to be rewritten. Also,
some small changes to the GUI have been made.
--- edoc-0.6.7 ------------------------------------------------------------
OTP-5776 documented package-reference syntax `package.*'
paragraph breaking in html text
== Heading == and {@section Heading}
[http://...] notation (http, ftp, file) in html text
@TODO/@todo and todo-option
@throws type localdefs
parameter name hints from record patterns and
++-patterns
@headerfile and @docfile tags (not yet documented)
record type syntax (not yet documented)
--- erts-5.4.9.1 ------------------------------------------------------------
OTP-5716 On VxWorks, epmd did not handle file descriptors with higher
numbers than 63. Also, if epmd should get a file descriptor
with a number >= FD_SETSIZE, it will close a the file
descritport and write a message to the log (instead of
mysteriously fail); the Erlang node that tried to register
will fail with a duplicate_name error (unfortunately, epmd
has no way to indicate to the Erlang node why the register
attempt failed).
--- erts-5.4.9.2 ------------------------------------------------------------
OTP-5751 The native resolver has gotten an control API for
extended debugging and soft restart. It is:
inet_gethost_native:control(Control) Control =
{debug_level,Level} | soft_restart Level = integer() in
the range 0-4
--- erts-5.4.10 ------------------------------------------------------------
OTP-5709 The BIFs iolist_size/1 and iolist_to_binary/1 has been
added.
The BIF list_to_existing_atom/1 has been added.
Minor bug fix: The exception reason could be changed to
error inside nested try/catch constructs if the
erlang:raise/3 BIF was called with an empty stacktrace.
(Calling erlang:raise/3 with an empty stacktrace is NOT
recommended.)
Minor bugfix: On Windows, file:open/2 will now return
the documented error reason {error,eisdir} if the
filename refers to a directory (it used to return
{error,eacces}.
The message in the documentation for
erlang:system_monitor/2, description of busy_dist_port,
was corrected.
OTP-5715 The previously undocumented and UNSUPPORTED zlib module
has been updated in an incompatible way and many bugs
have been corrected. It is now also documented.
OTP-5749 -D_GNU_SOURCE is now always passed on the compile
command line on linux. This in order to ensure that all
included system headers see _GNU_SOURCE defined.
_GNU_SOURCE is now also defined on linux in configure
when looking for features.
Some minor (harmless) configure bugs were also fixed.
OTP-5756 New socket options priority and tos for platforms that
support them (currently only Linux).
OTP-5757 Some compiler warnings and Dialyzer warnings were
eliminated in the tools application.
When tracing to a port (which fprof does), there could
be fake schedule out/schedule in messages sent for a
process that had exited.
OTP-5758 Only the emulator is now linked with termcap library in
order to decrease library dependencies for other otp
programs.
--- hipe-3.5.3 ------------------------------------------------------------
OTP-5774 Some register allocation / spill minimisation
improvements, and some type analysis updates.
--- inets-4.5.4 ------------------------------------------------------------
OTP-5705 [ftp, client] - Timing related issues could sometimes cause
the ftp response to be delayed.
OTP-5706 [http, server, esi] - The dispatching of the post body to the
esi callback fuction was broken.
--- inets-4.6 ------------------------------------------------------------
OTP-5711 [ftp, client] - Improvement of error handling if something
goes wrong while handling the option list in
ftp:open/[1,2,3].
OTP-5712 [ftp, client] - Error when parsing a multiple FTP response
line. The last line in a multiple response must be the
response code followed by a space. A server may have
intermidate lines that start with the response code even if
this is not recommended. The parsing missed to make sure that
that space was present in what it considered to be the last
line.
OTP-5728 [http, client] - The HTTP client will now retry a pipelined
request that was unsuccessful due to the fact that the server
unexpectedly closed the pipeline connection.
OTP-5729 [http, server] - The HTTP request handling was remoduled to
have a more straight forward error-handling. And the internal
debug strategy was changed to use tracing instead of debug
macros, which means we do not have to write special debug
code.
OTP-5731 ftp:ls towards different ftp servers resulted in different
return results. E.g. the solaris 9 default server caused
{ok,[]} while older servers caused
{error,epath} as the result. For backwards
compatibility the behaviour has been changed to the old
result.
OTP-5735 [http, server, esi] - Under some circumstances mod_esi would
send a corrupted content-length header.
OTP-5738 FTP: a data connection setup to the ftp server that failed
caused a crash of the client. Now it is handled smothely.
OTP-5752 [http, server] - The documentation for the HTTP server has
been partly rewritten and very restructured too provide a
better overall picture. Lots of information provided by "semi
manual pages" has been moved to the Users Guide.
OTP-5753 FTP: verbose mode now also prints what the client sends on
the control channel.
OTP-5762 [http, server, get] - Removed debug printout which caused a
confusing "Socket closed"-printout at high load.
OTP-5764 [ftp] If host name is a ipv4 tuple ftp erronous tries to
connect as a ipv6 address with the ipv4 address.
OTP-5765 [ftp] Handles connect to ipv6/ipv4 address differently
according to a change in inet:getaddr.
--- inets-4.6.1 ------------------------------------------------------------
OTP-5766 [http, client] The verbose mode prints what was sent and
received during a request. Added a verbose option that
can be used by http:set_options/1
OTP-5773 [http, client] If an Ipv4-mapped ipv6 address is used the
client now falls back on ipv4.
OTP-5775 [http,server] Content-length may got a too low value, causing
loss of data in clients.
--- kernel-2.10.10.1 ------------------------------------------------------------
OTP-5751 The native resolver has gotten an control API for
extended debugging and soft restart. It is:
inet_gethost_native:control(Control) Control =
{debug_level,Level} | soft_restart Level = integer() in
the range 0-4
--- kernel-2.10.11 ------------------------------------------------------------
OTP-5563 Several bug fixes and improvements in the global name
registration facility (see global(3)): - the
name resolving procedure did not always unlink no
longer registered processes;
- the global name
could sometimes hang when a nodedown was immediately
followed by a nodeup;
- global names were not
always unregistered when a node went down;
- it is
now possible to set and delete locks at the same time
as the global name server is resolving names--the
handling of global locks has been separated from
registration of global names;
As of this
version, global no longer supports nodes running
Erlang/OTP R7B or earlier.
OTP-5715 The previously undocumented and UNSUPPORTED zlib module
has been updated in an incompatible way and many bugs
have been corrected. It is now also documented.
OTP-5724 Added application interface functions
which_applications/1, set_env/4 and unset_env/3, which
take an additional Timeout argument. To be used in
situations where the standard gen_server timeout
(5000ms) is not adequate.
OTP-5737 The functions global:set_lock/3 and global:trans/4 now
accept the value 0 (zero) of the Retries argument.
OTP-5743 The inet:getaddr(Addr, Family) no longer validates the
Addr argument if it is a 4 or 8 tuple containing the IP
address, except for the size of the tuple and that it
contains integers in the correct range.
The reason for the change is that validation could
cause the following sequence of calls to fail:
{ok,Addr} = inet:getaddr(localhost, inet6),
gen_tcp:connect(Addr, 7, [inet6])
OTP-5754 Improved documentation regarding synchronized start of
applications with included applications (using start
phases and application_starter).
OTP-5756 New socket options priority and tos for platforms that
support them (currently only Linux).
OTP-5770 The global name server has been optimized when it comes
to maintaining a fully connected network.
--- megaco-3.1 ------------------------------------------------------------
OTP-5542 Encoding of SDP was in text not done strictly according
RFC2327. Each line should be terminated with carriage return
and newline (0x0d0a), but was only terminated with single
newline (0x0a).
OTP-5597 Misc bugs detected by Dyalizer
OTP-5600 Incorrect text encoding of embedded Signal.
OTP-5601 Incorrect text encoding of embedded Events.
OTP-5619 The megaco_incr_timer has been tweaked so that the
max_retries field can now also take the value
infinity_restartable. This means that the only way to
actually restart the timer is if some external event occurs,
such as a pending message whe the long request timer is
running. That is, if the timeout time actually expires, then
so does the timer.
OTP-5664 Added function (megaco:format_versions/1) to (format) print
the extended version info produced by the megaco:versions1/0
and megaco:versions2/0 functions.
--- megaco-3.2 ------------------------------------------------------------
OTP-5717 Added support for another pre version of v3 (prev3b).
This is basically the same as prev3a except that
context priority (in contextProperties) has been
"fixed" so that it is backward compatible with v2.
OTP-5750 The (digit map) test and eval function(s) was lacking
result info on what kind of completion was done; full
or unambiguous
--- mnemosyne-1.2.5.1 ------------------------------------------------------------
OTP-5722 Mnemosyne has been updated to eliminate warnings by the
compiler and Dialyzer. Also includes very minor bug
fixes.
--- mnesia-4.2.3 ------------------------------------------------------------
OTP-5638 Dumping log files (during start),containing a add_index
operation on disc_only_copies tables failed, which
caused that the remaining operations in the log file
was never executed.
--- sasl-2.1 ------------------------------------------------------------
OTP-5761 A new option {update_paths,Bool} has been added for
release_handler:install_release/2. It indicates if all
application code paths should be updated (Bool==true),
or if only code paths for modified applications should be
updated (Bool==false, default).
release_handler:set_unpacked/2 now returns an error
tuple if a specified application directory does not exist.
--- snmp-4.4 ------------------------------------------------------------
OTP-5666 Updated and extended the agent info retrieval function. Also
added an info retrieval function for the manager.
OTP-5668 [manager] Add simple start function (start with default
values).
OTP-5669 [manager] Added get-bulk functionality, see snmpm:gb and
snmpm:agb for more info.
OTP-5675 [manager] Mini-MIB not properly initiated which could cause a
server crash if the name_to_oid or oid_to_name functions
where called (if no mib's where loaded).
OTP-5676 [manager] The out packet counter was not incremented for sent
v1/v2 messages.
OTP-5678 [manager] The request GC process was started with the wrong
default value (idle) which could (unlikely but still) cause
problems after a code-change.
OTP-5703 Bad handling of error cases (corrupt log file) when
converting log files (i.e. when calling the function
log_to_txt).
--- snmp-4.4.1 ------------------------------------------------------------
OTP-5719 [manager] If sending a set-request containing an 'OCTET
STRING' with an invalid integer (valid integer are 0-255),
the encoding will fail and cause the net_if process to crash.
OTP-5720 [manager] Add monitoring of the SNMP manager. The SNMP
application consists of two different runtime parts, the
agent and the manager. They are independent of each other.
The agent is "permanent" and the manager "transient". In
order to handle manager crashes a simple monitor function has
been added.
--- snmp-4.5 ------------------------------------------------------------
OTP-5581 [manager] In order to present the various error reason's
returned by the manager, a format_reason function has been
added. The error reasons this function handles are those
returned by the (sync and async) get, get-next, get-bulk and
set-functions as well as the Reason argument of the
handle_error function of the user callback module.
OTP-5726 [manager] In order to improve application behaviour all
callback function (the snmpm_user behaviour) calls are now
done by spawned processes (and not as previously by the SNMP
manager server process).
OTP-5727 Explicitly sync all audit trail log's upon termination.
OTP-5732 [agent] Table get-request failure in some cases.
OTP-5733 [manager] Introduced the "inform-request-behaviour"
configuration option to allow the user to specify how/when
the manager shall acknowledge the request.
OTP-5740 [agent] Check of notification name collision could fail due
to incorrect record name (assumed to be #trap, but could also
be #notification). This only cases a problem when the
application is compiled with the strict_record_tests option.
OTP-5742 [manager] The (error) report according to RFC 2572, chapter
7.2 point 6) was never sent.
--- ssh-0.9 ------------------------------------------------------------
OTP-5631 The previously undocumented and UNSUPPORTED ssh
application has been updated and documented. This
release of the ssh application is still considered to
be a beta release and (if necessary) there could still
be changes in its API before it reaches 1.0.
Also, more cryptographic algorithms have been added to
the crypto application.
--- ssl-3.0.8 ------------------------------------------------------------
OTP-5702 A process reading only a portion of a sufficiently
large amount of data from an accepted socket, and then
quering the ssl library (e.g. ssl:getpeername()), would
cause a global deadlock in the esock port program.
OTP-5708 A spelling error in the module ssl_pkix caused the call
to ssl:peercert/2 to fail when the option subject was
used.
OTP-5755 Because fopen() on Solaris 8 can't handle file
descriptor numbers above 255, reading of certificate
files would fail if all file descriptors below 256 were
in use (typically, if many connections were open). This
problem has been worked around.
The ssl application's port program used to use
select(), which meant that it could not handle more
than FD_SETSIZE file descriptors (usually 1024). To
eliminate that limitation, poll() is now used on all
platforms that support it.
Solaris/Sparc, 64-bit emulator: The SO_REUSEADDR option
was not set for listen sockets, which essentially made
the ssl application unusuable. Corrected.
The default listen queue size for ssl port program was
changed to 128 (from 5).
--- ssl-3.0.9 ------------------------------------------------------------
OTP-5784 The port program for the ssl application could waste
huge amounts of CPU time if a write could not be
completed directly and was put in the write queue.
(Only on platforms where poll() is used, such as
Solaris and Linux.)
--- stdlib-1.13.10 ------------------------------------------------------------
OTP-5739 A couple of type errors have been fixed in sofs.
OTP-5777 The pre-processor used to complain that the macro
definition '-define(S(S), ??S).' was circular, which it
isn't. (Thanks to Richard Carlsson.)
--- tools-2.4.6 ------------------------------------------------------------
OTP-5746 Emacs: erlang-man-function and erlang-man-module used a
pattern matching to find the requested module that
sometimes yielded unexpected results. For example,
erlang-man-module file would display the man page for
CosFileTransfer_File.
OTP-5757 Some compiler warnings and Dialyzer warnings were
eliminated in the tools application.
When tracing to a port (which fprof does), there could
be fake schedule out/schedule in messages sent for a
process that had exited.