Bug fix release : otp_src_R14B02 Build date : 2011-03-14 This is R14B02, the second maintenance release for the R14B major release. You can find the README file for the release at http://www.erlang.org/download/otp_src_R14B02.readme (this file) The source distribution and binary distribution for Windows can be downloaded from http://www.erlang.org/download/otp_src_R14B02.tar.gz http://www.erlang.org/download/otp_win32_R14B02.exe The distribution can also be downloaded using the BitTorrent protocol. Use the following torrent files to download the source distribution and binary distribution for Windows: http://www.erlang.org/download/otp_src_R14B02.tar.gz.torrent http://www.erlang.org/download/otp_win32_R14B02.exe.torrent Note: To unpack the TAR archive you need a GNU TAR compatible program. For installation instructions please read the README file that is part of the distribution. The on-line documentation can be found at: http://www.erlang.org/doc/ You can also download the complete HTML documentation or the Unix manual files http://www.erlang.org/download/otp_doc_html_R14B02.tar.gz http://www.erlang.org/download/otp_doc_man_R14B02.tar.gz We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- HIGHLIGHTS ---------------------------------------------------------- OTP-8525 == edoc == It is now possible to use Erlang specifications and types in EDoc documentation. Erlang specifications and types will be used unless there is also a function specification (@spec) or a type alias (@type) with the same name. In the current implementation the placement of -spec matters: it should be placed where the @spec would otherwise have been placed. Not all Erlang types are included in the documentation, but only those exported by some export_type declaration or used by some documented Erlang specification (-spec). There is currently no support for overloaded Erlang specifications. The syntax definitions of EDoc have been augmented to cope with most of the Erlang types. (But we recommend that Erlang types should be used instead.) edoc:read_source() takes one new option, report_missing_types. edoc_layout:module() takes one new option, pretty_printer. OTP-8768 == otp == All tests in Erlang/OTP have been converted to be run with Common Test as the backend instead of Test Server. The ts wrapper can still be used as before, but it is not also possible to run the tests directly from Common Test using ct_run or similar commands. OTP-8941 == erts == From this release, the previously experimental halfword emulator is now official. It can be enabled by giving the --enable-halfword-emulator option to the configure script. The halfword emulator is a 64-bit application, but uses halfwords (32-bit words) for all data in Erlang processes, therefore using less memory and being faster than the standard 64-bit emulator. The total size of all BEAM code and all process data for all processes is limited to 4Gb, but ETS tables and off-heap binaries are only limited by the amount of available memory. OTP-9065 == erts compiler == Dependency generation for Makefiles has been added to the compiler and erlc. See the manual pages for compile and erlc. (Thanks to Jean-Sebastien Pedron.) --- otp ----------------------------------------------------------------- OTP-8768 All tests in Erlang/OTP have been converted to be run with Common Test as the backend instead of Test Server. The ts wrapper can still be used as before, but it is not also possible to run the tests directly from Common Test using ct_run or similar commands. OTP-9073 Subsections below level 2 were not handled correct when generating html and pdf. OTP-9121 Update Handling Other Messages section in gen_server, gen_fsm, gen_events overviews (thanks to Gabor Liptak) --- asn1-1.6.16 --------------------------------------------------------- OTP-9062 asn1ct: Make formatting of errors and warnings consistent Consistently format warning and error reports. Warning and error options from erlc now also work in asnc1ct. (thanks to Tuncer Ayaz) OTP-9063 Shut off some dialyzer warnings OTP-9092 Crash in asn1ct_check, componentrelation_leadingattr fixed. (Thanks to Stephane Pamelard for finding the bug) --- common_test-1.5.3 --------------------------------------------------- OTP-8851 Alpha release of Common Test Hooks (CTH). CTHs allow the users of common test to abtract out common behaviours from test suites in a much more elegant and flexible way than was possible before. Note that the addition of this feature may introduce minor changes in the undocumented behaviour of the interface inbetween common_test and test_server. OTP-9026 Added an option to test specs which allow the execution of tests as is, instead of doing merging of tests on the same "level". See the merge_tests directive the test specification documentation. --- compiler-4.7.3 ------------------------------------------------------ OTP-8998 The -export_type() directive is no longer included among the attributes. OTP-9049 The maximum number of allowed arguments for an Erlang function has been lowered from 256 to 255, so that the number of arguments can now fit in a byte. OTP-9065 Dependency generation for Makefiles has been added to the compiler and erlc. See the manual pages for compile and erlc. (Thanks to Jean-Sebastien Pedron.) --- cosEvent-2.1.10 ----------------------------------------------------- OTP-9050 Eliminated Dialyzer warnings when using exit or throw. --- cosEventDomain-1.1.10 ----------------------------------------------- OTP-9050 Eliminated Dialyzer warnings when using exit or throw. --- cosNotification-1.1.16 ---------------------------------------------- OTP-9050 Eliminated Dialyzer warnings when using exit or throw. --- cosProperty-1.1.13 -------------------------------------------------- OTP-9050 Eliminated Dialyzer warnings when using exit or throw. --- cosTime-1.1.10 ------------------------------------------------------ OTP-9050 Eliminated Dialyzer warnings when using exit or throw. --- crypto-2.0.2.1 ------------------------------------------------------ OTP-9132 Misc. Updates. --- debugger-3.2.6 ------------------------------------------------------ OTP-9107 Fix issues reported by dialyzer. --- dialyzer-2.4.2 ------------------------------------------------------ OTP-9098 Add a --fullpath option to Dialyzer This change adds a --fullpath option to Dialyzer, which makes the warning messages contain the full path of the corresponding file. Original patch submitted by Magnus Henoch (legoscia) on 15/9/2010 and cooked to death in the 'pu' branch all this time. The patch was essentially correct and most of it has been used as is, but there have been some changes to make the code slightly prettier, avoid some code duplication, and add documentation to dialyzer's doc files and to its help message. OTP-9099 Fix warnings about guards containing not The wording of warnings about unsatisfiable guards that used 'not' was incorrect (the 'not' was not mentioned and it appeared as "Guard test is_atom(atom()) can never succeed") (thanks to Stavros Aronis). OTP-9116 Test suites for Dialyzer This is a transcription of most of the cvs.srv.it.uu.se:/hipe repository dialyzer_tests into test suites that use the test server framework. See README for information on how to use the included scripts for modifications and updates. When testing Dialyzer it's important that several OTP modules are included in the plt. The suites takes care of that too. OTP-9126 Version 2.4.2 (in Erlang/OTP R14B02) ------------------------------------ - Added --fullpath option to display files with warnings with their full file names (thanks to Magnus Henoch for the original patch). - Better handling of 'and'/'or'/'not' guards that generate warnings (thanks to Stavros Aronis). - Better blame assignment for cases when a function's spec is erroneous (thanks to Stavros Aronis). - More descriptive warnings when a tuple/record pattern contains subterms that violate the declared types of record fields (thanks to Matthias Lang for the test case and for Stavros Aronis for the actual fix). OTP-9129 Add spec to dialyzer_cl_parse:get_lib_dir/1 --- edoc-0.7.7 ---------------------------------------------------------- OTP-8525 It is now possible to use Erlang specifications and types in EDoc documentation. Erlang specifications and types will be used unless there is also a function specification (@spec) or a type alias (@type) with the same name. In the current implementation the placement of -spec matters: it should be placed where the @spec would otherwise have been placed. Not all Erlang types are included in the documentation, but only those exported by some export_type declaration or used by some documented Erlang specification (-spec). There is currently no support for overloaded Erlang specifications. The syntax definitions of EDoc have been augmented to cope with most of the Erlang types. (But we recommend that Erlang types should be used instead.) edoc:read_source() takes one new option, report_missing_types. edoc_layout:module() takes one new option, pretty_printer. OTP-9109 Add encoding when parsing Wiki text. EDoc used to fail on strings such as "äåö". (Thanks to Richard Carlsson.) OTP-9110 The edoc_lib module is meant to be private, but since it is referred to from other man pages it has been included in the OTP documentation. The modifications introduced in this ticket make all functions private except those referred to from other pages. --- erl_docgen-0.2.4 ---------------------------------------------------- OTP-8975 An unnecessary include directive has been removed. OTP-9073 Subsections below level 2 were not handled correct when generating html and pdf. --- erl_interface-3.7.3 ------------------------------------------------- OTP-8993 Some malformed distribution messages could cause VM to crash, this is now corrected. OTP-9015 Fix global registration. C node needed DFLAG_DIST_MONITOR_FLAT set when connecting. Fix list compare in erl_compare_ext to return correct result. (Thanks to Vitaliy Batichko and Evgeny Khirin) OTP-9071 Strengthen string copy check (Thanks to Michael Santos). OTP-9072 Strengthen atom length check when decoding atoms (Thanks to Michael Santos). --- erts-5.8.3 ---------------------------------------------------------- OTP-8941 From this release, the previously experimental halfword emulator is now official. It can be enabled by giving the --enable-halfword-emulator option to the configure script. The halfword emulator is a 64-bit application, but uses halfwords (32-bit words) for all data in Erlang processes, therefore using less memory and being faster than the standard 64-bit emulator. The total size of all BEAM code and all process data for all processes is limited to 4Gb, but ETS tables and off-heap binaries are only limited by the amount of available memory. OTP-8974 32-bit atomic memory operations have been introduced internally in the run time system, and are now used where appropriate. There were previously only atomic memory operations of word size available. The 32-bit atomic memory operations slightly reduce memory consumption, and slightly improve performance on 64-bit runtime systems. OTP-8985 The scroll wheel now scrolls the werl window on Windows. OTP-8990 Performance enhancements for looking up timer-entries and removing timers from the wheel. OTP-8993 Some malformed distribution messages could cause VM to crash, this is now corrected. OTP-8996 The OS function getifaddrs() can return NULL in some address fields for e.g PPP and tunnel devices which caused the emulator to segfault. This bug has now been corrected. OTP-8997 The expression <> would always produce an empty binary, even if A was not an integer. Corrected to cause a badarg exception if the type of A is invalid. (Thanks to Zvi.) OTP-8999 A bug that potentially could cause an emulator crash when deleting an ETS-table has been fixed. A resource leak when hitting the maximum amount of ETS-tables allowed has also been fixed. OTP-9000 Write accesses to ETS tables have been optimized by reducing the amount of atomic memory operations needed during a write access. OTP-9005 A bug in the exit/2 BIF could potentially cause an emulator crash. OTP-9009 Due to a bug in glibc the runtime system could abort while trying to destroy a mutex. The runtime system will now issue a warning instead of aborting. OTP-9024 A bug in epmd could create strange behaviour when listen() calls failed. This is now corrected thanks to Steve Vinoski. OTP-9025 Strange C coding in the VM made the -D_FORTIFY_SOURCE option to gcc-4.5 react badly. The code is now cleaned up so that it's accepted by gcc-4.5. OTP-9030 The memory footprint for loaded code has been somewhat reduced (especially in the 64-bit BEAM machine). OTP-9046 When setting file_info the win32_driver will now correctly set access and modified time. Previously these entities were swapped. OTP-9049 The maximum number of allowed arguments for an Erlang function has been lowered from 256 to 255, so that the number of arguments can now fit in a byte. OTP-9056 Setting scheduler bind type to unbound failed if binding of schedulers wasn't supported, or if CPU topology wasn't present. This even though the documentation stated that it is possible to set the bind type to unbound. OTP-9057 Two problems were fixed in crash dump: The time left for timers are now shown as unsigned integers and the contents of ordered_set ETS tables is no longer included. OTP-9065 Dependency generation for Makefiles has been added to the compiler and erlc. See the manual pages for compile and erlc. (Thanks to Jean-Sebastien Pedron.) OTP-9069 The VM could fail to set IP_TOS and SO_PRIORITY in certain situations, either because sockets were supplied as open file descriptors, or because SO_PRIORITY by default was set higher than the user can explicitly set it to. Those situations are now handled. OTP-9081 Wx on MacOS X generated complains on stderr about certain cocoa functions not beeing called from the "Main thread". This is now corrected. OTP-9085 Fix a couple typos in driver_entry(3) (thanks to Tuncer Ayaz). OTP-9086 Mention that "-detached" implies "-noinput" Clarify that specifying "-noinput" is unnecessary if the "-detached" flag is given. (thanks to Holger Weiß) OTP-9095 A potential problem (found by code inspection) when calling a fun whose code was not loaded has been fixed. OTP-9105 The emulator could get into a state where it didn't check for I/O. OTP-9117 Attempting to create binaries exceeding 2Gb (using for example term_to_binary/1) would crash the emulator with an attempt to allocate huge amounts of memory. (Thanks to Jon Meredith.) OTP-9125 Fix erlang:hibernate/3 on HiPE enabled emulator (Thanks to Paul Guyot) --- hipe-3.7.8.1 -------------------------------------------------------- OTP-9008 Several type specifications for standard libraries were wrong in the R14B01 release. This is now corrected. The corrections concern types in re,io,filename and the module erlang itself. --- hipe-3.7.9 ---------------------------------------------------------- OTP-9036 Fix erroneous fail info of a hipe_bs_primop OTP-9044 The change fixes a bug in the translation of 'bs_add' BEAM instruction to HiPE's Icode representation. When these instructions appeared in a guard context the previous translation was obviously buggy. OTP-9100 Sanitize the specs of the code module After the addition of unicode_binary() to the file:filename() type, dialyzer started complaining about erroneous or incomplete specs in some functions of the 'code' module. The culprit was hard-coded information in erl_bif_types for functions of this module, which were not updated. Since these functions have proper specs these days and code duplication (pun intended) is never a good idea, their type information was removed from erl_bif_types. While doing this, some erroneous comments were fixed in the code module and also made sure that the code now runs without dialyzer warnings even when the -Wunmatched_returns option is used. Some cleanups were applied to erl_bif_types too. OTP-9101 Fix bug in the simplification of inexact comparisons On 31/1/2011 Paul Guyot reported a bug in the native code compilation of inexact equality/inequality tests between floats and integers. The relevant test was: f(X) -> Y = X / 2, Y == 0. and hipe erroneously evaluated the calls f(0) and f(0.0) to 'false'. The culprit was in the simplification code of the Icode range analysis which used an erroneous test (lists:any/1 instead of lists:all/1). OTP-9102 Document exiting and garbage_collecting process statuses OTP-9128 Remove hipe constants pool Hipe constants used to be allocated within a single, fixed-size pool for interaction with the garbage collector. However, the garbage collector no longer depends on constants being allocated within a single pool, and the fixed size of the pool both meant unnecessary allocations on most deployments and crashes on deployments requiring more constants. The code was simplified to directly invoke erts_alloc. Debugging and undocumented function hipe_bifs:show_literals/0 was removed (it returned true and output text to the console), and debugging and undocumented function hipe_bifs:constants_size/0 was rewritten with a global to count the size of allocated constants. --- ic-4.2.26 ----------------------------------------------------------- OTP-8868 Partial support for recursive structs and unions. Only available for the erl_corba backend and requires that Light IFR is used. I.e. the IC option {light_ifr, true} and that Orber is configured in such a way that Light IFR is activated. Recursive TypeCode is currently not supported. OTP-8994 The SSL option {ssl_imp, old} was not used if ssl_generation was set to 2. Only R14B was affected by this. --- inets-5.5.2 --------------------------------------------------------- OTP-8988 [httpd] Now installs external header files properly in the include directory. OTP-9089 inets/httpc: Polish documentation * Assure store_cookies (and verify_cookies) is documented instead of the nonexistent store_cookie and verify_cookie. * Make sure the cookies option is not called cookie in comments. * Sprinkle ... arround symbols and code snippets in text. * Grammar, wording, and punctuation fixes. OTP-9090 Grammar and typo fixes for the httpc module documentation (thanks to Filipe David Manana). OTP-9091 httpd_response:send_chunk handles empty list and empty binary - i.e. no chunk is sent, but it does not handle a list with an empty binary [<<>>]. This will be sent as an empty chunk - which in turn will be encoded by http_chunk to the same as a final chunk, which will make the http client believe that the end of the page is reached. --- jinterface-1.5.4 ---------------------------------------------------- OTP-8993 Some malformed distribution messages could cause VM to crash, this is now corrected. --- kernel-2.14.3 ------------------------------------------------------- OTP-8983 os:find_executable/{1,2} will no longer return the path of a directory that happens to be in the PATH. OTP-9067 Fix -spec for file:write_file/3 Change type for second parameter from binary() to iodata(), since the function explicitly takes steps to accept lists as well as binaries. (thanks to Magnus Henoch). OTP-9100 Sanitize the specs of the code module After the addition of unicode_binary() to the file:filename() type, dialyzer started complaining about erroneous or incomplete specs in some functions of the 'code' module. The culprit was hard-coded information in erl_bif_types for functions of this module, which were not updated. Since these functions have proper specs these days and code duplication (pun intended) is never a good idea, their type information was removed from erl_bif_types. While doing this, some erroneous comments were fixed in the code module and also made sure that the code now runs without dialyzer warnings even when the -Wunmatched_returns option is used. Some cleanups were applied to erl_bif_types too. OTP-9127 - Add spec for function that does not return - Strenghen spec - Introduce types to avoid duplication in specs - Add specs for functions that do not return - Add specs for behaviour callbacks - Simplify two specs --- megaco-3.15.1 ------------------------------------------------------- OTP-9075 Fixing miscellaneous things detected by dialyzer. --- mnesia-4.4.17 ------------------------------------------------------- OTP-9107 Fix issues reported by dialyzer. OTP-9108 Calling mnesia:first/1 on empty fragmented table works. Thanks Magnus Henoch. OTP-9115 If Mnesia detects that the network is not fully connected during start, Mnesia will not start until all nodes are reachable. --- observer-0.9.9 ------------------------------------------------------ OTP-9051 The time needed for loading a crashump into the crashdump viewer would earlier grow exponentially with the size of the crashdump file. Reading a file of 20M would take a couple of minutes, and for a dump of 250M it would take between 1 and 2 hours. This has been solved. Earlier, all processes, timers, funs or ets-tables would be loaded into the memory of the crashdump viewer node before sending it on to the web server. This has been changed and the pages are now sent to the web server in chunks. A security function in newer web browsers prevents a full file path to be sent from an HTML file input field, i.e. the field needed to implement the "Browse" button when loading a file into the crashdump viewer. To overcome this, the file input field is no longer used. Instead a normal text input field is used, and the user needs to manually insert the complete file path. For convenience, a shell script and a batch file are added to the observer application. These can be used to start the crashdump_viewer and a browser and load a file - with the file name given from the command line. The shell script and batch file are called cdv and cdv.bat respectively, and can be found in the priv dir of the observer application. --- odbc-2.10.10 -------------------------------------------------------- OTP-9111 Better error messages for connection issues. --- orber-3.6.19 -------------------------------------------------------- OTP-8868 Partial support for recursive structs and unions. Only available for the erl_corba backend and requires that Light IFR is used. I.e. the IC option {light_ifr, true} and that Orber is configured in such a way that Light IFR is activated. Recursive TypeCode is currently not supported. OTP-8994 The SSL option {ssl_imp, old} was not used if ssl_generation was set to 2. Only R14B was affected by this. --- orber-3.6.20 -------------------------------------------------------- OTP-9035 More tests added so that Orber does not try to run IPv6 tests on a machine than cannot handle that. This only affect test code and not the application. OTP-9050 Eliminated Dialyzer warnings when using exit or throw. --- percept-0.8.5 ------------------------------------------------------- OTP-9012 Fixes a race condition found in percept_db start/1 function. (Thanks to Ahmed Omar) --- public_key-0.11 ----------------------------------------------------- OTP-9061 Allows the public_key module to decode and encode RSA and DSA keys encoded using the SubjectPublicKeyInfo format. When pem_entry_encode is called on an RSA or DSA public key type, the key is wrapped in the SubjectPublicKeyInfo format. --- reltool-0.5.5 ------------------------------------------------------- OTP-9120 The reltool module contained two seriously erroneous specs which caused bogus warnings when dialyzing reltool and some correct code of users. These were fixed (specs for start_link/1 and eval_server/3) - Code cleanups and simplifications - Fix a bug in the calculation of circular dependencies - Eliminate two dialyzer warnings - Put files alphabetically --- runtime_tools-1.8.5 ------------------------------------------------- OTP-9048 When a big number of trace patterns are set by inviso the Erlang VM could get unresponsive for several seconds. This is now corrected. --- sasl-2.1.9.3 -------------------------------------------------------- OTP-9097 Honor start type in .rel files when building relup files Previously, relup file always included an application:start(Application, permanent) apply instruction for every application that appear in the UpTo/DowFrom release file, whatever their start type in the release file. The new implementation fixes this bug by honoring the start type according to the rel(5) format. If the start type is none, no apply line is included in the relup. If the start type is load, the relup includes instruction to only load the application. Otherwise, the relup includes an instruction to start the application to the according type. The fix is implemented by adding a new parameter to the add_application high level appup instruction. This new parameter is documented in appup(5). --- snmp-4.19 ----------------------------------------------------------- OTP-8966 [compiler] Added support for the textual convention AGENT-CAPABILITIES and full support for textual convention MODULE-COMPLIANCE, both defined by the SNMPv2-CONF mib. The *reference* and *modules* part(s) are stored in the assocList field of the mib-entry (me) record. Only handled if the option(s) agent_capabilities and module_compliance (respectively) are provided to the compiler. For backward compatibillity, the MIBs provided with this application are *not* compiled with these options. OTP-8977 [agent] Add utility functions for printing various snmp tables. These would be very useful during testing and/or debugging. OTP-8980 [agent] For the table vacmAccessTable, when performing the is_set_ok and set opteration(s), all values of the vacmAccessSecurityModel column was incorrectly translated to "any". OTP-8981 [agent] When calling snmp_view_based_acm_mib:reconfigure/1 on a running node, the table vacmAccessTable whas not properly cleaned. This meant that if some entries in the vacm.conf file was removed, while others where modified and/or added, the removed entrie(s) would still exist in the vacmAccessTable. OTP-9004 [snmpc] Created an escript for the snmp mib compiler, snmpc. OTP-9037 Minor documentation improvements. OTP-9093 Forgot adding documentation for new compiler frontend. --- ssh-2.0.4 ----------------------------------------------------------- OTP-8986 It is now possible to use SSH to sign and verify binary data. OTP-8987 In some cases SSH returned {error, normal} when a channel was terminated unexpectedly. This has now been changed to {error, channel_closed}. OTP-9010 SSH now ensures that the .ssh directory exists before trying to access files located in that directory. OTP-9031 SSH did not handle the error reason enetunreach when trying to open a IPv6 connection. --- ssl-4.1.2 ----------------------------------------------------------- OTP-8965 The ssl application caches certificate files, it will now invalidate cache entries if the diskfile is changed. OTP-8992 Now runs the terminate function before returning from the call made by ssl:close/1, as before the caller of ssl:close/1 could get problems with the reuseaddr option. --- ssl-4.1.4 ----------------------------------------------------------- OTP-9021 Reduced memory footprint of an ssl connection. Handshake hashes, premaster secret and "public_key_info" does not need to be saved when the connection has been established. The own certificate is no longer duplicated in the state. OTP-9106 Add the option {hibernate_after, int()} to ssl:connect and ssl:listen --- stdlib-1.17.2.1 ----------------------------------------------------- OTP-9008 Several type specifications for standard libraries were wrong in the R14B01 release. This is now corrected. The corrections concern types in re,io,filename and the module erlang itself. --- stdlib-1.17.3 ------------------------------------------------------- OTP-8989 Two bugs in io:format for ~F.~Ps has been corrected. When length(S) >= abs(F) > P, the precision P was incorrectly ignored. When F == P > lenght(S) the result was incorrectly left adjusted. Bug found by Ali Yakout who also provided a fix. OTP-9020 Implement the 'MAY' clauses from RFC4648 regarding the pad character to make mime_decode() and mime_decode_to_string() functions more tolerant of badly padded base64. The RFC is quoted below for easy reference. "RFC4648 Section 3.3 with reference to MIME decoding: Furthermore, such specifications MAY ignore the pad character, "=", treating it as non-alphabet data, if it is present before the end of the encoded data. If more than the allowed number of pad characters is found at the end of the string (e.g., a base 64 string terminated with "==="), the excess pad characters MAY also be ignored." OTP-9045 Fix exception generation in the io module Some functions did not generate correct badarg exception on a badarg exception. OTP-9064 Supervisors will no longer save start parameters for temporary processes as they will not be restarted. In the case of simple_one_for_one workers such as ssl-connection processes this will substantial reduce the memory footprint of the supervisor. OTP-9076 When running escript it is now possible to add the -n flag and the escript will be compiled using +native. OTP-9083 Fixes to the dict and orddict module documentation Fixed grammar and one inconsistency (Key - Value instead of key/value, since everywhere else the former is used). (thanks to Filipe David Manana) OTP-9087 Add ISO week number calculation functions to the calendar module in stdlib This new feature adds the missing week number function to the calendar module of the stdlib application. The implementation conforms to the ISO 8601 standard. The new feature has been implemented tested and documented (thanks to Imre Horvath). --- test_server-3.4.3 --------------------------------------------------- OTP-8851 Alpha release of Common Test Hooks (CTH). CTHs allow the users of common test to abtract out common behaviours from test suites in a much more elegant and flexible way than was possible before. Note that the addition of this feature may introduce minor changes in the undocumented behaviour of the interface inbetween common_test and test_server. OTP-9017 Updated the ts*.config files to contain information relevant to testing Erlang/OTP in an open source environment. --- tools-2.6.6.3 ------------------------------------------------------- OTP-9043 Cover has been improved to take less memory and allow parallel analysis of cover data. Data collection from nodes is now done in parallel and it is now possible to issue multiple analyse and analyse_to_file requests at the same time. A new function call async_analyse_to_file has also been introduced, see the documentation for more details. OTP-9122 Declare indentation options as "safe" in erlang-mode for Emacs Emacs has a facility for setting options on a per-file basis based on comments in the source file. By default, all options are considered "unsafe", and the user is queried before the variable is set. This patch declares the variables erlang-indent-level, erlang-indent-guard and erlang-argument-indent to be safe, if the value specified in the source file is valid. Such declarations usually look like this: %% -*- erlang-indent-level: 2 -*- and appear on the first line of the file. (thanks to Magnus Henoch) --- typer-0.9 ----------------------------------------------------------- OTP-9113 - Major rewrite; all code has been cleaned up and placed in one file. The only reason why this is not version 1.0 yet is that there is no proper documentation for typer which can be displayed in the www.erlang.org site. - Added ability to receive the set of exported types and report unknown ones. - Better handling of overloaded contracts; especially erroneous ones on which typer does not crash anymore. - Fixed problem that caused typer to hang when given a file whose module name did not correspond to the file name. - Added two undocumented options that may come very handy when trying to understand why typer reports some particular set of types for the functions in a module. These options are mainly for typer developers at this point, but may become documented in some future version. --- wx-0.98.9 ----------------------------------------------------------- OTP-9080 Wx crashed if graphics could not be initiated, for instance if DISPLAY was not available. Wx could crash during startup, thanks Boris Muhmer for extra ordinary testing. OTP-9081 Wx on MacOS X generated complains on stderr about certain cocoa functions not beeing called from the "Main thread". This is now corrected. --- xmerl-1.2.8 --------------------------------------------------------- OTP-9034 The function xmerl_lib:expand_content/1 is mainly for expanding Simple XML, but can also handle xmerl records. This patch fixes an omission that caused expand_content/1 to not maintain the parents list when expanding #xmlElement{} records. (Thanks to Ulf Wiger) OTP-9074 Removed some dialyzer warnings.