From 17224a3d31d25ce6daa4de63b52b26bee9564bcd Mon Sep 17 00:00:00 2001
From: Erlang/OTP This document describes the changes made to the ERTS application.
+ Very small floating point numbers generated errors when
+ converting from list to float in some versions of the VM,
+ this is now corrected so that i.e.
+ list_to_float("1.0e-324"). returns 0.0 in all versions of
+ Erlang.
+ Own Id: OTP-7178
+ Windows Vista and Windows 7 file system virtualization,
+ which makes "old style" windows programs execute in a
+ file system sandbox, was previously unintentionally
+ turned on for the Erlang VM. This is now corrected so
+ that i.e. writes to C:\Program Files\. without
+ administrator privileges will fail.
+ Own Id: OTP-7405
+ Fix faulty 64-bit integer term output from drivers. Large
+ 64-bits integers did not generate correct bignums and
+ could even cause emulator crash. Only affects drivers
+ using ERL_DRV_INT64 or ERL_DRV_UINT64, introduced in
+ R13B03.
+ Own Id: OTP-8716
+ Fixed: inet:setopts(S, [{linger,{true,2}}]) returned
+ {error,einval} for SCTP sockets. The inet_drv had a bug
+ when checking the option size.
+ Own Id: OTP-8726 Aux Id: seq11617 Fix libm linking with --as-needed flag
+
+ When building with "--as-needed" linker flags on Linux
+ the build will fail. This has now been fixed.
+ (Thanks to Christian Faulhammer)
+
+ Own Id: OTP-8728
+ ++ gen_udp:connect/3 was broken for SCTP enabled builds. It + did not detect remote end errors as it should.
++ Own Id: OTP-8729
+Reduce the risk of integer wrapping in bin vheap size + counting.
The vheap size series will now use the + golden ratio instead of doubling and fibonacci + sequences.
++ Own Id: OTP-8730
+
+ ETS ordered_set containing
+ Own Id: OTP-8732
+reference() has been substituted for ref() in the + documentation.
++ Own Id: OTP-8733
++ When a native compiled module called a not loaded + non-native compiled module that had an on_load function, + the export entries were trashed after code loading so on + the next call from the native compiled module to the + non-native compiled the emulator crashed. This bug has + now been fixed.
++ Own Id: OTP-8736
++ HiPE-enabled Erlang VMs running on BSD systems sometimes + generated messages like "Yikes! erts_alloc() returned + misaligned address 0x8016a512c". Fixed. (Thanks to Mikael + Pettersson.)
++ Own Id: OTP-8769
+
+ A race condition in
+ Own Id: OTP-8773
++ Removed some potential vulnerabilities from the Erlang + Port Mapper Daemon (epmd) and straightened up access + control. Also removed hazardous interfaces allowing + anyone on a machine to forcefully unregister other nodes. + This means that the ei_unregister/erl_unregister + interfaces in erl_interface is rendered not only error + prone and mystifying as before, but totally ineffective. + The old behaviour of unchecked node unregistering can be + restored if needed, see epmd documentation for details.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-8780
+Building in a source tree without prebuilt platform + independent build results failed on the SSL examples + when:
+ Own Id: OTP-8791
++ inet:getsockopt for SCTP sctp_default_send_param had a + bug to not initialize required feilds causing random + answers. It is now corrected.
++ Own Id: OTP-8795 Aux Id: seq11655
++ The hipe_bifs:get_hrvtime/0 BIF now always returns a real + value even if the "perfctr" Linux kernel extension is not + available. It used to return a dummy value. (Thanks to + Mikael Pettersson.)
++ Own Id: OTP-8798
+
+ Calling a native-code compiled module with an
+
+ Own Id: OTP-8799
+The emulator could crash while writing a crash dump if + native-compiled modules had been loaded. (Thanks to Paul + Guyot.)
++ Own Id: OTP-8801
++ The garbage collector could crash if invoked from + native-compiled code after a call to a BIF. (Thanks to + Paul Guyot.)
++ Own Id: OTP-8821
++ A rare memory leak in binary:matches is removed
++ Own Id: OTP-8823
+For a socket in the HTTP packet mode, the return value
+ from
+ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-8831
++ ets:select_reverse/{1,2,3} are now documented.
++ Own Id: OTP-7863
++ External format of integers changed to make full use of + all 32 bits of INTEGER_EXT. This is a compatible change + as old code can read full 32-bit integers but only + produce 28-bit integers as INTEGER_EXT.
++ Own Id: OTP-8540 Aux Id: seq11534
+
+ Large parts of the
+ Most notable improvement is a reader optimized rwlock
+ implementation which dramatically improve the performance
+ of read-lock/read-unlock operations on multi processor
+ systems by avoiding ping-ponging of the rwlock cache
+ lines. The reader optimized rwlock implementation is used
+ by miscellaneous rwlocks in the runtime system that are
+ known to be read-locked frequently, and can be enabled on
+ ETS tables by passing the
+ There is also a new implementation of rwlocks that is not + optimized for readers. Both implementations interleaves + readers and writers during contention as opposed to, + e.g., the NPTL (Linux) pthread rwlock implementation + which use either a reader or writer preferred strategy. + The reader/writer preferred strategy is problematic since + it starves threads doing the non-preferred operation.
++ The new rwlock implementations in general performs better + in ERTS than common pthread implementations. However, in + some extremely heavily contended cases this is not the + case. Such heavy contention can more or less only appear + on ETS tables. This when multiple processes do very large + amounts of write locked operations simultaneously on the + same table. Such use of ETS is bad regardless of rwlock + implementation, will never scale, and is something we + strongly advise against.
++ The new rwlock implementations depend on atomic + operations. If no native atomic implementation is found, + a fallback solution will be used. Using the fallback + implies a performance degradation. That is, it is more + important now than before to build OTP with a native + atomic implementation.
+
+ The
+ The
+ The changed API of the
+ Note: When building for x86, the
+ Own Id: OTP-8544
++ erlang:localtime_to_universaltime({{2008, 8, 1}, {0, 0, + 0}},true) when TZ=UTC now behaves consistently on all + Unix platforms.
++ The problem fixed was originally reported by Paul Guyot + on erlang-bugs mailing list:
++ http://www.erlang.org/pipermail/erlang-bugs/2008-November/001077.html
++ Own Id: OTP-8580
++ Optimization reducing memory consumption by two words per + ETS object.
++ Own Id: OTP-8737
++ Fixes for unsupported halfword-emulator
++ Own Id: OTP-8745
+
+ NIF 64-bit integer support;
+ Own Id: OTP-8746
++ Alignment of trailing data in messages has been adjusted. + This in order to be able to pass data of any type as + trailing data in the future.
++ Own Id: OTP-8754
++ The obsolete/driver.h header file has been removed. It + has been obsolete and deprecated since R8B. Drivers that + still include obsolete/driver.h must be updated to + include erl_driver.h.
++ *** POTENTIAL INCOMPATIBILITY ***
++ Own Id: OTP-8758
++ Added erlang:system_info(build_type) which makes it + easier to chose drivers, NIF libraries, etc based on + build type of the runtime system.
++ The NIF library for crypto can now be built for valgrind + and/or debug as separate NIF libraries that will be + automatically loaded if the runtime system has been built + with a matching build type.
++ Own Id: OTP-8760
++ Further lessened the memory requirements of ETS objects.
++ Own Id: OTP-8762
+The broken elib_malloc alternate memory allocator has
+ been removed.
+ Own Id: OTP-8764
+
+ Calling
+ The CPU topology is now automatically detected on Windows
+ systems with less than 33 logical processors. The runtime
+ system will now, also on Windows, by default bind
+ schedulers to logical processors using the
+
+ Own Id: OTP-8765
++ The SMP ERTS internal child waiter thread used on Linux + system with NPTL was unintentionally disabled during + cross compilation rewrites (OTP-8323 in R13B03). It has + now been re-enabled. Enabling it again gives a slight + performance improvement.
++ Own Id: OTP-8774
+
+
+ Own Id: OTP-8775
+
+ The scheduler wakeup threshold is now possible to adjust
+ at system boot. For more information see the
+ Own Id: OTP-8811
++ The undocumented function inet:ifget/2 has been improved + to return interface hardware address (MAC) on platforms + supporting getaddrinfo() (such as BSD unixes). Note it + still does not work on all platforms for example not + Windows nor Solaris, so the function is still + undocumented.
++ Buffer overflow and field init bugs for inet:ifget/2 and + inet:getservbyname/2 has also been fixed.
++ Thanks to Michael Santos.
++ Own Id: OTP-8816
++ Optimizations for MIPS when using gcc atomics. (Thanks to + Steve Vinoski)
++ Own Id: OTP-8834
++ Lock optimization in timer functionality.
++ Own Id: OTP-8835
+Fix epmd and build environment to build on VxWorks
++ Own Id: OTP-8838
+This document describes the changes made to the Appmon application.
++ An obsolete compiler directive for native code generation + was removed from a source file.
++ Own Id: OTP-8839
+This document describes the changes made to the asn1 application.
++ Extension Addition Groups are now supported by the parser + and in all backends.
++ Own Id: OTP-8598 Aux Id: seq-11557
++ Extension Addition Groups are now supported in nested + types within a SEQUENCE and CHOICE as well (missed that + in previous fix)
++ Own Id: OTP-8797 Aux Id: seq-11557
++ Bug in UNALIGNED PER regarding encoding and decoding of + constrained numbers with a valuerange > 1024. (Thanks to + Vincent de Phily)
++ Own Id: OTP-8779
++ Minor corrections in the User Guide.
++ Own Id: OTP-8829
++ Returning {return_group_result,failed} from end_per_group + in a group that is part of a sequence, did not cause the + proceeding cases (or groups) to get skipped. This has + been fixed.
++ Own Id: OTP-8753 Aux Id: seq11644
++ ct:install now works as the documentation describes.
++ Own Id: OTP-8818 Aux Id: seq-11666
++ Common Test has been updated to handle start options and + test specification terms for test case groups (and test + cases in groups). Also, an option named 'label', has been + added that associates the test run with a name that + Common Test prints in the overview HTML logs.
++ Own Id: OTP-8725 Aux Id: OTP-8727
++ Andrey Pampukha has been added to the AUTHORS file. Thank + you Andrey for your work on configuration data handling, + Large Scale Testing improvements, and other useful + updates and fixes.
++ Own Id: OTP-8803
++ The Configuration Data chapter in the User's Guide has + been updated.
++ Own Id: OTP-8804
++ Milliseconds are now included in timestamps in Common + Test log entries. (Thanks to Tomas Johansson.)
++ Own Id: OTP-8808
+This document describes the changes made to the Compiler application.
++ Eliminated warnings for auto-imported BIF clashes.
++ Own Id: OTP-8840
+This document describes the changes made to the Crypto application.
++ Crypto dialyzer type error in md5_mac and sha_mac.
++ Own Id: OTP-8718
+
+ RC4 stream cipher didn't work. This since the new NIF
+ implementation of
+ Own Id: OTP-8781
++ A number of memory leaks in the crypto NIF library have + been fixed.
++ Own Id: OTP-8810
++ Added erlang:system_info(build_type) which makes it + easier to chose drivers, NIF libraries, etc based on + build type of the runtime system.
++ The NIF library for crypto can now be built for valgrind + and/or debug as separate NIF libraries that will be + automatically loaded if the runtime system has been built + with a matching build type.
++ Own Id: OTP-8760
+This document describes the changes made to the Debugger application.
++ Type specs have been added/cleaned up. (Thanks to Kostis + Sagonas.)
++ Own Id: OTP-8757
+This document describes the changes made to the Dialyzer application.
++ Eliminated warnings for auto-imported BIF clashes.
++ Own Id: OTP-8840
+This document describes the changes made to the DocBuilder application.
+Fixed problem with a centered table that was + transformed into an xml document which then produced + mis-formatted html.
++ Own Id: OTP-8784
+This document describes the changes made to the EDoc application.
+Edoc now uses the new API functions to
+ Own Id: OTP-8749
+This document describes the changes made to the erl_docgen application.
-Fixed the transformation from xml to html of the + funcs block in comref pages.
++ Own Id: OTP-8792
+This document describes the changes made to the Erl_interface application.
+
+ Removed unused variable in
+ Fixed faulty deallocation in
+ Own Id: OTP-8748
+ei_connect: correct man page examples (Thanks to + Michael Santos)
++ Own Id: OTP-8813
+ei: prevent overflow in
Add length check of the buffer + before copying. (Thanks to Michael Santos)
++ Own Id: OTP-8814
+Remove DECLSPEC feature which fails on Windows Vista + and use the fallback implementation instead.
++ Own Id: OTP-8826
+erl_call: fix multiple buffer overflows (Thanks to + Michael Santos)
++ Own Id: OTP-8827
+Fix incorrect writev iovec buffer handling in
+
+ Own Id: OTP-8837
+Fixed broken links in the documentation.
++ Own Id: OTP-8796
++ Fixed gui crash on windows.
++ Own Id: OTP-8830
+This document describes the changes made to the GS application.
-+ The documentation for GS is updated with the warning that + it should not be used in new applications. GS is planned + to be deprecated soon and might be removed from the + distribution already in the next major release (R15). For + graphical applications we recommend the use of WX + instead.
++ Own Id: OTP-8824
+This document describes the changes made to HiPE.
+The HiPE compiler could crash when compiling certain + modules (the bug has been latent, and been exposed by new + optimizations introduced in the BEAM compiler in R14A). + (Thanks to Mikael Pettersson.)
++ Own Id: OTP-8800
++ hipe:load/1 was broken. (Thanks to Paul Guyot.)
++ Own Id: OTP-8802
++ [httpc] If a request times out (not connect timeout), the + handler process exited (normal) but neglected to inform + the manager process. For this reason, the manager did not + clean up the request table., resulting in a memory leak. + Also the manager did not create a monitor for the + handler, so in an unforseen handler crash, this could + also create a memory leak.
++ Own Id: OTP-8739
++ The service tftp was spelled wrong in documentation and + in some parts of the code. It should be tftp.
++ Own Id: OTP-8741 Aux Id: seq11635
++ [httpc] Replaced the old http client api module (http) + with the new, httpc in the users guide.
++ Own Id: OTP-8742
++ Eliminated warnings for auto-imported BIF clashes.
++ Own Id: OTP-8840
+