diff options
Diffstat (limited to 'erts/doc/src/notes.xml')
-rw-r--r-- | erts/doc/src/notes.xml | 522 |
1 files changed, 508 insertions, 14 deletions
diff --git a/erts/doc/src/notes.xml b/erts/doc/src/notes.xml index 2252358e0d..8ff3f50348 100644 --- a/erts/doc/src/notes.xml +++ b/erts/doc/src/notes.xml @@ -4,7 +4,7 @@ <chapter> <header> <copyright> - <year>2004</year><year>2009</year> + <year>2004</year><year>2010</year> <holder>Ericsson AB. All Rights Reserved.</holder> </copyright> <legalnotice> @@ -13,12 +13,12 @@ compliance with the License. You should have received a copy of the Erlang Public License along with this software. If not, it can be retrieved online at http://www.erlang.org/. - + Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License. - + </legalnotice> <title>ERTS Release Notes</title> @@ -30,6 +30,500 @@ </header> <p>This document describes the changes made to the ERTS application.</p> +<section><title>Erts 5.7.5.3</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + On Linux systems using heart (erl -heart) and a + HEAR_BEAT_TIMEOUT less than default, heart could fire + even though Erlang was running fine after approx 298 to + 497 days (depending on kernel config). This was due to + the behaviour of the times(2) system call. Usage of + times(2) is now replaced with clock_gettime(2) and the + CLOCK_MONOTONIC clock, resulting in a more stable + solution. The Erlang VM itself has used clock_gettime(2) + on linux since before R12B, so this only affects the + heart program.</p> + <p> + Own Id: OTP-10111 Aux Id: seq12075 </p> + </item> + </list> + </section> + +</section> + +<section><title>Erts 5.7.5.2</title> + + <section><title>Known Bugs and Problems</title> + <list> + <item> + <p> + Two bugs in gen_sctp has been corrected: getopts/setopts + hence also send could only be called from socket owner, + and options 'linger', 'rcvbuf' and 'sndbuf' was read from + wrong protocol layer hence read wrong values by getopts.</p> + <p> + Own Id: OTP-9544</p> + </item> + </list> + </section> + +</section> + +<section><title>Erts 5.7.5.1</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Driver threads, such as async threads, using <seealso + marker="erl_driver#ErlDrvPDL">port data locks</seealso> + peeked at the port status field without proper locking + when looking up the driver queue.</p> + <p> + Own Id: OTP-8475</p> + </item> + <item> + <p> + A call to the BIF <c>unregister(RegName)</c> when a port + had the name <c>RegName</c> registered in the runtime + system without SMP support caused a runtime system crash. + (Thanks to Per Hedeland for the bugfix and test case.)</p> + <p> + Own Id: OTP-8487</p> + </item> + <item> + <p> + Fix memory management bug causing crash of non-SMP + emulator with async threads enabled. The bug did first + appear in R13B03.</p> + <p> + Own Id: OTP-8591 Aux Id: seq11554 </p> + </item> + </list> + </section> + +</section> + +<section><title>Erts 5.7.5</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + Fix <c>binary_to_term</c> crash on compressed term with + corrupt size field.</p> + <p> + Own Id: OTP-8336</p> + </item> + <item> + <p> + Processes and/or ports could get stuck on a blocked + scheduler when <c>erlang:system_flag(multi_scheduling, + block)</c> was used.</p> + <p> + Processes and/or ports could get stuck on an offline + scheduler when schedulers online were reduced using + <c>erlang:system_flag(schedulers_online, + SchedulersOnline)</c>.</p> + <p> + Own Id: OTP-8342</p> + </item> + <item> + <p>Building on Windows will now work if the paths to + <c>mc.exe</c> and <c>rc.exe</c> contain spaces. The + README.win32 file has been updated with some information + about building using Visual Studio 2008. (Thanks to + Andrew Thompson.)</p> + <p> + Own Id: OTP-8345</p> + </item> + <item> + <p> + EPMD now correctly handles the extra data field which can + be given in the ALIVE2_REQ request and retrieved in the + PORT2_RESP response. (Thanks to Klas Johansson.)</p> + <p> + Own Id: OTP-8361</p> + </item> + <item> + <p> + The configure test for reliable floating point exceptions + has been update to work on modern versions of Mac OS X. + (Thanks to Trannie Carter.)</p> + <p> + Own Id: OTP-8368</p> + </item> + <item> + <p> + ERTS makefiles used to detect the use of a gcc C compiler + by checking if CC equaled gcc. That is, the makefiles + failed to detect gcc C compilers with other command line + names than gcc. `configure' now substitute GCC into the + makefiles. If CC is a gcc C compiler, GCC will have the + value yes. (Thanks to Jean-S�bastien P�dron)</p> + <p> + Own Id: OTP-8373</p> + </item> + <item> + <p> + ETS bug causing the <c>memory</c> counter from + <c>ets:info</c> for ordered_set's to sometimes get out of + synch and absurdly high.</p> + <p> + Own Id: OTP-8377 Aux Id: seq11442 </p> + </item> + <item> + <p> + Immediately repeated multi-scheduling block/unblock + cycles using <c>erlang:system_flag(multi_scheduling, + block | unblock)</c> could deadlock the runtime system.</p> + <p> + Own Id: OTP-8386</p> + </item> + <item> + <p>A number of bugs concerning re and unicode are + corrected:</p> + <p>re:compile no longer looses unicode option, which also + fixes bug in re:split.</p> + <p>re:replace now handles unicode charlist replacement + argument</p> + <p>re:replace now handles unicode RE charlist argument + correctly</p> + <p>re:replace now handles binary unicode output correctly + when nothing is replaced.</p> + <p>Most code, testcases and error isolation done by Rory + Byrne.</p> + <p> + Own Id: OTP-8394</p> + </item> + <item> + <p> + The loading of native code was not properly atomic in the + SMP emulator, which could cause crashes. Also a per-MFA + information table for the native code has now been + protected with a lock since it turns that it could be + accessed concurrently in the SMP emulator. (Thanks to + Mikael Pettersson.)</p> + <p> + Own Id: OTP-8397</p> + </item> + <item> + <p> + Fix processes in exiting status that are about to be + scheduled, to not be allowed to garbage collect.</p> + <p> + Own Id: OTP-8420</p> + </item> + <item> + <p>Removed bogus "\011" character sequence in + documentation.</p> + <p> + Own Id: OTP-8422</p> + </item> + <item> + <p> + The resolver routines failed to look up the own node name + as hostname, if the OS native resolver was erroneously + configured, bug reported by Yogish Baliga, now fixed.</p> + <p> + The resolver routines now tries to parse the hostname as + an IP string as most OS resolvers do, unless the native + resolver is used.</p> + <p> + The DNS resolver inet_res and file resolver inet_hosts + now do not read OS configuration files until they are + needed. Since the native resolver is default, in most + cases they are never needed.</p> + <p> + The DNS resolver's automatic updating of OS configuration + file data (/etc/resolv.conf) now uses the 'domain' + keyword as default search domain if there is no 'search' + keyword.</p> + <p> + Own Id: OTP-8426 Aux Id: OTP-8381 </p> + </item> + <item> + <p> + The re module: A regular expression with an option change + at the start of a pattern that had top-level alternatives + could cause overwriting and/or a crash. (Thanks to + Michael Santos.)</p> + <p> + Own Id: OTP-8438</p> + </item> + <item> + <p> + Harmless buffer overflow by one byte in asn1 and + ram_file_drv.</p> + <p> + Own Id: OTP-8451</p> + </item> + </list> + </section> + + + <section><title>Improvements and New Features</title> + <list> + <item> + <p> + Improved GC performance after BIF/NIF call when a lot of + heap fragments was created. This will mainly benefit NIFs + that return large compound terms.</p> + <p> + Own Id: OTP-8240</p> + </item> + <item> + <p>Incompatible changes in the experimental NIF + feature.</p> <list><item> Changed the NIF function + prototypes in order to allow more than 3 function + arguments. </item><item> <c>enif_get_data</c> renamed as + <c>enif_priv_data</c>. </item><item> + <c>enif_make_string</c> got a third argument for + character encoding. </item><item> The return value of + <c>erlang:load_nif/2</c> on error changed. </item></list> + <p>Read more in the documentation of <c>erl_nif</c> and + <c>erlang:load_nif/2</c></p>. + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-8304</p> + </item> + <item> + <p>Cross compilation improvements and other build system + improvements.</p> + <p>Most notable:</p> <list><item> Lots of cross + compilation improvements. The old cross compilation + support was more or less non-existing as well as broken. + Please, note that the cross compilation support should + still be considered as experimental. Also note that old + cross compilation configurations cannot be used without + modifications. For more information on cross compiling + Erlang/OTP see the <c>$ERL_TOP/INSTALL-CROSS.md</c> file. + </item><item> Support for staged install using <url + href="http://www.gnu.org/prep/standards/html_node/DESTDIR.html">DESTDIR</url>. + The old broken <c>INSTALL_PREFIX</c> has also been fixed. + For more information see the <c>$ERL_TOP/INSTALL.md</c> + file. </item><item> Documentation of the <c>release</c> + target of the top <c>Makefile</c>. For more information + see the <c>$ERL_TOP/INSTALL.md</c> file. </item><item> + <c>make install</c> now by default creates relative + symbolic links instead of absolute ones. For more + information see the <c>$ERL_TOP/INSTALL.md</c> file. + </item><item> <c>$ERL_TOP/configure --help=recursive</c> + now works and prints help for all applications with + <c>configure</c> scripts. </item><item> Doing <c>make + install</c>, or <c>make release</c> directly after + <c>make all</c> no longer triggers miscellaneous + rebuilds. </item><item> Existing bootstrap system is now + used when doing <c>make install</c>, or <c>make + release</c> without a preceding <c>make all</c>. + </item><item> The <c>crypto</c> and <c>ssl</c> + applications use the same runtime library path when + dynamically linking against <c>libssl.so</c> and + <c>libcrypto.so</c>. The runtime library search path has + also been extended. </item><item> The <c>configure</c> + scripts of <c>erl_interface</c> and <c>odbc</c> now + search for thread libraries and thread library quirks the + same way as <c>erts</c> do. </item><item> The + <c>configure</c> script of the <c>odbc</c> application + now also looks for odbc libraries in <c>lib64</c> and + <c>lib/64</c> directories when building on a 64-bit + system. </item><item> The <c>config.h.in</c> file in the + <c>erl_interface</c> application is now automatically + generated in instead of statically updated which reduces + the risk of <c>configure</c> tests without any effect. + </item></list> + <p>(Thanks to Henrik Riomar for suggestions and + testing)</p> + <p>(Thanks to Winston Smith for the AVR32-Linux cross + configuration and testing)</p> + <p> + *** POTENTIAL INCOMPATIBILITY ***</p> + <p> + Own Id: OTP-8323</p> + </item> + <item> + <p>NIF improvements:</p> <list><item> Driver API for + multi-threading made available for NIFs. </item><item> + Support for mempory managed (garbage collected) resource + objects. A way to pass "pointers" to native data + structures between C and Erlang in a safe way. + </item><item> Support for references, floats and term + comparison. </item><item> Various new functions, like + <c>enif_inspect_iolist_as_binary</c>, + <c>enif_make_sub_binary</c>, <c>enif_get_string</c>, + <c>enif_get_atom</c>, <c>enif_make_tuple_from_array</c>, + <c>enif_make_list_from_array</c>, + <c>enif_make_existing_atom</c>. </item></list> + <p> + Own Id: OTP-8335</p> + </item> + <item> + <p> + Minor alignment adjustments of scheduler specific data.</p> + <p> + Own Id: OTP-8341</p> + </item> + <item> + <p>The documentation is now possible to build in an open + source environment after a number of bugs are fixed and + some features are added in the documentation build + process. </p> + <p>- The arity calculation is updated.</p> + <p>- The module prefix used in the function names for + bif's are removed in the generated links so the links + will look like + "http://www.erlang.org/doc/man/erlang.html#append_element-2" + instead of + "http://www.erlang.org/doc/man/erlang.html#erlang:append_element-2".</p> + <p>- Enhanced the menu positioning in the html + documentation when a new page is loaded.</p> + <p>- A number of corrections in the generation of man + pages (thanks to Sergei Golovan)</p> + <p>- The legal notice is taken from the xml book file so + OTP's build process can be used for non OTP + applications.</p> + <p> + Own Id: OTP-8343</p> + </item> + <item> + <p> + There is new <c>erlang:binary_to_term/2</c> BIF that + takes an option list. The option <c>safe</c> can be used + to prevent creation of resources that are not garbage + collected (such as atoms). (Thanks to Jayson Vantuyl.)</p> + <p> + Own Id: OTP-8367</p> + </item> + <item> + <p> + The default settings for garbage collection of binaries + has been adjusted to be less aggressive than in R13B03. + It is now also possible configure the settings for binary + GC. See the documentation for <c>spawn_opt/2-5</c>, + <c>erlang:system_info/1</c>, <c>erlang:system_flag/2</c>, + <c>process_flag/2-3</c>, <c>erlang:trace/3</c>, and the + documenation for <c>erl</c> for the new command line + options <c>+hms</c> and <c>+hmbs</c>.</p> + <p> + Own Id: OTP-8370</p> + </item> + <item> + <p> + A bug causing memory corruption in re:run() has been + corrected. (Thanks to Yamashina Hio.)</p> + <p> + Own Id: OTP-8375</p> + </item> + <item> + <p> + The <c>-Werror</c> option for <c>erlc</c> and the + compiler option <c>warnings_as_errors</c> will cause + warnings to be treated as errors. (Thanks to Christopher + Faulet.)</p> + <p> + Own Id: OTP-8382</p> + </item> + <item> + <p> + Explicit top directories in archive files are now + optional.</p> + <p> + For example, if an archive (app-vsn.ez) just contains an + app-vsn/ebin/mod.beam file, the file info for the app-vsn + and app-vsn/ebin directories are faked using the file + info from the archive file as origin. The virtual + direcories can also be listed. For short, the top + directories are virtual if they does not exist.</p> + <p> + Own Id: OTP-8387</p> + </item> + <item> + <p> + An unnecessary lock operation in os:timestamp/0 has been + eliminated, making it slightly more efficient. (Thanks to + Jonas Falkevik and Tuncer Ayaz.)</p> + <p> + Own Id: OTP-8390</p> + </item> + <item> + <p> + There is a new <c>+t</c> emulator option for changing the + maximum number of atoms. (Thanks to Julien Barbot.)</p> + <p> + Own Id: OTP-8405</p> + </item> + <item> + <p> + Fixed numerous compiler warnings generated by gcc 4.4.1 + and tile-cc 2.0.1.78377 when compiling the runtime + system.</p> + <p> + Own Id: OTP-8412</p> + </item> + <item> + <p> + <c>configure</c> learned the option + <c>--enable-m32-build</c> to force the building of a + 32-bit run-time on systems where the default C compiler + generates 64-bit executables by default.</p> + <p> + Own Id: OTP-8415</p> + </item> + <item> + <p> + HiPE now works in the 64-bit emulator on Mac OS X. + (Thanks to Geoff Cant.)</p> + <p> + Own Id: OTP-8416</p> + </item> + <item> + <p> + Improved handling of symbolic links to escripts</p> + <p> + Own Id: OTP-8417</p> + </item> + <item> + <p> + Add lock profiling tool.</p> + <p> + The Lock profiling tool, lcnt, can make use of the + internal lock statistics when the runtime system is built + with this feature enabled.</p> + <p> + This provides a mechanism to examine potential lock + bottlenecks within the runtime itself.</p> + <p> + - Add erts_debug:lock_counters({copy_save, bool()}). This + option enables or disables statistics saving for + destroyed processes and ets-tables. Enabling this might + consume a lot of memory.</p> + <p> + - Add id-numbering for lock classes which is otherwise + undefined.</p> + <p> + Own Id: OTP-8424</p> + </item> + <item> + <p> + Removed spurious options to the emulator from escript.</p> + <p> + Own Id: OTP-8427</p> + </item> + <item> + <p> + Minor documentation fixes. Mainly anchor adjustments.</p> + <p> + Own Id: OTP-8457</p> + </item> + </list> + </section> + +</section> + <section><title>Erts 5.7.4</title> <section><title>Fixed Bugs and Malfunctions</title> @@ -242,7 +736,7 @@ <item> <p> The <seealso - marker="erlang#erlang:port_command/3">erlang:port_command/3</seealso> + marker="erlang#port_command/3">erlang:port_command/3</seealso> BIF has been added. <c>erlang:port_command/3</c> is currently not auto imported, but it is planned to be auto imported in OTP R14. For more information see the @@ -4371,16 +4865,16 @@ following code might hang:</p> <code type="none"><![CDATA[ Mon = erlang:monitor(process, Pid), -\011 %% ... -\011 exit(Pid, bang), + %% ... + exit(Pid, bang), erlang:demonitor(Mon), -\011 receive -\011 {'DOWN', Mon , process, Pid, _} -> ok -\011 %% We were previously guaranteed to get a down message -\011 %% (since we exited the process ourself), so we could -\011 %% in this case leave out: -\011 %% after 0 -> ok -\011 end, + receive + {'DOWN', Mon , process, Pid, _} -> ok + %% We were previously guaranteed to get a down message + %% (since we exited the process ourself), so we could + %% in this case leave out: + %% after 0 -> ok + end, ]]></code> <p>*** POTENTIAL INCOMPATIBILITY ***</p> <p>Own Id: OTP-5772</p> @@ -5342,7 +5836,7 @@ <list type="bulleted"> <item> <p>If Erlang/OTP was installed in a short directory name, - such as <c><![CDATA[C:\\Program\\erl5.4.2]]></c>, the emulator would not + such as <c><![CDATA[C:\Program\erl5.4.2]]></c>, the emulator would not start.</p> <p>Own Id: OTP-5254</p> </item> |