Bug fix release : otp_src_R11B-4 Build date : 2007-03-28 This is bug fix release 4 for the R11B release. You can download the full source distribution from http://www.erlang.org/download/otp_src_R11B-4.tar.gz http://www.erlang.org/download/otp_src_R11B-4.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_R11B-4.exe On-line documentation can be found at http://www.erlang.org/doc.html. You can also download the complete HTML documentation or the Unix manual files http://www.erlang.org/download/otp_doc_html_R11B-4.tar.gz http://www.erlang.org/download/otp_doc_man_R11B-4.tar.gz We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- HIGHLIGHTS ------------------------------------------------------------ OTP-6505 There is a new escript program that can be used for writing scripts in Erlang. Erlang scripts don't need to be compiled and any arguments can be passed to them without risk that they are interpreted by the Erlang system. OTP-6546 Dialyzer (in the modes where either source or BEAM code which contains debug_info is analyzed) spits out line information for all discrepancies. This has been a major change, worth of increasing the version number. We warn users that *considerably* more discrepancies are identified by this version of Dialyzer compared with previous ones and applications. If, for some reason, warnings generated by previous versions of Dialyzer are preferable, the command line option --old_style can be employed. --- documentation ------------------------------------------------------------ OTP-6510 Fixed some small errors and typos in the system documentation. (Thanks to Ulf Wiger, Bob Ippolito). --- appmon-2.1.8 ------------------------------------------------------------ OTP-6534 Removed some dead code from the appmon_info and process_info modules. Also rewritten large parts of process_info to make it easier to read and more efficient. --- asn1-1.4.4.14 ------------------------------------------------------------ OTP-6405 Now it is possible to use 'asn1config' and 'inline' options together. It is also possible to use 'inline' on a single file like: asn1ct:compile("MyASN1spec.asn",[inline]). OTP-6462 Data in info/0 in generated code is moved to attribute asn1_info, thus vsn value remains the same if compiler options for asn1-spec differs but the generated code is the same. OTP-6506 Dialyzer warnings on asn1 are removed, i.e. dead code removed. --- compiler-4.4.4 ------------------------------------------------------------ OTP-6461 Incorrect code could be generated for bit syntax matching if the old inliner was used with aggressive settings. --- cosNotification-1.1.4 ------------------------------------------------------------ OTP-6527 Removed some unused code. --- cosProperty-1.1.2 ------------------------------------------------------------ OTP-6527 Removed some unused code. --- cosTransactions-1.2.1 ------------------------------------------------------------ OTP-6527 Removed some unused code. --- debugger-3.1.1 ------------------------------------------------------------ OTP-6552 Removed some dead code from dbg_ieval. --- dialyzer-1.6.0 ------------------------------------------------------------ OTP-6546 Dialyzer (in the modes where either source or BEAM code which contains debug_info is analyzed) spits out line information for all discrepancies. This has been a major change, worth of increasing the version number. We warn users that *considerably* more discrepancies are identified by this version of Dialyzer compared with previous ones and applications. If, for some reason, warnings generated by previous versions of Dialyzer are preferable, the command line option --old_style can be employed. OTP-6547 Dialyzer handles term comparison operators more precisely and is able to identify more discrepancies in 'if' or 'case' statements with comparisons. Dialyzer has more precise type information for many standard OTP functions. --- edoc-0.7.2 ------------------------------------------------------------ OTP-6457 Some missing files have been added: ~/include/edoc_doclet.hrl, ~/priv/edoc.dtd, ~/priv/erlang.png OTP-6568 Undefined macros only cause warnings, not errors. New, built-in @version macro. Documented the @docfile and @headerfile generic tags. Added recognition of "TODO:" as a wiki equivalent for @todo tags. Added documentation about overview pages. 'where' and ',' are allowed as separators in specs. Corrected ambiguity in spec grammar (possible incompatibility issue - parentheses may need to be added in some cases, in existing code). Experimental (and undocumented) support for @param and @return tags and corresponding "..." annotations on @spec parameters. --- erts-5.5.3.1 ------------------------------------------------------------ OTP-6430 Faster system calls for keeping the time accurate are used on newer Linux kernels, which can result in a significant speed-up of the emulator on those systems. OTP-6431 erlang:system_flag(multi_scheduling, block) could cause the emulator with SMP support to deadlock. OTP-6432 The runtime system with SMP support failed to call the driver timeout callback of ports in state closing. This could cause ports to fail flushing their I/O queues. OTP-6437 The {Port, closed} message from a closed port could arrive at the port owner before Port had been removed from the result of erlang:ports/0 in the runtime system with SMP support. OTP-6438 The async id of async jobs created via driver_async wasn't created in a thread safe manner in the runtime system with SMP support. This could in worst case cause driver_async_cancel() to cancel another async job than intended. OTP-6440 Added number of async threads and number of scheduler threads to the system information that can be retrieved via driver_system_info() . For more information see the erl_driver(3) documentation. OTP-6447 Under rare circumstances a terminating connection between two nodes could cause an instantaneous reconnect between the two nodes to fail on the runtime system with SMP support. OTP-6452 In the documentation of the driver entry field extended_marker of erts version 5.5.3 ( driver_entry(3) ), the following is stated: "The following fields are ignored if this field is equal to 0 ". This is a documentation bug and has been changed to: "If this field is equal to 0 , all the fields following this field also have to be 0 , or NULL in case it is a pointer field". The runtime check for detection of old incompatible drivers made when loading drivers has been improved. The emulator can, however, not make sure that a driver that doesn't use the extended driver interface isn't incompatible. Therefore, when loading a driver that doesn't use the extended driver interface, there is a risk that it will be loaded also when the driver is incompatible. When the driver use the extended driver interface, the emulator can verify that it isn't of an incompatible driver version. You are therefore advised to use the extended driver interface. For more information see the erl_driver(3) and driver_entry(3) documentation. OTP-6465 When SIGUSR1 is received by the runtime system with SMP support, the erl_crash.dump is now written by a special thread, instead of as before directly from the signal handler. OTP-6473 An erroneous packet size could be used for the first messages passed through a newly established connection between two Erlang nodes. This could cause messages to be discarded, or termination of the connection. OTP-6475 When terminating ports on the runtime system with SMP support, removal of links to processes was done without locking the link lock on processes. This could cause an emulator crash. OTP-6479 The emulator with SMP support could crash when a port flushed its I/O queue by calling driver_async() from the timeout driver callback. OTP-6494

term_to_binary/2 with compression is now faster.

term_to_binary/2 now accepts the option ' {compressed,Level} ' for specifying the compression level. Level must be in the range 0 (no compression) through 9 (highest compression level). Default is 6.

Future compatibility bugfix: binary_to_term/1 did not handle the Uniq and Index fields correctly.

erlang:system_flag(multi_scheduling, block)

{Port, closed}

Port

erlang:ports/0

driver_async

driver_async_cancel()

driver_system_info()

erl_driver(3)

extended_marker

driver_entry(3)

0

0

0

NULL

erl_driver(3)

driver_entry(3)

SIGUSR1

erl_crash.dump

driver_async()

term_to_binary/2 with compression is now faster.

term_to_binary/2 now accepts the option ' {compressed,Level} ' for specifying the compression level. Level must be in the range 0 (no compression) through 9 (highest compression level). Default is 6.