Bug fix release : otp_src_R13B02
Build date : 2009-09-21
This is R13B02, the second maintenance release for the R13B major release.
You can find the README file for the release at
http://www.erlang.org/download/otp_src_R13B02.readme (this file)
The source distribution and binary distribution for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_R13B02.tar.gz
http://www.erlang.org/download/otp_win32_R13B02.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_R13B02.tar.gz.torrent
http://www.erlang.org/download/otp_win32_R13B02.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_R13B02.tar.gz
http://www.erlang.org/download/otp_doc_man_R13B02.tar.gz
We also want to thank those that sent us patches, suggestions and bug
reports,
The OTP Team
--- HIGHLIGHTS ----------------------------------------------------------
OTP-8108 The file module has now a read_line/1 function similar to the
io:get_line/2, but with byte oriented semantics. The function
file:read_line/1 works for raw files as well, but for good
performance it is recommended to use it together with the
'read_ahead' option for raw file access.
OTP-8187 There is a major addition to the capabilities of dialyzer,
worthy of bumping the version number. Starting with this
version, dialyzer not only accepts but also properly
processes remote types (i.e., types of the form
ModuleName:TypeName()). Previous dialyzer versions only
accepted this notation in -type and -spec declarations, but
effectively ignored its information by mapping remote types
to the type any(). In contrast, starting with this version,
remote types are used in the analysis and are also stored in
the PLTs. (This addition changes the format of PLTs and
requires rebuilding any PLTs created by an older dialyzer
version.) Note that dialyzer will complain and abort the
analysis of a set of modules if it needs to process a remote
type without a definition (either because the module does not
include a definition of the type or the module is not
included in the analysis). We may relax this restriction in a
future version.
Fixed minor issue with dialyzer:run/1 crashing (upon its
return) when used for adding type information to an existing
PLT.
Fixed minor but quite annoying issues in dialyzer's GUI.
--- documentation -------------------------------------------------------
OTP-8085 Spelling correction in the Modules section of the Erlang
Reference Manual. (Thanks to Brentley Jones.)
OTP-8091 Spelling corrections in the Event Handling Principles section
of the Design Principles. (Thanks to Matt Reynolds.)
OTP-8186 There is a new chapter about drivers in the Efficiency Guide.
--- asn1-1.6.11 ---------------------------------------------------------
OTP-7972 Range checks added for BIT STRING with fixed SIZE constraint.
OTP-8043 Now support multiple-line comments in asn1-specs as specified
in ASN1 X.680 (07/2002), section 11.6.4
OTP-8046 Now parses and adds abstract syntax for PATTERN subtype
constraint. No other action is taken on this type of
constraint.
OTP-8047 The syntax variants for subtype constraint CONTAINING Type,
CONTAINING Type ENCODED BY Value and ENCODED BY Value are now
accepted by the parser. Abstract syntax is added but
currently no further action in generated code is taken.
OTP-8136 A new option {n2n,TypeName} can be used to enable generation
of conversion functions from name to number and vice versa
for selected ENUMERATION types. The option can be repeated
many times in order to specify several types in the same
file. Below follows an example of how to use the option from
the command line with erlc:
erlc -bper_bin +optimize
+driver +"{n2n,'CauseMisc'}" +"{n2n,'CauseProtocol'}"
MyModule.asn
--- common_test-1.4.3 ---------------------------------------------------
OTP-8082 Printouts with ct:pal and ct:log made by processes not
started by a test case process, got written to the framework
log rather than to the test case log. This is the correct
behaviour if a parallel test group is executing, but during
sequential test case execution, printouts should always be
written to the log file of the current test case. This has
been fixed.
--- common_test-1.4.5 ---------------------------------------------------
OTP-8045 Various updates and fixes in Common Test and Test Server.
OTP-8089 The Common Test logger process crashed if a test case in a
sequence (declared with sequences/0) failed. This fault has
been corrected.
OTP-8163 Errors in coverage data collection and analysis were
difficult to detect. The logging has been improved so that
more information about e.g. imported and missing modules is
printed to the html log files.
OTP-8177 The Common Test HTML overview pages have been improved. It is
now possible to see if a test case has been skipped
explicitly or because a configuration function has failed.
Also, the history page (all_runs.html) now has scrolling text
displaying the test names. The old format (showing names as a
truncated string) can still be generated by means of the
flag/option 'basic_html'.
--- compiler-4.6.3 ------------------------------------------------------
OTP-8054 Corrected liveness optimization to eliminate a compiler crash
that could occur when compiling bit syntax construction code.
(Thanks to Mikage Sawatari.)
Calling BIFs such as length/1 in guard context in a try/catch
block could cause a compiler crash. (Thanks to Paul Fisher.)
Using filter expressions containing andalso or orelse in a
list comprehension could cause a compiler crash. (Thanks to
Martin Engström.)
OTP-8131 A guard with nested 'not' operators could cause the compiler
to crash. (Thanks to Tuncer Ayaz.)
--- crypto-1.6.1 --------------------------------------------------------
OTP-8096 Support for Blowfish cfb64 added to crypto.
OTP-8141 New function crypto:aes_cbc_ivec
OTP-8157 Makefile.in has been updated to use the LDFLAGS environment
variable (if set). (Thanks to Davide Pesavento.)
--- dialyzer-2.0.0 ------------------------------------------------------
OTP-8187 There is a major addition to the capabilities of dialyzer,
worthy of bumping the version number. Starting with this
version, dialyzer not only accepts but also properly
processes remote types (i.e., types of the form
ModuleName:TypeName()). Previous dialyzer versions only
accepted this notation in -type and -spec declarations, but
effectively ignored its information by mapping remote types
to the type any(). In contrast, starting with this version,
remote types are used in the analysis and are also stored in
the PLTs. (This addition changes the format of PLTs and
requires rebuilding any PLTs created by an older dialyzer
version.) Note that dialyzer will complain and abort the
analysis of a set of modules if it needs to process a remote
type without a definition (either because the module does not
include a definition of the type or the module is not
included in the analysis). We may relax this restriction in a
future version.
Fixed minor issue with dialyzer:run/1 crashing (upon its
return) when used for adding type information to an existing
PLT.
Fixed minor but quite annoying issues in dialyzer's GUI.
--- edoc-0.7.6.4 --------------------------------------------------------
OTP-8190 Miscellaneous updates.
--- erl_interface-3.6.3 -------------------------------------------------
OTP-4969 The manual states that erl_receive() return the reason in the
ErlMessage struct. This was not the case and the function is
now corrected.
OTP-6091 Added support for 64-bit integers in encoding/decoding.
Added support for better printouts of binaries.
OTP-6117 In send_exit.c an errorneous size of memory allocation could
occur when reallocating a buffer.
In ei_decode_trace.c the index could be updated when the
decoding failed.
In ei_printterm.c the index could be updated when the
decoding failed in lists and tuples.
In ei_decode_term.c when decoding a double (ERL_FLOAT_EXT) no
check was done to ensure that the last of the 31 bytes was
null terminated.
In ei_decode_term.c when decoding references, only the first
3 bytes are read, but the index did not increment by the
total size.
In ei_decode_fun.c no check of correct buffer allocation or
data length was done.
In ei_decode_string.c the integer list string case did not
decode the NIL tail correctly.
These errors has now been fixed. (Thanks to Romain Lenglet,
Paul Mineiro and Paul Guyot).
OTP-7554 ei_decode_big could be decoded with a garbage byte.
ei_encode_big and ei_x_encode_big is now available.
OTP-8093 The function erl_init_resolve() did not conform to C99
standard which caused a build error on some platforms. This
has now been fixed.
OTP-8157 Makefile.in has been updated to use the LDFLAGS environment
variable (if set). (Thanks to Davide Pesavento.)
--- erts-5.7.3 ----------------------------------------------------------
OTP-8041 Processor internal NUMA nodes are now supported in the ERTS
internal CPU topology representation. For more information
see the documentation of the +sct command line argument in
the erl(1) documentation, and the documentation of
erlang:system_info(cpu_topology).
OTP-8050 Documentation for ets improved about concurrency.
OTP-8055 On Windows, open_port({spawn,Command},Opts) could not run
executables with spaces in the path or filename, regardless
of quoting efforts. While
open_port({spawn_executable,Exec},Opts) can run any
executable, it was still impossible to use 'spawn' to do the
same thing. This is now corrected.
OTP-8060 Emulator flags in an escript were earlier inherited to
emulators started from from the emulator running the escript.
For example when an escript invoked os:cmd("erl"), the new
emulator were given erroneous emulator flags. This bug has
now been fixed
Escript filenames may now contain dots.
OTP-8063 The scheduler bind type processor_spread spread schedulers
too much on large NUMA systems.
The new scheduler bind type spread spreads schedulers as much
as possible, and behaves as processor_spread previously did.
For more information see the documentation of the +sbt
command line argument in the erl(1) documentation, and the
documentation of erlang:system_flag(scheduler_bind_type,
SchedulerBindType).
OTP-8064 Automatically detected CPU topology on Linux system could
erroneously contain logical processors with -1 as
identifiers. This happened when sysconf(_SC_NPROCESSORS_CONF)
returned a value larger than the amount of logical processors
found.
OTP-8065 Made some BIFs non-recursive (relational operators,hash and
phash) to limit internal stack usage.
OTP-8080 Fixed Windows specific bug in erl_prim_loader. Now it handles
the root directory (e.g. c:/) better. This bug affected the
directory listing in the debugger.
OTP-8092 When the minimal term [] (end of list) was sent as the
complete message to a process on another node, and received
there, it could not be decoded. This bug is now corrected.
Fortunately [] is uncommon as the complete message in real
applications but it is a serious bug anyway.
OTP-8095 A bug when the floating point exception pointer was not
initialized has been corrected. It manifested itself on
CentOS 5.1 sometimes when a floating point value was sent to
a remote node. Bug reported and patch suggested by David
Reiss, confirmed by Mikael Pettersson.
Some build problems on IRIX was also corrected. Problem
reported by Patrick Baggett, patch by Mikael Pettersson.
OTP-8099 A terminating process could erroneously unregister a name for
another process. This could occur under the following
conditions: The name of the terminating process was
unregistered and then registered for another process
simultaneously as the process that first had the name was
terminating.
OTP-8102 A TCP socket with option {packet,4} could crash the emulator
if it received a packet header with a very large size value
(>2Gb). The same bug caused erlang:decode_packet/3 to return
faulty values. (Thanks to Georgos Seganos.)
OTP-8104 The maximum size of the export table has been raised from
65536 to 524288 entries.
OTP-8108 The file module has now a read_line/1 function similar to the
io:get_line/2, but with byte oriented semantics. The function
file:read_line/1 works for raw files as well, but for good
performance it is recommended to use it together with the
'read_ahead' option for raw file access.
OTP-8117 Fixed bug causing emulator crash when reading a term in
external format containing a corrupt list with a negative
length.
OTP-8119 New emulator flag +sss, to set stack size of scheduler
threads.
OTP-8124 Running erlc in a very deep directory (with a path length of
more 256 or more characters) would cause the emulator to
crash in a call to list_to_atom/1. (Thanks to Chris
Newcombe.)
OTP-8132 The Windows utility Erlsrv, run in interactive mode now
accepts options for registering internal service name and
description field of Windows registry database.
OTP-8143 erlang:demonitor(Mon, [flush]) has been optimized. Previously
it always searched the message queue of the caller for a
'DOWN' message. Current implementation only search the
message queue when necessary. It is quite common that the
search is not necessary.
A new option info has been added to erlang:demonitor/2. For
more information see the erlang(3) documentation.
OTP-8145 A deadlock of the runtime system could occur when
unregistering the name of a port.
OTP-8148 I/O tasks could unnecessarily be rescheduled. This was
harmless, but not useful work.
OTP-8152 Minor improvements of erlang:memory/[1,2].
OTP-8155 New configuration option to enable use of shared zlib.
OTP-8157 Makefile.in has been updated to use the LDFLAGS environment
variable (if set). (Thanks to Davide Pesavento.)
OTP-8158 The pthread rwlock implemention on Linux could cause
starvation of writers. We, therefore, now use our own rwlock
implementation on Linux.
OTP-8166 Fixed smp bug in ETS that could cause emulator crash when
table with more than 1000 objects accessed by several
processes, including calls to variants of select or match
combined with concurrent object deletion.
OTP-8168 Open source Erlang builds are updated to work well on Snow
Leopard (MacOS X 10.6)
OTP-8169 A call to erlang:system_info(schedulers_online) could end up
in an infinite loop. This happened if the amount of
schedulers was larger than one, the amount of schedulers
online was one, and someone was blocking multi-scheduling.
OTP-8170 The code path interpretation is now more relaxed. The flag
-code_path_choice now defaults to relaxed instead of strict.
See the documentation of code and init for more info.
OTP-8171 An error in erlang:system_profile/2 could cause timestamped
messages to arrive out of order in the SMP case. This has now
been fixed.
OTP-8172 Load balancing of run queues and check for I/O are triggered
more often than before in situations where processes are
scheduled often but are doing very little work each time they
execute.
OTP-8179 Call tracing binary comprehensions would cause an emulator
crash. (Thanks to Paul Mineiro.)
OTP-8180 binary_to_term/1 would crash the emulator instead of
generating a badarg exception when given certain invalid
terms. (Thanks to Scott Lystig Fritchie.)
OTP-8192 binary_to_atom/2 and binary_to_existing_atom/2 would leak
memory if the binary contained unaligned data.
OTP-8194 The async thread pool in the runtime system without SMP
support used a memory allocator that was not thread safe for
async jobs.
--- et-1.3.2 ------------------------------------------------------------
OTP-8078 The start module in the app file has been corrected.
--- eunit-2.1.3 ---------------------------------------------------------
OTP-8190 Miscellaneous updates.
--- hipe-3.7.3 ----------------------------------------------------------
OTP-8189 Various small bugs (one involving the handling of large
binaries) were corrected and some additions to its
functionality and/or code cleanups were done.
--- ic-4.2.22 -----------------------------------------------------------
OTP-8088 The 64-bit version of libic was not compiled with the -fPIC
flag.
--- inets-5.1.1 ---------------------------------------------------------
OTP-8052 [httpc] Reception of unexpected data causes handler crash.
OTP-8069 [httpd] - When starting inets (the web-server) and supplying
a descriptor on the command line (example: erl -httpd_8888
) it is now possible to specify which ip-family
to use: inet | inet6 | inet6fb4. Example: erl -httpd_8888
10:inet6. Default is inet6fb4 which emulates the behaviour of
the previous version. Also added config option ipfamily. See
the Communications properties section for more info.
--- inets-5.1.2 ---------------------------------------------------------
OTP-7298 [httpc] Added http option 'connect timeout' for http client
request. The 'connect timeout' option is used for the initial
request, when the client connects to the server. Default
value is that of the timeout option.
OTP-8101 [httpd] Removed documentation for non-existing function
(header).
OTP-8118 [httpd] Failed to create listen socket with invalid option
combo. The http-server failed to create its listen socket
when the bind-address was an IPv4-address (a tuple of size 4)
and the ipfamily option was inet6fb4.
--- inets-5.1.3 ---------------------------------------------------------
OTP-8154 [httpc] Raise condition. When http:request is called and
httpc_manager selects a session where there's already a
pending request, then the connection handler for that session
effectively resets its parser, readying it for the response
to the second request. But if there are still some in- bound
packets for the response to the first request, things get
confused.
--- kernel-2.13.3 -------------------------------------------------------
OTP-7955 The DNS resolver client inet_res has been rewritten,
documented and released. See inet_res(3) and Erts User's
Guide: Inet configuration.
It can formally not be incompatible with respect to earlier
versions since there was no earlier official version. However
it was used before and some details have changed.
Configuration now initializes from /etc/resolv.conf and
/etc/hosts on all unix platforms regardless of which
distribution mode the node is started in. The directory
(/etc) these files are supposed to reside in can be changed
via an environment variable. These configuration file
locations can also be changed in the inet configuration. The
files are monitored for change and re-read, which makes a few
resolver configuration variables out of application control.
The /etc/hosts entries have now their own cache table that is
shadowed (with lookup method 'file' is used) by the
application configured host entries. This problem (that
inet_res configuration only worked for distribution mode long
names) was among other reported by Matthew O'Gorman many
moons ago.
The lookup methods are still 'native' only per default.
Resolver configuration is done on all Unix platforms just to
get a usable configuration for direct calls to inet_res.
The functions inet_res:nslookup/3..5 and
inet_res:nnslookup/4..4 are no longer recommended to use,
instead use inet_res:lookup/3..5 and inet_res:resolve/3..5
which provide clearer argument types and the possibility to
override options in the call.
Users of previous unsupported versions of inet_res have
included internal header files to get to the internal record
definitions in order to examine DNS replies. This is still
unsupported and there are access functions in inet_dns to use
instead. These are documented in inet_res(3).
Bug fix: a compression reference loop would make DNS message
decoding loop forever. Problem reported by Florian Weimer.
Bug fix and patch suggestion by Sergei Golovan: configuring
IPv6 nameservers did not work. His patch (as he warned)
created many UDP sockets; one per nameserver. This has been
fixed in the released version.
Improvement: inet_res is now EDNS0 capable. The current
implementation is simple and does not probe and cache EDNS
info for nameservers, which a fully capable implementation
probably should do. EDNS has to be enabled via resolver
configuration, and if a nameserver replies that it does not
support EDNS, inet_res falls back to a regular DNS query.
Improvement: now inet_res automatically falls back to TCP if
it gets a truncated answer from a nameserver.
Warning: some of the ancient and exotic record types handled
by inet_res and inet_dns are not supported by current
versions of BIND, so they could not be tested after the
rewrite, with reasonable effort, e.g MD, MF, NULL, and SPF.
The risk for bugs in these particular records is still low
since their code is mostly shared with other tested record
types.
OTP-8102 A TCP socket with option {packet,4} could crash the emulator
if it received a packet header with a very large size value
(>2Gb). The same bug caused erlang:decode_packet/3 to return
faulty values. (Thanks to Georgos Seganos.)
OTP-8108 The file module has now a read_line/1 function similar to the
io:get_line/2, but with byte oriented semantics. The function
file:read_line/1 works for raw files as well, but for good
performance it is recommended to use it together with the
'read_ahead' option for raw file access.
--- megaco-3.11.1 -------------------------------------------------------
OTP-8081 The reply proxy could crash if the timeout time calculation
results in a negative number. This will result in a function
clause with resulting error report.
OTP-8114 [text] The *unquoted* string BOTH was interpreted as the
'BothToken' token. This was a version 3 (prev3a, prev3b,
prev3c and v3) only
--- megaco-3.11.2 -------------------------------------------------------
OTP-8123 Megaco was unnecessarily strict when parsing the SDP
attribute *maxptime* (leading or trailing spaces cased the
value parse to fail). This has been improved so that leading
and trailing spaces are stripped before parsing the value.
The same has been done for the attribute *ptime*.
--- megaco-3.11.3 -------------------------------------------------------
OTP-8164 Replace obsolete guard tests.
OTP-8167 Added the config option call_proxy_gc_timeout to be able to
control the way unexpected replies (when requests issued via
calls to megaco:call/3) are handled. See megaco:user_info/2,
megaco:conn_info/2 and megaco:call/3 for more info.
OTP-8191 Make flex scanner c89 compiler compliant.
--- mnesia-4.4.11 -------------------------------------------------------
OTP-8074 Fixed duplicate results with mnesia:index_read() on
ordered_set tables. Reported by Sam Bobroff. Fixed locking in
mnesia:index_read() which now grabs a read table lock to
ensure correctness, this may slow down the operation or block
other processes trying to reach the same table. Calling
mnesia:dump_log() could crash mnesia, Reported by Igor
Ribeiro Sucupira.
--- os_mon-2.2.3 --------------------------------------------------------
OTP-8094 A missing define in memsup.c caused a build error on IRIX
machines. This has now been fixed.
--- public_key-0.3 ------------------------------------------------------
OTP-8100 Unknown attributes in certificates are left encoded instead
of crashing. Patch by Will "wglozer" thanks.
OTP-8142 Allow public_key:pem_to_der/[1,2] to take a binary as
argument in addition to a filename. Patch by Geoff Cant,
thanks.
--- reltool-0.5 ---------------------------------------------------------
OTP-7949 The tool is still experimental. Feedback is appreciated.
Major improvements of the target system generation has been
performed. Now it is possible to generate a relocatable
target system that does not need to be re-installed if it is
moved to a new location. Archive files are automatically
generated. A detailed specification of the target system can
be generated without actually creating the target system.
Relocatable escripts are put in the bin directory of the
target system. etc. etc.
Some new functions has been introduced in the reltool module:
start/1, start_link/1, get_config/3, get_target_spec/1 and
eval_target_spec/3.
Some new configuration parameters has been introduced:
profile, incl_sys_filters, excl_sys_filters,
incl_app_filters, excl_app_filters, incl_archive_filters,
excl_archive_filters, archive_opts, escript and relocatable.
Some parameters have been obsoleted and given new semantics:
incl_erts_dirs (incl_sys_filters), excl_erts_dirs
(excl_sys_filters), incl_app_dirs (incl_app_filters),
excl_app_dirs (excl_app_filters) and escripts (escript).
--- runtime_tools-1.8.1 -------------------------------------------------
OTP-8157 Makefile.in has been updated to use the LDFLAGS environment
variable (if set). (Thanks to Davide Pesavento.)
--- sasl-2.1.7 ----------------------------------------------------------
OTP-8132 The Windows utility Erlsrv, run in interactive mode now
accepts options for registering internal service name and
description field of Windows registry database.
--- snmp-4.13.4 ---------------------------------------------------------
OTP-8044 [agent] Originating discovery problems. Invalid state
variable update during second stage of discovery causes
master agent crash. Also the net_if process failed to
activate socket ({active, once}) after first discovery
response was sent.
OTP-8062 [agent] Terminating discovery problem. The reply to the
second stage request should include a varbind with
usmStatsNotInTimeWindows.
OTP-8098 [agent] Originating discovery improvement. Added the
ExtraInfo argument to the snmpa:discovery function. This
argument will be passed on to the stage1_finish callback
function. Also, the snmpa:discovery function will now always
return {ok, ManagerEngineID} on successful discovery. The
discovery handler behaviour updated accordingly
--- snmp-4.13.5 ---------------------------------------------------------
OTP-8116 [agent] The main agent type header file contained some
miss-information regarding the type of the entrytype field of
the me-record, causing unneccessary confusion. This problem
has been fixed.
OTP-8120 [agent] Username(s) accepted for stage 1 of terminating
discovery included "initial" which was also a valid as a
normal username.
OTP-8181 Replace obsolete guard tests.
OTP-8182 [agent] Improved the cache handling of the mib server. A
number of new functions and config options for the mib server
cache has been added. See snmpa:invalidate_mibs_cache/0,1,
snmpa:enable_mibs_cache/0,1, snmpa:disable_mibs_cache/0,1,
snmpa:gc_mibs_cache/0,1,2,3,
snmpa:enable_mibs_cache_autogc/0,1,
snmpa:disable_mibs_cache_autogc/0,1,
snmpa:update_mibs_cache_age/1,2 and
snmpaupdate_mibs_cache_gclimit/1,2 for more info. See the
configuration chapter in the Users Guide for more info about
the mib server cache options.
--- ssh-1.1.4 -----------------------------------------------------------
OTP-8071 SSH sometimes caused a crash report at disconnect.
--- ssh-1.1.5 -----------------------------------------------------------
OTP-8159 ssh_sftp:start_channel/3 did not handle timout correctly.
OTP-8160 If a progress message was not recieved after invoking
ssh:connect/3 the call could hang for ever. A timeout option
has also been added.
OTP-8161 A comma has been missing in the ssh.appup file since
SSH-1.0.2.
--- ssh-1.1.6 -----------------------------------------------------------
OTP-8110 The encryption algorithm aes128-cbc is now supported.
Requires that crypto-1.6.1 is available.
OTP-8162 ssh_transport:unpack/3 could cause a badarg error.
OTP-8173 Requests could result in badarg or badmatch EXIT messages in
the connection manager if the channel no longer existed.
OTP-8174 If a connection manager already had been terminated it could
cause a channel to generate a crash report when it was about
to stop.
OTP-8175 SFTPD did not handle rename command (version 4) correctly.
OTP-8176 ssh_sftp:start_channel did not handle all possible return
values from ssh_channel:start correctly.
--- ssl-3.10.4 ----------------------------------------------------------
OTP-8137 A client could avoid a certificate check if the client code
didn't send the requested certificate.
--- stdlib-1.16.3 -------------------------------------------------------
OTP-8051 The linter used to crash on invalid -opaque declarations.
OTP-8066 Bugs in digraph:add_edge/5 and digraph:del_path/3 have been
fixed. (Thanks to Crystal Din.)
OTP-8070 When trying to insert objects with dets:insert_new() into a
Dets table of type duplicate_bag, already existing objects
would sometimes be duplicated. This bug has been fixed.
(Thanks to Crystal Din.)
OTP-8113 Option {capture,none} was missing in documentation for
re:run/3.
OTP-8124 Running erlc in a very deep directory (with a path length of
more 256 or more characters) would cause the emulator to
crash in a call to list_to_atom/1. (Thanks to Chris
Newcombe.)
OTP-8129 When erl_scan:tokens() returns an error tuple {error,
ErrorInfo, EndLocation}, the list LeftOverChars is the
remaining characters of the input data, starting from
EndLocation. It used to be the empty list.
OTP-8130 A few minor bugs have been fixed in the Erlang Code
Preprocessor (epp).
OTP-8133 A bug in The Erlang Meta Interpreter (erl_eval) has been
fixed: exceptions generated in the template of bit string
comprehensions were not handled properly. (Thanks to Ulf
Wiger.)
OTP-8139 The Erlang Meta Interpreter (erl_eval) has been somewhat
optimized when it comes to interpreting receive-expressions.
(Thanks to Richard Carlsson.)
OTP-8150 The Erlang Pretty Printer (erl_pp) has been modified as to
handle types.
--- syntax_tools-1.6.3 --------------------------------------------------
OTP-8190 Miscellaneous updates.
--- test_server-3.3.4 ---------------------------------------------------
OTP-8045 Various updates and fixes in Common Test and Test Server.
OTP-8105 When running a suite starting with a test case group, Test
Server crashed if init_per_suite/1 exited or returned skip.
This has been fixed.
OTP-8163 Errors in coverage data collection and analysis were
difficult to detect. The logging has been improved so that
more information about e.g. imported and missing modules is
printed to the html log files.
OTP-8177 The Common Test HTML overview pages have been improved. It is
now possible to see if a test case has been skipped
explicitly or because a configuration function has failed.
Also, the history page (all_runs.html) now has scrolling text
displaying the test names. The old format (showing names as a
truncated string) can still be generated by means of the
flag/option 'basic_html'.
--- typer-0.1.7.2 -------------------------------------------------------
OTP-8190 Miscellaneous updates.
--- wx-0.98.3 -----------------------------------------------------------
OTP-8083 wxHtmlWindow class implemented.
All exceptions from callbacks are now catched and written to
the log.
Some defines where wrong in 'wx.hrl'.
wx:batch/1 and friends could hang forever if for instance a
breakpoint was set inside the fun. That caused all wx
applications to hang.
Added missing wxAuiPaneInfo constructor and destructor.
Added wxAuiNotebookEvent and wxAuiManagerEvent.
Calling non supported wxWidgets functions hanged instead of
crashed.
Update OpenGL to version 3.1 and added some of the missing
glu functions.
Fixed wxRadioBox which inherited the wrong class, thanks
Atilla Erdodi.
OTP-8126 Added wxListCtrl sorting and build fixes supplied by Paul
Hampson. Thanks.
OTP-8138 Removed some of the automatic garbage collecting after
application exit, user will get a warning instead so he can
correct the code.
OTP-8168 Open source Erlang builds are updated to work well on Snow
Leopard (MacOS X 10.6)
--- xmerl-1.2.1 ---------------------------------------------------------
OTP-8084 xmerl/include/xmerl.hrl contained internal debug macros
(dbg/2 and DBG/0) which now is moved to xmerl_internal.hrl.
OTP-8153 The SAX parser couldn't handle consecutive documents on the
same stream. The return values are now changed so they return
a rest value instead of giving an error about "erranous
information after the end tag". This means that the functions
file/2 and stream/2 now returns {ok, EventState, Rest} when
the parsing is correct. The rest can then be used as input to
a new call to xmerl_sax_parse:stream/2. If one know that it's
just one document the rest value in the result tuple can be
matched against <<>> or [] depending on if the input is in
binary form or not.
OTP-8156 The function xmerl_uri:parse/1 couldn't handle FTP URIs
containing username and password. The default FTP port
constant was also wrong. (Thanks to Steve Vinoski)