Bug fix release : otp_src_R12B-4
Build date : 2008-09-03
This is bug fix release 4 for the R12B release.
You can find the README file for the release at
http://www.erlang.org/download/otp_src_R12B-4.readme (this file)
The source distribution and binary distribution for Windows can be
downloaded from
http://www.erlang.org/download/otp_src_R12B-4.tar.gz
http://www.erlang.org/download/otp_win32_R12B-4.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_R12B-4.tar.gz.torrent
http://www.erlang.org/download/otp_win32_R12B-4.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_R12B-4.tar.gz
http://www.erlang.org/download/otp_doc_man_R12B-4.tar.gz
We also want to thank those that sent us patches, suggestions and bug
reports,
The OTP Team
--- HIGHLIGHTS ------------------------------------------------------------
OTP-7348 Performance for ETS intensive applications should now be
better in the SMP emulator. Also, ETS table identifiers (as
returned by ets:new/2) are now spread out in wider range than
before (using 28 bits in a 32-bit emulator) to make sure that
the table identifier for a deleted table will not be quickly
re-used.
NOTE: Table identifiers can now be negative integers.
Programs that (incorrectly) assume that table identifiers can
only be positive integers might stop to work. (The type of a
table identifier is intentionally not documented, and may
change in a future release.)
OTP-7404 New BIF erlang:decode_packet/3 that extracts a protocol
packet from a binary. Similar to the socket option {packet,
Type}. Also documented the socket packet type http and made
it official. NOTE: The tuple format for http packets sent
from an active socket has been changed in an incompatible
way.
OTP-7406 The source code for the documentation for some applications
(erts, kernel, stdlib, and several others) are now included
in the source tar ball. There is currently no Makefile
support for building HTML files from the source (such support
will be included in a future release).
OTP-7477 Termination of a process that takes a long time can now be
preempted, i.e., the terminating process will be rescheduled
for later continuation of termination so that other processes
can execute. Termination of a process that owns many and/or
large ets tables typically takes a long time.
--- documentation ------------------------------------------------------------
OTP-7506 In the section about binary construction, the reference
manual now mentions what happens when an integer value does
not fit into an integer segment of size N (namely, that the N
least significant bits will be put into into the binary and
that the most significant bits will be silently discarded).
(Thanks to Edwin Fine.)
--- otp ------------------------------------------------------------
OTP-7406 The source code for the documentation for some applications
(erts, kernel, stdlib, and several others) are now included
in the source tar ball. There is currently no Makefile
support for building HTML files from the source (such support
will be included in a future release).
OTP-7499 A minimal source distribution can now be created by invoking
./otp_build remove_prebuilt_files. For more information see
the distributed README file.
--- asn1-1.6 ------------------------------------------------------------
OTP-7335 The ASN.1 compiler has got a new backend supporting PER
UNALIGNED. Previously there was only support for PER ALIGNED.
OTP-7374 Now the asn1-compiler handles unions and intersections of
PermittedAlphabet constraints.
OTP-7375 Now is ordering, accordering to the canonical order, of
components in a SET added. Canonical order is described in
X.691 9.2 and X.680 8.6
OTP-7400 The precedence rules for extended constraints have been
misinterpreted. The rule says for instance that if there are
more than one constraint on a type that have extensionmark,
only the last of the extensionmarks would be kept. This
affects the encoding of PER and is now corrected.
OTP-7403 A constrained number with a singlevalue constraint that is
extensible was falsely encoded/decoded in aligned/unaligned
PER. This is now corrected.
OTP-7407 With the undocumented option no_final_padding the
whole encoded message is not padded to a border of a byte.
Thus the returned encoded message is a bitstring.
--- common_test-1.3.3 ------------------------------------------------------------
OTP-7112 Various updates and improvements, plus some minor bug fixes,
have been implemented in Common Test and Test Server.
OTP-7518 It is now possible, by means of the new function
ct:abort_current_testcase/1 or
test_server_ctrl:abort_current_testcase/1, to abort the
currently executing test case.
--- compiler-4.5.4 ------------------------------------------------------------
OTP-7498 Certain complex bit syntax matching operations matching out
binaries and having several clauses could give incorrect
results (the matched out binaries were too short). (Thanks to
Christian von Roques for bug report and correction.)
--- crypto-1.5.2.1 ------------------------------------------------------------
OTP-7521 Minor performance optimization.
--- dialyzer-1.8.2 ------------------------------------------------------------
OTP-7522 Minor updates.
--- erl_interface-3.5.8 ------------------------------------------------------------
OTP-7448 Fixed bug in erl_interface when decoding broken data
--- erts-5.6.3.1 ------------------------------------------------------------
OTP-7399 Doing local call trace on bit syntax matching code that has
been optimized with delayed sub-binary creation could crash
the emulator.
--- erts-5.6.3.2 ------------------------------------------------------------
OTP-7415 Calls to erlang:memory/[0,1] could cause the runtime
system with SMP support to crash.
--- erts-5.6.3.3 ------------------------------------------------------------
OTP-7422 Binary construction with an integer field of size 0 at the
end of the constructed binary (and the size given in a
variable), would cause a write of one byte outside the memory
reserved for the binary, which in turn could cause an
emulator crash.
OTP-7464 A race condition in the dynamic driver implementation could
cause an emulator crash. (Thanks to Paul Fisher)
OTP-7474 Calls to erlang:system_info(allocated_areas) could
cause the runtime system with SMP support to crash.
OTP-7475 The env option to open_port() could cause the
runtime system with SMP support to crash.
OTP-7480 Operations that needed to block other threads in the runtime
system with SMP support unnecessarily waited for async
threads to block. Most important the
erlang:memory/[0,1] bif, code loading, and the
erlang:trace/3 bif.
--- erts-5.6.4 ------------------------------------------------------------
OTP-7348 Performance for ETS intensive applications should now be
better in the SMP emulator. Also, ETS table identifiers (as
returned by ets:new/2) are now spread out in wider range than
before (using 28 bits in a 32-bit emulator) to make sure that
the table identifier for a deleted table will not be quickly
re-used.
NOTE: Table identifiers can now be negative integers.
Programs that (incorrectly) assume that table identifiers can
only be positive integers might stop to work. (The type of a
table identifier is intentionally not documented, and may
change in a future release.)
OTP-7404 New BIF erlang:decode_packet/3 that extracts a protocol
packet from a binary. Similar to the socket option {packet,
Type}. Also documented the socket packet type http and made
it official. NOTE: The tuple format for http packets sent
from an active socket has been changed in an incompatible
way.
OTP-7406 The source code for the documentation for some applications
(erts, kernel, stdlib, and several others) are now included
in the source tar ball. There is currently no Makefile
support for building HTML files from the source (such support
will be included in a future release).
OTP-7408 Double backslashes in format string passed to the erts
internal printf implementation produced erroneous results. No
such format strings were passed to the erts internal printf
implementation, i.e., the bug was therefore completely
harmless. (Thanks to Perry Smith.)
OTP-7410 Large files are now handled on Windows, where the filesystem
supports it.
OTP-7468 A lot of frequently accessed memory counters (erts internal)
have been removed. This since they hurt performance on the
runtime system with SMP support. As a result
erlang:memory/[0,1] will only deliver a result if all
erts_alloc(3) allocators are enabled (default). The result
delivered when all erts_alloc(3) allocators are enabled are
both more accurate and less accurate than before. More memory
than before are included in the result, but the different
parts that are summed are not gathered atomically. A call to
erlang:memory/[0,1] is much cheaper for the system than
before. This since the information isn't gathered atomically
anymore which was very expensive.
OTP-7470 Pre-allocators used for, for example, timers, and messages
have been rewritten to be scheduler specific. That is,
different schedulers will now allocate from different pools
which reduces lock contention.
OTP-7471 On Mac OS X, file:sync/1 now guarantees that all filesystem
buffers are written to the disk by using the fcntl() with
F_FULLFSYNC option. Previously, file:sync/1 called fsync(),
which only guaranteed that the data had been transferred to
the disk drive. (Thanks to Jan Lehnardt.)
OTP-7477 Termination of a process that takes a long time can now be
preempted, i.e., the terminating process will be rescheduled
for later continuation of termination so that other processes
can execute. Termination of a process that owns many and/or
large ets tables typically takes a long time.
OTP-7493 Using 16#ffffFFFF as a timeout value in receive...after would
often cause a timeout almost at once due to an 32-bit integer
overflow. (Thanks to Serge Aleynikov and Matthias Lang.)
OTP-7494 The re module is exdended with repetitive matches (global
option) and replacement function.
OTP-7506 In the section about binary construction, the reference
manual now mentions what happens when an integer value does
not fit into an integer segment of size N (namely, that the N
least significant bits will be put into into the binary and
that the most significant bits will be silently discarded).
(Thanks to Edwin Fine.)
OTP-7517 For the process that an escript runs in, the trap_exit
process flag is now false instead of true (as in previous
releases). Scripts that depend on the previous
(counter-intuitive) behaviour might not work. (Thanks to
Bengt Kleberg.)
OTP-7520 Setting the {active,once} for a socket (using
inets:setopts/2) is now specially optimized (because the
{active,once} option is typically used much more frequently
than other options).
OTP-7526 A bug in the string:to_integer/1 builtin made the
emulator unstable. This is now corrected. (Thanks to
Lev Walkin.)
--- hipe-3.6.8 ------------------------------------------------------------
OTP-7522 Minor updates.
--- inets-5.0.10 ------------------------------------------------------------
OTP-7450 Enhanced an info report.
OTP-7454 Changed error message from
{wrong_type,{document_root,"/tmp/htdocs"}} to
{invalid_option,{non_existing, document_root,"/tmp/htdocs"}}.
OTP-7490 Relative paths in directory authentication did not work as
intended, this has now been fixed.
OTP-7512 The query-string passed to the callback function was not
compliant with the documentation, it is now.
--- kernel-2.12.4 ------------------------------------------------------------
OTP-7404 New BIF erlang:decode_packet/3 that extracts a protocol
packet from a binary. Similar to the socket option {packet,
Type}. Also documented the socket packet type http and made
it official. NOTE: The tuple format for http packets sent
from an active socket has been changed in an incompatible
way.
OTP-7410 Large files are now handled on Windows, where the filesystem
supports it.
OTP-7520 Setting the {active,once} for a socket (using
inets:setopts/2) is now specially optimized (because the
{active,once} option is typically used much more frequently
than other options).
--- megaco-3.8.1 ------------------------------------------------------------
OTP-7398 Improve (test case) coverage
OTP-7417 Some minor documentation cleanup of the "The transaction
sender" chapter of the User's Guide.
OTP-7444 The event parameter value for completion event ce of the dd
package was incorrectly encoded as type Value instead of as a
quoted string.
OTP-7449 DigitMap ([0-9ef]) incorrectly interpreted as ([0-9]ef).
OTP-7455 Receiving an unexpected segment reply could case an case
clause crash. Now a warning message will be issued instead.
OTP-7457 The flex scanner had problems parsing wildcarded
service-change request, ammRequest (with add) and
notifyRequest.
OTP-7459 Processing requests when "autoconnecting" caused function
cause after reboot.
--- mnesia-4.4.4 ------------------------------------------------------------
OTP-7419 Mnesia did not garbage collect transaction decisions on disk
based nodes if no transactions where made on the local node.
--- mnesia-4.4.5 ------------------------------------------------------------
OTP-7466 mnesia:clear_table/1 does not require that all replicas of
the table are available anymore.
--- odbc-2.10.3 ------------------------------------------------------------
OTP-7418 Configure update for mac.
--- os_mon-2.1.7 ------------------------------------------------------------
OTP-7409 Memory information in memsup:get_system_memory_data/0 now has
additional entries in its property list for linux.
OTP-7505 Fixed a build error that occurred on NetBSD (Thanks to Per
Hedeland and Raphael Langerhorst)
--- snmp-4.11.1 ------------------------------------------------------------
OTP-7412 Added utility functions for transforming DateAndTime as
[int()] to strings; date_and_time_to_string/2 and
date_and_time_to_string2/1. Also added new validation
function validate_date_and_time/2.
OTP-7426 [compiler] The MIB compiler didn't properly handle the
REFERENCE part of a MIB definition. The actual reference
string was thrown away.
OTP-7432 [manager] Encryption error when attempting to send version 3
inform-requests.
--- ssh-1.0 ------------------------------------------------------------
OTP-7356 The architecture of the ssh processes has been reconstructed
to fit in a supervision tree as to become a real OTP
application and benefit from this when starting and stopping.
OTP-7485 Removed some special handling of prompts that made ssh behave
differently than openssh.
OTP-7502 Support for pty option echo off added. Requires kernel from
R12B-4.
OTP-7503 The ssh API has been enhanced a lot of old API functions has
become deprecated.
OTP-7504 Bug in encoding of pty opts has been fixed.
--- stdlib-1.15.4 ------------------------------------------------------------
OTP-7344 A bug in the calendar module could cause
calendar:local_time_to_universal_time_dst/1 to return
duplicate identical values for local times in timezones
without DST. Multiple values should only be returned when a
local time is within the hour occurring twice due to shift
from DST to non-DST, and certainly only in timezones with
DST. The correct behaviour is now implemented.
OTP-7413 The documentation of (d)ets:init_table() has been corrected.
(Thanks to Paul Mineiro.)
OTP-7421 The soft upper limit of 60 on the number of non-white
characters on a line, which was introduced in R12B-0 for the
control sequences p and P of the functions io:fwrite/2,3 and
io_lib:fwrite/2, has been removed. This means that terms
whose printed representation fits on a line will have no
NEWLINEs. The Erlang shell still uses the 60 character limit,
though.
OTP-7424 Some debug code has been removed from Dets.
OTP-7445 The documentation of dets:match_delete/2 has been corrected.
(Thanks to Paul Mineiro.)
OTP-7489 The documentation of lists:(u)sort/2 now states what is
expected of an ordering function.
OTP-7492 Corrections of digraph(3). (Thanks to Vlad Dumitrescu.)
OTP-7494 The re module is exdended with repetitive matches (global
option) and replacement function.
OTP-7495 The Erlang shell now displays a nicer error message when
evaluating an undefined command. (Thanks to Richard
Carlsson.)
OTP-7517 For the process that an escript runs in, the trap_exit
process flag is now false instead of true (as in previous
releases). Scripts that depend on the previous
(counter-intuitive) behaviour might not work. (Thanks to
Bengt Kleberg.)
--- test_server-3.2.3 ------------------------------------------------------------
OTP-7112 Various updates and improvements, plus some minor bug fixes,
have been implemented in Common Test and Test Server.
OTP-7447 When a testcase terminated due to a timetrap, io sent to the
group leader from framework:end_tc/3 (using ct:pal/2/3 or
ct:log/2/3) would cause deadlock. This has been fixed.
OTP-7518 It is now possible, by means of the new function
ct:abort_current_testcase/1 or
test_server_ctrl:abort_current_testcase/1, to abort the
currently executing test case.
--- tools-2.6.2 ------------------------------------------------------------
OTP-7423 A bug in the Xref scanner has been fixed.
OTP-7509 A bug in Fprof where the function 'undefined' appeared to
call 'undefined' has been corrected.
--- typer-0.1.4 ------------------------------------------------------------
OTP-7522 Minor updates.
--- xmerl-1.1.10 ------------------------------------------------------------
OTP-6053 Changed the examples in "Customization Functions Tutorial" to
correct Erlang code.
OTP-6873 The XPath function contains() now implemented. See XPath 1.0
section 4.2.
OTP-7430 Fixed xmerl_scan's problem with contents of numeric character
references followed by UTF-8 characters.
OTP-7473 Fixed an incorrect guard for xmerl_scan:to_ucs/2.
OTP-7496 Some bug corrections of xmerl XPath implementation, most
provided by Matthew Dempsky.