Major relese : otp_src_R13A Build date : 2009-03-17 R13A is a beta release of the next R13B major release. We do not recommend it for use in live products. In the R13B release, there may be incompatibilities in new features that were introduced in this R13A release (for instance in the Unicode support). You can download the full source distribution from http://www.erlang.org/download/otp_src_R13A.tar.gz http://www.erlang.org/download/otp_src_R13A.readme (this file) Note: To unpack the TAR archive you need a GNU TAR compatible program. 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_R13A.exe 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_R13A.tar.gz http://www.erlang.org/download/otp_doc_man_R13A.tar.gz We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- HIGHLIGHTS ------------------------------------------------------------ OTP-7463 The inets http client will now use persistent connections without pipelining as default and if a pipeline timeout is set it will pipeline the requests on the persistent connections. OTP-7500 The runtime system with SMP support now uses multiple, scheduler specific run queues, instead of one globally shared run queue. The lock protecting the shared run queue was heavily contended, and the shared run queue also caused Erlang processes to randomly migrate between schedulers with negative cache effects as a result. With the current scheduler specific run queue solution, lock contention due to run queue protection has been reduced, and Erlang processes are only migrated when needed to balance the load between the schedulers. The reduced amount of migration also reduce lock contention on locks protecting the scheduler specific instances of the erts internal memory allocators. The scheduler specific run queues are also a necessity for a lot of future planned NUMA (Non-Uniform Memory Access) specific optimizations. OTP-7511 The conf case in Test Server has been extended with properties that make it possible to execute test cases in parallel, in sequence and in shuffled order. It is now also possible to repeat test cases according to different criteria. The properties can be combined, making it possible to e.g. repeat a conf case a certain number of times and execute the test cases in different (random) order every time. The properties are specified in a list in the conf case definition: {conf, Properties, InitCase, TestCases, EndCase}. The available properties are: parallel, sequence, shuffle, repeat, repeat_until_all_ok, repeat_until_any_ok, repeat_until_any_fail, repeat_until_all_fail. OTP-7571 The snmp application: A proper discover procedure has been implemented. OTP-7648 Support for Unicode is implemented as described in EEP10. Formatting and reading of unicode data both from terminals and files is supported by the io and io_lib modules. Files can be opened in modes with automatic translation to and from different unicode formats. The module 'unicode' contains functions for conversion between external and internal unicode formats and the re module has support for unicode data. There is also language syntax for specifying string and character data beyond the ISO-latin-1 range. The interactive shell will support input and output of unicode characters when the terminal and operating system supports it. Please see the EEP and the io/io_lib manual pages as well as the stdlib users guide for details. I/O-protocol incompatibilities: The io_protocol between io_Server and client is updated to handle protocol data in unicode formats. The updated protocol is now documented. The specification resides in the stdlib users manual, which is a new part of the manual. io module incompatibilities: The io:put_chars, io:get_chars and io:get_line all handle and return unicode data. In the case where binaries can be provided (as to io:put_chars), they shall be encoded in UTF-8. When binaries are returned (as by io:get_line/get_chars when the io_server is set in binary mode) the returned data is also always encoded as UTF-8. The file module however still returns byte-oriented data, why file:read can be used instead of io:get_chars to read binary data in ISO-latin-1. io_lib module incompatibilities: io_lib:format can, given new format directives (i.e "~ts" and "~tc"), return lists containing integers larger than 255. OTP-7748 The short-circuit operators andalso and orelse no longer guarantees that their second argument is either true or false. As a consequence, andalso/orelse are now tail-recursive. OTP-7826 Nodes belonging to different independent clusters can now co-exist on the same host with the help of a new environment variable setting ERL_EPMD_PORT. OTP-7836 [manager] A major flaw was discovered with the agent handling. First, TargetName was never used as intended, as a unique identifier for the target (agent in this case). Second, TargetName had a *default value*, which meant that several agents could have the same TargetName, causing unpredictable behaviour in the manager. Third, EngineID was not a mandatory config option and had furthermore also a *default value*. These problems has been solved in the following way: First, a new set of api functions has been introduced (and documented): snmpm:register_user/4, snmpm:register_user_monitor/4, snmpm:register_agent/3, snmpm:unregister_agent/2, snmpm:agent_info/2, snmpm:update_agent_info/4, snmpm:sync_get/3,4,5,6, snmpm:async_get/3,4,5,6, snmpm:sync_get_next/3,4,5,6, snmpm:async_get_next/3,4,5,6, snmpm:sync_set/3,4,5,6, snmpm:async_set/3,4,5,6, snmpm:sync_get_bulk/5,6,7,8, snmpm:async_get_bulk/5,6,7,8 that all use TargetName (and not, as previously, Addr and Port) to identify the agent (also snmpm:which_agents/0 has been changed). Second, for backward compatibility, the old functions still exist, but are no longer documented and are now wrappers for the new functions, including erroneous default value for EngineID and all. The TargetName is however generated from the Addr, Port and Version provided in the config options. Third, the behaviour of the SNMP manager user (snmpm_user) has been changed to reflect this, i.e. handle_pdu/4, handle_trap/3, handle_inform/3 and handle_report/3. Also the the return-value of handle_agent/4. The old (non-documented) callback-functions (using Addr and Port) will still be called if the agent was registered using the old registration functions. OTP-7839 Test case groups have been introduced. With this feature it's possible to execute groups (possibly nested) of test cases, each group wrapped with a call to function init_per_group/2 and end_per_group/2. Group definitions are done by means of the new call-back function groups/0, which should return a list of definitions. A group definition contains a name tag, a list of properties and a list of test cases (including possible nested group definitions). The properties make it possible to execute test cases in parallel, in sequence and in shuffled order. It is also possible to repeat test cases according to different criteria. The properties can be combined, making it possible to e.g. repeat a conf case a certain number of times and execute the test cases in different (random) order every time. Available properties are: parallel, sequence, shuffle, repeat, repeat_until_all_ok, repeat_until_any_ok, repeat_until_any_fail and repeat_until_all_fail. Please see the Common Test User's Guide for details. OTP-7859 A first beta release of wxErlang. OTP-7864 The analysis accepts opaque type declarations and detects violations of opaqueness of terms of such types. Starting with R13, many Erlang/OTP standard libraries (array, dict, digraph, ets, gb_sets, gb_trees, queue, and sets) contain opaque type declarations of their main data types. Dialyzer will spit out warnings in code that explicitly depends on the structure of these terms. Added support for handling UTF segments in bitstreams and for detecting obvious type errors in these segments. Warning: This code is not terribly tested though since there are very few Erlang programs which use Unicode-based binaries - not surprising since this is a new language feature of R13. Strengthened the discrepancy identification when testing for equality and matching between terms of different types. This detects more bugs in code. Added warning for M:F(...) calls where M is not a module term and F is not an atom. Previously, such calls where found to fail but the reason for the failure was not reported. Added a convenient shorthand for the --no_check_plt option (-n). Added the --dump_callgraph option for dumping the callgraph of all files that are analyzed into a specified file. The callgraph either be dumped in raw format, in .dot format, or converted to a .ps (postscript) file. Note that in large callgraphs the generated postscript file might not be interpretable by Ghostview. (Thanks to Ilya Khlopotov for the initial version of this functionality.) --- documentation ------------------------------------------------------------ OTP-7686 An example in Getting Started With Erlang has been corrected. (Thanks to Xynos K (AT).) OTP-7779 A section about the '--' operator has been added under "Common Caveats". OTP-7855 The escape sequences \x and \{ have been assigned new interpretations (they used to return the ASCII code for x and { respectively). One or more octal characters inside curly brackets after a leading backslash is from now on an alternative to the existing syntax \NNN, but can also be used for codes greater than 255. In a similar fashion, one or more hexadecimal characters can be put inside curly brackets after a leading \x. Furthermore, the escape sequences \xH and \xHH, where N is a hexadecimal character, can be used for codes less than 256. NOTE: These new escape sequences are still considered experimental and may be changed in the R13B release. --- otp ------------------------------------------------------------ OTP-7606 Various additions to configure script due to requests from open source customers: --- appmon-2.1.10.1 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- asn1-1.6.3 ------------------------------------------------------------ OTP-7678 Can now handle default values of simple types that is provided on its own format, i.e. not just as asn1_DEFAULT. OTP-7681 constrained number with a valuerange greater than 512 now has the proper interpretation of the values that causes shift to the next number of units (bits), According to limit condition 2^m < "range" =< 2^(m + 1) then the number of bits are m + 1. --- asn1-1.6.4 ------------------------------------------------------------ OTP-7708 A a SEQUENCE OF with a type that is a CHOICE with ellipses occured falsely a compile error. The error causing that is now removed. --- asn1-1.6.5 ------------------------------------------------------------ OTP-7734 For a BIT STRING with SIZE constraint higher than 255 compiled with [per_bin,optimize, compact_bit_string] an improper io-list was created and sent to the c-driver for complete encoding. This error has been resolved. --- asn1-1.6.6 ------------------------------------------------------------ OTP-7759 Decode of an open_type when the value was empty tagged type encoded with indefinite length failed. This is now corrected. OTP-7763 Encode of BIT STRING with size of exact length, on compact_bit_string format in UNALIGNED PER failed when value had the right size, i.e. no padding needed. --- asn1-1.6.8 ------------------------------------------------------------ OTP-7876 A BIT STRING with a size constraint that has a single value and an extension as in BIT STRING (SIZE (16,...)) was erroneous encoded/decoded. This is now corrected and follows X.691 Section 15.6. --- common_test-1.3.5 ------------------------------------------------------------ OTP-7663 It is now possible for the Common Test user to disable the auto-compile feature. This is done by specifying the run_test flag -no_auto_compile, or the ct:run_test/1 option {auto_compile,false}. OTP-7749 If the Erlang runtime system was started without access to an erlang shell (e.g. -noshell), compilation errors would cause a crash in the Common Test application. Without access to a shell, Common Test can not promt the user to choose to continue or abort the test session, but must assume that the session should proceed. OTP-7758 A new function, ct:get_config/3, has been added to Common Test that makes it possible to - if a particular config variable has been defined in multiple config files - return all matching values for the variable. The order of the elements in the returned list is the same as the specified order of the config files. OTP-7781 Because a telnet connection was always identified by a config variable alias, it was impossible to open multiple connections using the same telnet host data entry in the config file. This limitation has been removed by making it possible to associate a connection with handle value only (i.e. multiple connections may be opened using the same config variable). See ct_telnet:open/4 for details. OTP-7782 A new syntax for defining default config data values has been introduced. In previous versions of Common Test, to define and access a default value for a config variable (in the suite info- or test case info function), an alias name had to be used. With the new syntax you may define default values without reference to aliases, like this: {default_config,VarName,DefaultValue}. Please see the User's Guide for more info. OTP-7783 In previous versions of Common Test, whenever a config variable got associated with a name (by means of a require statement), the config variable name was replaced with the new name. This introduced unwanted dependencies between test cases (e.g. if one test case would introduce a new name, the following test cases could no longer access the config data by means of the original variable). This functionality has now been updated so that when new names are introduced with require, they become aliases (references) instead of replacements. Hence, config data elements can always, at any time, be accessed by means of the original config variable names. --- common_test-1.3.6 ------------------------------------------------------------ OTP-7750 When running a test which includes all suites in a test directory, if the auto compilation would fail for one suite, all following suites would be excluded from the test. This was an unwanted behaviour and has been corrected. Now all suites will always be compiled and only the failing ones excluded from the test (and logged as missing). OTP-7800 The step functionality in Common Test (based on interaction with Debugger) was broken. This has been fixed, and some new step features have also been added. Please see the Common Test User's Guide for details. OTP-7803 It is now possible for the user to specify include directories that Common Test will pass along to the compiler when suite and help modules are being compiled (which Common Test performs automatically before running tests). --- common_test-1.4 ------------------------------------------------------------ OTP-7838 A support client module for SSH and SFTP, ct_ssh, has been introduced in Common Test. OTP-7839 Test case groups have been introduced. With this feature it's possible to execute groups (possibly nested) of test cases, each group wrapped with a call to function init_per_group/2 and end_per_group/2. Group definitions are done by means of the new call-back function groups/0, which should return a list of definitions. A group definition contains a name tag, a list of properties and a list of test cases (including possible nested group definitions). The properties make it possible to execute test cases in parallel, in sequence and in shuffled order. It is also possible to repeat test cases according to different criteria. The properties can be combined, making it possible to e.g. repeat a conf case a certain number of times and execute the test cases in different (random) order every time. Available properties are: parallel, sequence, shuffle, repeat, repeat_until_all_ok, repeat_until_any_ok, repeat_until_any_fail and repeat_until_all_fail. Please see the Common Test User's Guide for details. OTP-7842 It is now possible to use DES3 encrypted configuration files with Common Test. OTP-7853 In previous versions of Common Test, only one FTP connection could be opened per configuration target name. This has been updated so that multiple connections may be opened. The possibility to use named connections is still supported. OTP-7856 The Erlang mode for Emacs has been updated with new and modified skeletons for Common Test and TS. Syntax for test case groups in Common Test (and conf cases with properties in TS) has been added and a new minimal Common Test suite skeleton has been introduced. --- compiler-4.6 ------------------------------------------------------------ OTP-7650 The compiler could crash if the size for a binary segment in matching was a complex literal such as binary or tuple. OTP-7655 The compiler generates more compact and faster code for matching of complex constants (such as constant lists and tuples). OTP-7673 The undocumented, unsupported, and deprecated guard BIF is_constant/1 has been removed. OTP-7679 For some complex guards which used andalso/orelse, the compiler would crash. (Thanks to Hunter Morris.) OTP-7690 Code that (incorrectly) used the the value of nested applications of setelement/3 in bit syntax construction could crash the compiler. OTP-7707 Modules containing huge integers (consisting of several hundreds of thousands of digits or more) could be slow to compile. This problem has been corrected. OTP-7718 The compiler generates better code for many guard expressions, and especially for guards that use andalso/orelse or record fields. (In technical terms, andalso/orelse in a guard would case the creation of a stack frame and saving of all x registers that could potentially be alive after the guard and restoring all x registers before leaving the guard. For certain guards, far too many x registers were saved and subsequently restored. In this version of the compiler, no stack frame is created and no x registers are saved and restored.) OTP-7737 The default size for the resulting binary created by a binary comprehension was 64Kb in R12B (it would grow if needed). This was often far too much. In this release, the default is changed to 256 bytes. Furthermore, for most binary comprehensions without filters, the exact size of the resulting binary can be calculated beforehand and the compiler now generates code that does that calculation. OTP-7748 The short-circuit operators andalso and orelse no longer guarantees that their second argument is either true or false. As a consequence, andalso/orelse are now tail-recursive. OTP-7793 The compiler will refuse to a compile file where the module name in the file differs from the output file name. When compiling using erlc, the current working directory will no be included in the code path (unless explicitly added using "-pa ."). OTP-7844 If the generator in a list comprehension is given a non-list term, there will now be function_clause exception instead of a case_clause exception (as it was in all releases before R12B). OTP-7846 There will no longer be any warnings for list comprehensions without generators, as such list comprehension have turned out to be useful. OTP-7850 Warnings for obsolete guard tests are now turned on. (That is, writing list(L) in a guard instead of is_list(L) will generate a warning.) The warnings can be turned off using the nowarn_obsolete_guard option. OTP-7851 The copyright notices have been updated. OTP-7873 If a module contains an exported function with the same name as an auto-imported BIF (such as length/1), any calls to the BIF must have an explicit erlang: prefix, or there will be a compilation error (such calls would only generate a warning in previous releases). (The reason for the change is to avoid breaking code in a future major release, R14 or R15, in which we plan to make calls without a module prefix always call the local function in the same module even if there is an auto-imported BIF with the same name.) --- cosEvent-2.1.5 ------------------------------------------------------------ OTP-7837 Updated file headers. --- cosEventDomain-1.1.5 ------------------------------------------------------------ OTP-7837 Updated file headers. --- cosFileTransfer-1.1.7 ------------------------------------------------------------ OTP-7837 Updated file headers. --- cosNotification-1.1.10 ------------------------------------------------------------ OTP-7837 Updated file headers. --- cosProperty-1.1.8 ------------------------------------------------------------ OTP-7837 Updated file headers. --- cosTime-1.1.5 ------------------------------------------------------------ OTP-7837 Updated file headers. --- cosTransactions-1.2.6 ------------------------------------------------------------ OTP-7837 Updated file headers. --- crypto-1.6 ------------------------------------------------------------ OTP-7674 The dh_compute_key sometimes returned a SharedSecret of incorrect size. OTP-7762 Optimization for drivers by creating small binaries direct on process heap. --- debugger-3.1.1.5 ------------------------------------------------------------ OTP-7750 When running a test which includes all suites in a test directory, if the auto compilation would fail for one suite, all following suites would be excluded from the test. This was an unwanted behaviour and has been corrected. Now all suites will always be compiled and only the failing ones excluded from the test (and logged as missing). OTP-7800 The step functionality in Common Test (based on interaction with Debugger) was broken. This has been fixed, and some new step features have also been added. Please see the Common Test User's Guide for details. OTP-7803 It is now possible for the user to specify include directories that Common Test will pass along to the compiler when suite and help modules are being compiled (which Common Test performs automatically before running tests). --- debugger-3.2 ------------------------------------------------------------ OTP-7366 Added a new gui, start with debugger:start(gs) for old gui. OTP-7673 The undocumented, unsupported, and deprecated guard BIF is_constant/1 has been removed. --- dialyzer-1.9.0 ------------------------------------------------------------ OTP-7864 The analysis accepts opaque type declarations and detects violations of opaqueness of terms of such types. Starting with R13, many Erlang/OTP standard libraries (array, dict, digraph, ets, gb_sets, gb_trees, queue, and sets) contain opaque type declarations of their main data types. Dialyzer will spit out warnings in code that explicitly depends on the structure of these terms. Added support for handling UTF segments in bitstreams and for detecting obvious type errors in these segments. Warning: This code is not terribly tested though since there are very few Erlang programs which use Unicode-based binaries - not surprising since this is a new language feature of R13. Strengthened the discrepancy identification when testing for equality and matching between terms of different types. This detects more bugs in code. Added warning for M:F(...) calls where M is not a module term and F is not an atom. Previously, such calls where found to fail but the reason for the failure was not reported. Added a convenient shorthand for the --no_check_plt option (-n). Added the --dump_callgraph option for dumping the callgraph of all files that are analyzed into a specified file. The callgraph either be dumped in raw format, in .dot format, or converted to a .ps (postscript) file. Note that in large callgraphs the generated postscript file might not be interpretable by Ghostview. (Thanks to Ilya Khlopotov for the initial version of this functionality.) --- docbuilder-0.9.8.5 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- edoc-0.7.6.3 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- erl_interface-3.6 ------------------------------------------------------------ OTP-7826 Nodes belonging to different independent clusters can now co-exist on the same host with the help of a new environment variable setting ERL_EPMD_PORT. --- erts-5.6.5.1 ------------------------------------------------------------ OTP-7641 When chunk reading a disk log opened in read_only mode, bad terms could crash the disk log process. OTP-7665 A corrected bug in ets for bag and duplicate_bag. A delete/2 or lookup_element/3 could miss objects in a fixed table if one or more objects with the same key had already been deleted. OTP-7682 A bug fixed for TCP sockets with option {packet,http}. An HTTP request with an absolute URI was returned with a corrupt path string. This bug did only exist in R12B-4 and R12B-5. OTP-7731 Calling gen_tcp:send() from several processes on socket with option send_timeout could lead to much longer timeout than specified. The solution is a new socket option {send_timeout_close,true} that will do automatic close on timeout. Subsequent calls to send will then immediately fail due to the closed connection. OTP-7738 A process being garbage collected via the garbage_collect/1 BIF or the check_process_code/2 BIF didn't handle message receive and resume correctly during the garbage collect. When this occurred, the process returned to the state it had before the garbage collect instead of entering the new state. --- erts-5.7 ------------------------------------------------------------ OTP-7339 The order of objects visited in select for ordered_set is now documented. OTP-7500 The runtime system with SMP support now uses multiple, scheduler specific run queues, instead of one globally shared run queue. The lock protecting the shared run queue was heavily contended, and the shared run queue also caused Erlang processes to randomly migrate between schedulers with negative cache effects as a result. With the current scheduler specific run queue solution, lock contention due to run queue protection has been reduced, and Erlang processes are only migrated when needed to balance the load between the schedulers. The reduced amount of migration also reduce lock contention on locks protecting the scheduler specific instances of the erts internal memory allocators. The scheduler specific run queues are also a necessity for a lot of future planned NUMA (Non-Uniform Memory Access) specific optimizations. OTP-7609 OpenSource: FreeBSD leap-seconds are handled according to patch submitted by OpenSource user Kenji Rikitake. No test case covers this functionality (unsupported platform). OTP-7648 Support for Unicode is implemented as described in EEP10. Formatting and reading of unicode data both from terminals and files is supported by the io and io_lib modules. Files can be opened in modes with automatic translation to and from different unicode formats. The module 'unicode' contains functions for conversion between external and internal unicode formats and the re module has support for unicode data. There is also language syntax for specifying string and character data beyond the ISO-latin-1 range. The interactive shell will support input and output of unicode characters when the terminal and operating system supports it. Please see the EEP and the io/io_lib manual pages as well as the stdlib users guide for details. I/O-protocol incompatibilities: The io_protocol between io_Server and client is updated to handle protocol data in unicode formats. The updated protocol is now documented. The specification resides in the stdlib users manual, which is a new part of the manual. io module incompatibilities: The io:put_chars, io:get_chars and io:get_line all handle and return unicode data. In the case where binaries can be provided (as to io:put_chars), they shall be encoded in UTF-8. When binaries are returned (as by io:get_line/get_chars when the io_server is set in binary mode) the returned data is also always encoded as UTF-8. The file module however still returns byte-oriented data, why file:read can be used instead of io:get_chars to read binary data in ISO-latin-1. io_lib module incompatibilities: io_lib:format can, given new format directives (i.e "~ts" and "~tc"), return lists containing integers larger than 255. OTP-7649 The format of the string returned by erlang:system_info(system_version) (as well as the first message when Erlang is started) has changed. The string now contains the both the OTP version number as well as the erts version number. OTP-7659 Message passing has been further optimized for parallel execution. Serial message passing is slightly more expensive than before, but parallel send to a common receiver is much cheaper. OTP-7660 Lock contention on the atom table lock when decoding Erlang terms on the external format has been drastically reduced. OTP-7665 A corrected bug in ets for bag and duplicate_bag. A delete/2 or lookup_element/3 could miss objects in a fixed table if one or more objects with the same key had already been deleted. OTP-7670 A new driver call-back stop_select is introduced to allow drivers to de-select and then close a file descriptor in a safe way in a SMP emulator. The old way was not strictly according to posix standard and could in some rare cases lead to unexpected behavior. A new flag ERL_DRV_USE can be passed to driver_select() to tell it that the descriptor should be closed. stop_select is then called when it is safe to do so. Old drivers will however still work as before. OTP-7673 The undocumented, unsupported, and deprecated guard BIF is_constant/1 has been removed. OTP-7682 A bug fixed for TCP sockets with option {packet,http}. An HTTP request with an absolute URI was returned with a corrupt path string. This bug did only exist in R12B-4 and R12B-5. OTP-7688 run_erl did in some cases fail to extract control sequences from to_erl (like: winsize=X,Y) and did instead send them to be interpreted by the erlang shell. OTP-7692 The Erlang process lock implementation has been improved by Mat Hostetter at Tilera Corporation. OTP-7725 A {nodedown, Node} message passed by the net_kernel:monitor_nodes/X functionality is now guaranteed to be sent after Node has been removed from the result returned by erlang:nodes/Y. OTP-7731 Calling gen_tcp:send() from several processes on socket with option send_timeout could lead to much longer timeout than specified. The solution is a new socket option {send_timeout_close,true} that will do automatic close on timeout. Subsequent calls to send will then immediately fail due to the closed connection. OTP-7746 A bug in the installer on Windows not updating file associations properly is now corrected. OTP-7747 More space than necessary could be allocated in binaries when appending to a binary (also in a binary comprehension) and the data appended did not consist of wholes bytes (e.g. 13 bits). OTP-7748 The short-circuit operators andalso and orelse no longer guarantees that their second argument is either true or false. As a consequence, andalso/orelse are now tail-recursive. OTP-7752 A new BIF, lists:keyfind/3, has been added. It works like lists:keysearch/3 except that it does not wrap the returned tuple in a value tuple in case of success. (Thanks to James Hague for suggesting this function.) OTP-7755 The gen_sctp option sctp_peer_addr_params, #sctp_paddrparams{address={IP,Port} was erroneously decoded in the inet driver. This bug has now been corrected. OTP-7762 Optimization for drivers by creating small binaries direct on process heap. OTP-7764 I bsl N could cause the Erlang virtual machine to run of memory instead generating a system_limit if N was absurdly huge. (Thanks to Daniel Hedlund.) There would always be a garbage collection when evaluating I bsl N or I bsr N if I was a bignum. If I is an integer and N a bignum, I bsl N will now cause the correct system_limit exception instead of bad_arith as in earlier releases. If I is an integer and N a bignum, I bsr N will return either 0 or -1 depending on the sign of I instead of causing a bad_arith exception as in earlier releases. OTP-7777 Scheduler threads can now be bound to logical processors on newer Linux and Solaris systems. More systems will be supported in the future. In some cases performance has increased drastically when binding schedulers. Schedulers are not bound by default, though. This since it might cause a performance degradation if multiple programs have bound to processors, e.g. multiple Erlang runtime systems. For more information see the documentation of erlang:system_flag/2. In order to bind scheduler threads the CPU topology need to be known. On some newer Linux and Solaris systems the runtime system automatically detects the CPU topology. If the emulator isn't able to automatically detect the CPU topology, the CPU topology can be defined. For more information see the documentation of erlang:system_flag/2. OTP-7784 Outstanding async driver jobs leaked memory if the issuing port died before the async jobs completed. OTP-7793 The compiler will refuse to a compile file where the module name in the file differs from the output file name. When compiling using erlc, the current working directory will no be included in the code path (unless explicitly added using "-pa ."). OTP-7796 A bug in the dynamic library loading affecting, among others, OpenSolaris is now corrected. (Thanks to Paul Fisher.) OTP-7804 The BIFs atom_to_binary/2, binary_to_atom/2, and binary_to_existing_atom/2 have been added. OTP-7811 The amount of schedulers online can now be changed during operation. The amount of schedulers online defaults to the same amount as available logical processors. For more information see the documentation of erlang:system_flag/2 and erl. OTP-7812 The deprecated functions erlang:fault/1, erlang:fault/2, and file:rawopen/2 have been removed. OTP-7817 run_erl compile errors fixed for FreeBSD OTP-7818 Erts internal dynamically allocated process and port specific data for rarely used data. This is used to reduce memory usage of processes and ports that do not use specific functionality. More functionality will be moved to process and port specific data in future releases. OTP-7821 New packet type http_bin for gen_tcp sockets and erlang:decode_packet. It works like http except that strings are returned as binaries instead of lists. OTP-7822 The obsolete wd_keeper program for embedded Solaris systems has been removed. OTP-7826 Nodes belonging to different independent clusters can now co-exist on the same host with the help of a new environment variable setting ERL_EPMD_PORT. OTP-7841 There are new functions erlang:min/2 and erlang:max/2 to calculate the minimum and maximum of two terms, respectively. Note that the functions are not auto-imported, so they need to be imported explicitly or the erlang prefix must be used when calling them. OTP-7851 The copyright notices have been updated. OTP-7852 Enhanced build environment for cross compilation to Tilera Tile architecture. Support for native ethread atomics on Tilera Tile64/TilePro (Thanks to Tilera Corporation). OTP-7855 The escape sequences \x and \{ have been assigned new interpretations (they used to return the ASCII code for x and { respectively). One or more octal characters inside curly brackets after a leading backslash is from now on an alternative to the existing syntax \NNN, but can also be used for codes greater than 255. In a similar fashion, one or more hexadecimal characters can be put inside curly brackets after a leading \x. Furthermore, the escape sequences \xH and \xHH, where N is a hexadecimal character, can be used for codes less than 256. NOTE: These new escape sequences are still considered experimental and may be changed in the R13B release. OTP-7861 The PCRE library's exported function names are now prefixed with erts_ in the erlang emulator to avoid clashes with dynamically loaded drivers. OTP-7866 A bug in the inet driver for SCTP on Solaris showing for e.g gen_sctp:abort/1 and gen_sctp:eof/1 has been corrected. Patch suggestion by Simon Cornish. OTP-7872 A runtime system with SMP support will now be built by default on most platforms if a usable posix thread library or native windows threads are found. For more information see the top README file. --- et-1.3.1 ------------------------------------------------------------ OTP-7830 Changed copyright --- eunit-2.0.1 ------------------------------------------------------------ OTP-7877 Miscellaneous updates. --- gs-1.5.10 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- hipe-3.7 ------------------------------------------------------------ OTP-7877 Miscellaneous updates. --- ic-4.2.20 ------------------------------------------------------------ OTP-7837 Updated file headers. --- inets-5.0.13 ------------------------------------------------------------ OTP-7463 [httpc] - The inets http client will now use persistent connections without pipelining as default and if a pipeline timeout is set it will pipeline the requests on the persistent connections. OTP-7723 Ssl did not work correctly with the use of new style configuration due to an old internal format that was not changed correctly in all places. OTP-7724 [httpd] - added option ssl_password_callback_arguments. OTP-7726 Changed the socket use so that it will become more robust to non-functional ipv6 and fallback on ipv4. This changes may for very special os-configurations cause a problem when used with erts-versions pre R13. OTP-7815 Removed deprecated function httpd_util:key1search/[2,3] OTP-7857 [httpc] - Now streams 200 and 206 results and not only 200 results. --- jinterface-1.5 ------------------------------------------------------------ OTP-7832 A number of fixes and improvements from the ErlIDE group; Vlad Dumitrescu and Jakob Cederlund: JDK 1.5 is now a minimal requirement for building Jinterface. New method: OtpEpmd.lookupNames. OtpErlangList is now iterable. Non-proper lists are now allowed - you have to test if a list is proper or not. Non-proper lists can also be created. New methods: isProper, getHead, getTail and getNthTail. The get tail methods creates a sublist object that re-uses the original list. OtpErlangPid is now Comparable. Empty atoms can now be constructed, a missing feature pointed out by Sebastien Boisgerault on erlang-questions. --- kernel-2.12.5.1 ------------------------------------------------------------ OTP-7641 When chunk reading a disk log opened in read_only mode, bad terms could crash the disk log process. OTP-7665 A corrected bug in ets for bag and duplicate_bag. A delete/2 or lookup_element/3 could miss objects in a fixed table if one or more objects with the same key had already been deleted. OTP-7682 A bug fixed for TCP sockets with option {packet,http}. An HTTP request with an absolute URI was returned with a corrupt path string. This bug did only exist in R12B-4 and R12B-5. OTP-7731 Calling gen_tcp:send() from several processes on socket with option send_timeout could lead to much longer timeout than specified. The solution is a new socket option {send_timeout_close,true} that will do automatic close on timeout. Subsequent calls to send will then immediately fail due to the closed connection. OTP-7738 A process being garbage collected via the garbage_collect/1 BIF or the check_process_code/2 BIF didn't handle message receive and resume correctly during the garbage collect. When this occurred, the process returned to the state it had before the garbage collect instead of entering the new state. --- kernel-2.13 ------------------------------------------------------------ OTP-6688 Erlang programs can now access STDERR on platforms where such a file descriptor is available by using the io_server 'standard_error', i.e. io:format(standard_error,"~s~n",[ErrorMessage]), OTP-7641 When chunk reading a disk log opened in read_only mode, bad terms could crash the disk log process. OTP-7647 gen_tcp:send() did sometimes (only observed on Solaris) return {error,enotconn} instead of the expected {error,closed} as the peer socket had been explicitly closed. OTP-7649 The format of the string returned by erlang:system_info(system_version) (as well as the first message when Erlang is started) has changed. The string now contains the both the OTP version number as well as the erts version number. OTP-7661 As of this version, the global name server no longer supports nodes running Erlang/OTP R10B. OTP-7725 A {nodedown, Node} message passed by the net_kernel:monitor_nodes/X functionality is now guaranteed to be sent after Node has been removed from the result returned by erlang:nodes/Y. OTP-7731 Calling gen_tcp:send() from several processes on socket with option send_timeout could lead to much longer timeout than specified. The solution is a new socket option {send_timeout_close,true} that will do automatic close on timeout. Subsequent calls to send will then immediately fail due to the closed connection. OTP-7755 The gen_sctp option sctp_peer_addr_params, #sctp_paddrparams{address={IP,Port} was erroneously decoded in the inet driver. This bug has now been corrected. OTP-7812 The deprecated functions erlang:fault/1, erlang:fault/2, and file:rawopen/2 have been removed. OTP-7826 Nodes belonging to different independent clusters can now co-exist on the same host with the help of a new environment variable setting ERL_EPMD_PORT. OTP-7851 The copyright notices have been updated. --- megaco-3.9.2 ------------------------------------------------------------ OTP-7671 The text encoders (v1, v2, v3, ...) all failed to properly encode the DigitMapDescriptor. OTP-7672 The mini decoder some time incorrectly identifies plain text as tokens. --- megaco-3.9.3 ------------------------------------------------------------ Note: Version 3.9.3 supports code replacement in runtime from/to version 3.9.2, 3.9.1.1, 3.9.1, 3.9, 3.8.2, 3.8.1 and 3.8 except when using any of the drivers (flex for text or asn1 for binary). OTP-7700 Memory leak in the flex scanner. There was a memory leak in the flex scanner function for handling Property Parameters. --- megaco-3.9.4 ------------------------------------------------------------ OTP-7728 Improve the error handling of megaco_tcp for received messages. OTP-7733 Segmenting a reply failed (with a badmatch) if the message did not actually need to be segmented (e.g. was withing the size limit, max_pdu_size). --- megaco-3.10 ------------------------------------------------------------ OTP-7713 Added new API function megaco:connect/5 and the corresponding new megaco_user callback function megaco_user:handle_connect/3. The purpose of this is to be able to pass information to the megaco_user:handle_connect/3 function by calling the megaco:connect/5 function. OTP-7743 Update file headers with new copyright notice. --- megaco-3.10.0.1 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- mnesia-4.4.8 ------------------------------------------------------------ OTP-7753 With bad timing several api functions could return or exit with a bad error message when mnesia was shutting down. OTP-7835 mnesia:clear_table/1 cleared all nodes table content even if the table was local_content only type. --- observer-0.9.8 ------------------------------------------------------------ OTP-7519 etop would crash if the emulator's custom allocators had been turned off (e.g. using the +Meamin option). OTP-7851 The copyright notices have been updated. --- odbc-2.10.4 ------------------------------------------------------------ OTP-7720 param_query now handles the in_or_out parameter correctly. OTP-7721 Changed the internal socket use so that it will become more robust to non-functional ipv6 and fallback on ipv4. --- orber-3.6.11 ------------------------------------------------------------ OTP-7837 Updated file headers. --- os_mon-2.2 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- otp_mibs-1.0.5 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- parsetools-1.4.6 ------------------------------------------------------------ OTP-7798 Updated file headers. --- percept-0.8 ------------------------------------------------------------ OTP-7693 A problem with options list to percept causing some options to be disregarded unintentionally. This has now been fixed. An error in percept_analyzer caused calculation of standard deviation to be incorrect. This has now been corrected. OTP-7696 Updated css for percept server for enhanced viewing. Increased performance of egd render. Several graph errors could occur when compacting data to decrease graph rendering time causing incorrect scalability numbers. These errors have now been fixed. Increased viewing width for graphs. The viewing width is now dependent on client screen resolution. --- pman-2.7 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- public_key-0.2 ------------------------------------------------------------ OTP-7860 X509 certificate handling has been extended and improved as a result of more extensive testing of both the ssl and public_key application. Even more extensions of the certificate handling is yet to be implemented. --- reltool-0.2 ------------------------------------------------------------ OTP-7805 This is the first release of Reltool. The functionality in this first release is experimental and rather limited. Reltool is a release management tool. It analyses a given Erlang/OTP installation and determines various dependencies between applications. The graphical frontend depicts the dependencies and enables interactive customization of a target system. The backend provides a batch interface for generation of customized target systems. --- runtime_tools-1.8 ------------------------------------------------------------ OTP-7519 etop would crash if the emulator's custom allocators had been turned off (e.g. using the +Meamin option). OTP-7851 The copyright notices have been updated. OTP-7867 Now, dbg:p/2 accepts {X,Y,Z} process specification as stated in the documentation. It also now accepts "" like from erlang:pid_to_list/1. There is now a pre-saved match spec in dbg that saves a lot of typing. Use dbg:ltp/0 to find out more... --- sasl-2.1.6 ------------------------------------------------------------ OTP-7667 When using the SASL application configuration parameter masters the error tuple {error,{no_such_file,{Master,FileName}}} was sometimes returned even though the file FileName existed. OTP-7820 Missing preloaded modules added --- snmp-4.12.1 ------------------------------------------------------------ OTP-7695 Logging of messages with the GetBulk-request PDU incorrectly produced an erroneous entry in the log: "An error occured". The reason for this was that the PDU-fields error_status and error_index is re-used for Non-repeaters and Max-repetitions for GetBulk-request PDUs, but this was not handled by the logging code. OTP-7698 An attempt to set the row status to active for an notReady table row, could result in an "inconsistentValue" error. The same problem existed when attempting to set row status to notInService for a row in notReady. --- snmp-4.13 ------------------------------------------------------------ OTP-7571 [agent] A proper discover procedure has been implemented. OTP-7735 Unnecessary use of math:pow/2 could cause problems on systems without floating point support. OTP-7836 [manager] A major flaw was discovered with the agent handling. First, TargetName was never used as intended, as a unique identifier for the target (agent in this case). Second, TargetName had a *default value*, which meant that several agents could have the same TargetName, causing unpredictable behaviour in the manager. Third, EngineID was not a mandatory config option and had furthermore also a *default value*. These problems has been solved in the following way: First, a new set of api functions has been introduced (and documented): snmpm:register_user/4, snmpm:register_user_monitor/4, snmpm:register_agent/3, snmpm:unregister_agent/2, snmpm:agent_info/2, snmpm:update_agent_info/4, snmpm:sync_get/3,4,5,6, snmpm:async_get/3,4,5,6, snmpm:sync_get_next/3,4,5,6, snmpm:async_get_next/3,4,5,6, snmpm:sync_set/3,4,5,6, snmpm:async_set/3,4,5,6, snmpm:sync_get_bulk/5,6,7,8, snmpm:async_get_bulk/5,6,7,8 that all use TargetName (and not, as previously, Addr and Port) to identify the agent (also snmpm:which_agents/0 has been changed). Second, for backward compatibility, the old functions still exist, but are no longer documented and are now wrappers for the new functions, including erroneous default value for EngineID and all. The TargetName is however generated from the Addr, Port and Version provided in the config options. Third, the behaviour of the SNMP manager user (snmpm_user) has been changed to reflect this, i.e. handle_pdu/4, handle_trap/3, handle_inform/3 and handle_report/3. Also the the return-value of handle_agent/4. The old (non-documented) callback-functions (using Addr and Port) will still be called if the agent was registered using the old registration functions. --- ssh-1.1 ------------------------------------------------------------ OTP-6400 Public keys protected by a password are currently not handled by the erlang ssh application. OTP-7456 Added new API function ssh:connection_info/2. OTP-7516 Now starts ssh channel processes later avoiding synchronization problems between processes. OTP-7645 Ssh now rejects old versions of the ssh protocol for security reasons. (Even if they where not correctly rejected before the connection would probably have failed anyway due to other reasons.) OTP-7676 A flaw in the implementation of the supervison tree caused the ssh deamon to close the connections to all currently logged in users if one user logged out. Another problem related to the supervison tree caused the closing down of clients to leak processes e.i. all processes was not shutdown correctly. OTP-7683 Tabs could cause ssh_cli to print things in a surprising way. OTP-7685 [sftp, sftpd] - Added patch to make sftp timestamps more correct, in the long run it would be nice to have better support in file to be able to make it always behave correctly now it will be correct 99 % of time instead of almost never correct, at least on unix-based platforms. OTP-7766 [sftpd] - Added patch to further improve handling of symbolic links in the sftp-server. OTP-7767 Ssh incorrectly sent the local id instead of the remote id of a channel to the peer. For simpler cases these ids often happen to have the same value. One case when they do not is when the client sends an exec command two times in a raw on the same ssh connection (different channels of course as the channel will be closed when the exec command has been evaluated) . OTP-7768 Packet data could be lost under high load due to the fact that buffered data was sometimes wrongly discarded before it had been sent. OTP-7769 New API module ssh_channel has been added. This is a behaviour to facilitate the implementation of ssh clients and plug in subsystems to the ssh daemon. Note that this slightly changes the options to the API function ssh:daemon/[1,2,3] deprecating all no longer documented options. Note that the new API enforces the "logical way" of using the old API e.i. making the subsystem process part of the ssh applications supervisor tree, so missuses of the old API are not compatible with the new API. OTP-7770 Improved ipv6-handling as some assumptions about inet functions where incorrect. --- ssh-1.1.1 ------------------------------------------------------------ OTP-7795 The erlang ssh server has presented itself incorrectly, using the special version ssh-1.99, although it never has supported versions below 2.0. Since ssh-1.1 client versions below 2.0 are correctly rejected instead of letting the server crash later on. Alas the problem with the presentation string was not discovered until after ssh.1.1 was released. Now the server will present itself as ssh-2.0. OTP-7807 Ssh timeouts will now behave as expected e.i. defaults to infinity only the user of the ssh application can know of a reasonable timeout value for their application. OTP-7808 The implementation of timeouts added as a patch in ssh-1.0.1 was slightly changed and is now documented. OTP-7809 To honor the multiplexing of channels over one ssh connection concept ssh_sftp:connect/ [1,2,3] is deprecated and replaced by ssh_sftp:start_channel/[1,2,3] and ssh_sftp:stop/1 is deprecated and replaced by ssh_sftp:stop_channel/1 and to stop the ssh connection ssh:close/ 1 should be called. OTP-7828 Added the message {ssh_channel_up, ChannelId, ConnectionManager} that shall be handled by the channel callback handle_msg/2. This makes the function handle_msg/2 a mandatory function for ssh channels implementations which it was not in ssh-1.1. --- ssl-3.10.1 ------------------------------------------------------------ OTP-7656 The cacertsfile option is now optional for ssl servers. OTP-7870 For the ssl client the options cacertfile, certfile and keyfile are now optional as they are not always needed depending on configuration of the client itself and the configuration of the server. Also as PEM-files may contain more than one entry the keyfile option will default to the same file as given by the certfile option. OTP-7871 Added new ssl client option verify_fun. OTP-7878 Fixed bug that caused the ssl handshake finished message to be calculated wrongly under the circumstances that the server did not send the trusted cert and that the previous cert did not have the extension telling us the trusted certs name. This manifested it self as bad_record_mac alert from the server. --- stdlib-1.16 ------------------------------------------------------------ OTP-7230 The functions lists:seq/1,2 return the empty list in a few cases when they used to generate an exception, for example lists:seq(1, 0). See lists(3) for details. (Thanks to Richard O'Keefe.) OTP-7339 The order of objects visited in select for ordered_set is now documented. OTP-7626 It is now possible to debug code in escripts and archives. OTP-7648 Support for Unicode is implemented as described in EEP10. Formatting and reading of unicode data both from terminals and files is supported by the io and io_lib modules. Files can be opened in modes with automatic translation to and from different unicode formats. The module 'unicode' contains functions for conversion between external and internal unicode formats and the re module has support for unicode data. There is also language syntax for specifying string and character data beyond the ISO-latin-1 range. The interactive shell will support input and output of unicode characters when the terminal and operating system supports it. Please see the EEP and the io/io_lib manual pages as well as the stdlib users guide for details. I/O-protocol incompatibilities: The io_protocol between io_Server and client is updated to handle protocol data in unicode formats. The updated protocol is now documented. The specification resides in the stdlib users manual, which is a new part of the manual. io module incompatibilities: The io:put_chars, io:get_chars and io:get_line all handle and return unicode data. In the case where binaries can be provided (as to io:put_chars), they shall be encoded in UTF-8. When binaries are returned (as by io:get_line/get_chars when the io_server is set in binary mode) the returned data is also always encoded as UTF-8. The file module however still returns byte-oriented data, why file:read can be used instead of io:get_chars to read binary data in ISO-latin-1. io_lib module incompatibilities: io_lib:format can, given new format directives (i.e "~ts" and "~tc"), return lists containing integers larger than 255. OTP-7653 The function pool:attach/1 now returns already_attached if the node is already attached, rather than allready_attached (sic!). (Thanks to Edwin Fine.) OTP-7662 Preprocessor directives are now allowed in escripts. This means that for example macros may be used in escripts. OTP-7669 Fixed a minor race conditions in gen_server:start*: if one of these functions returned {error,Reason} or ignore, the name could still be registered (either locally or in global). A process started by proc_lib in some cases depended on its process dictionary not to be erased, and would crash when terminating abnormally and not generate a proper crash report. This has been corrected (but the initial call will not be shown in the error report if the process dictionary has been erased). NOTE: There is no longer any need to erase the process dictionary for memory conservation reasons, since the actual call arguments are no longer saved in the process dictionary. OTP-7702 The Erlang preprocessor used wrong line number when stringifying macro arguments. (Thanks to John Hughes.) OTP-7740 When a process started with proc_lib, gen_server, or gen_fsm exits with reason {shutdown,Term}, a crash report will no longer be generated (to allow a clean shutdown, but still provide additional information to process that are linked to the terminating process). OTP-7752 A new BIF, lists:keyfind/3, has been added. It works like lists:keysearch/3 except that it does not wrap the returned tuple in a value tuple in case of success. (Thanks to James Hague for suggesting this function.) OTP-7797 lists:suffix(Suffix, List) used to have a a complexity of length(Suffix)*length(List) (which could become quite slow for some inputs). It has now been re-implemented so that its complexity is length(Suffix)+length(List). (Thanks to Richard O'Keefe for the new implementation.) OTP-7810 The Erlang scanner has been augmented as to return white spaces, comments, and exact location of tokens. The functions string/3, tokens/4, and token_info/1,2 are new. See erl_scan(3) for details. tokens/3,4 have been modified as to return a list of tokens instead of an error when eof is encountered before the dot. OTP-7819 filelib:fold_files/5 now uses the re module instead of the regexp module for regular expression matching. In practice, this change will not be a problem for most regular expressions used for filelib:fold_files/5. (The major difference in regular expression is that parenthesis and curly brackets is treated as literal characters by regexp but as special characters by re; fortunately, those characters are rarely used in filenames.) OTP-7824 digraph:new(Type) will now cause a badarg exception if Type is not a valid type. Similarly, digraph_utils:subgraph/2,3 will now cause a badarg if the arguments are invalid. (Those functions used to return error tuples if something was wrong.) OTP-7827 The argument passed to random:uniform/1 must now be an integer (as stated in the documentation). In previous releases, a floating point number was also allowed. OTP-7851 The copyright notices have been updated. OTP-7865 A few missing match spec functions was added to dbg:fun2ms; exception_trace/0 and trace/2,3. There is a new function queue:member/2. A bug in io_lib:fread that made it accidentally concatenate fields separated by newline has been corrected. Reported and analyzed by Matthew Palmer to erlang-patches. --- syntax_tools-1.6 ------------------------------------------------------------ OTP-7877 Miscellaneous updates. --- test_server-3.2.4.1 ------------------------------------------------------------ OTP-7750 When running a test which includes all suites in a test directory, if the auto compilation would fail for one suite, all following suites would be excluded from the test. This was an unwanted behaviour and has been corrected. Now all suites will always be compiled and only the failing ones excluded from the test (and logged as missing). OTP-7800 The step functionality in Common Test (based on interaction with Debugger) was broken. This has been fixed, and some new step features have also been added. Please see the Common Test User's Guide for details. OTP-7803 It is now possible for the user to specify include directories that Common Test will pass along to the compiler when suite and help modules are being compiled (which Common Test performs automatically before running tests). --- test_server-3.3 ------------------------------------------------------------ OTP-7511 The conf case in Test Server has been extended with properties that make it possible to execute test cases in parallel, in sequence and in shuffled order. It is now also possible to repeat test cases according to different criteria. The properties can be combined, making it possible to e.g. repeat a conf case a certain number of times and execute the test cases in different (random) order every time. The properties are specified in a list in the conf case definition: {conf, Properties, InitCase, TestCases, EndCase}. The available properties are: parallel, sequence, shuffle, repeat, repeat_until_all_ok, repeat_until_any_ok, repeat_until_any_fail, repeat_until_all_fail. OTP-7699 The test server starts Cover on nodes of the same version as the test server itself only. OTP-7856 The Erlang mode for Emacs has been updated with new and modified skeletons for Common Test and TS. Syntax for test case groups in Common Test (and conf cases with properties in TS) has been added and a new minimal Common Test suite skeleton has been introduced. --- toolbar-1.4 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- tools-2.6.3 ------------------------------------------------------------ OTP-7831 xref:start/1 does now allow anonymous XREF processes to be started OTP-7851 The copyright notices have been updated. OTP-7856 The Erlang mode for Emacs has been updated with new and modified skeletons for Common Test and TS. Syntax for test case groups in Common Test (and conf cases with properties in TS) has been added and a new minimal Common Test suite skeleton has been introduced. --- tv-2.1.4.3 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- typer-0.1.6 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- webtool-0.8.4 ------------------------------------------------------------ OTP-7851 The copyright notices have been updated. --- wx-0.98 ------------------------------------------------------------ OTP-7859 A first beta release of wxErlang. --- xmerl-1.1.12 ------------------------------------------------------------ OTP-7847 Updated copyright notice in source files