Bug fix release : otp_src_R13B02 Build date : 2009-09-21 This is R13B02, the second maintenance release for the R13B major release. You can find the README file for the release at http://www.erlang.org/download/otp_src_R13B02.readme (this file) The source distribution and binary distribution for Windows can be downloaded from http://www.erlang.org/download/otp_src_R13B02.tar.gz http://www.erlang.org/download/otp_win32_R13B02.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_R13B02.tar.gz.torrent http://www.erlang.org/download/otp_win32_R13B02.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_R13B02.tar.gz http://www.erlang.org/download/otp_doc_man_R13B02.tar.gz We also want to thank those that sent us patches, suggestions and bug reports, The OTP Team --- HIGHLIGHTS ---------------------------------------------------------- OTP-8108 The file module has now a read_line/1 function similar to the io:get_line/2, but with byte oriented semantics. The function file:read_line/1 works for raw files as well, but for good performance it is recommended to use it together with the 'read_ahead' option for raw file access. OTP-8187 There is a major addition to the capabilities of dialyzer, worthy of bumping the version number. Starting with this version, dialyzer not only accepts but also properly processes remote types (i.e., types of the form ModuleName:TypeName()). Previous dialyzer versions only accepted this notation in -type and -spec declarations, but effectively ignored its information by mapping remote types to the type any(). In contrast, starting with this version, remote types are used in the analysis and are also stored in the PLTs. (This addition changes the format of PLTs and requires rebuilding any PLTs created by an older dialyzer version.) Note that dialyzer will complain and abort the analysis of a set of modules if it needs to process a remote type without a definition (either because the module does not include a definition of the type or the module is not included in the analysis). We may relax this restriction in a future version. Fixed minor issue with dialyzer:run/1 crashing (upon its return) when used for adding type information to an existing PLT. Fixed minor but quite annoying issues in dialyzer's GUI. --- documentation ------------------------------------------------------- OTP-8085 Spelling correction in the Modules section of the Erlang Reference Manual. (Thanks to Brentley Jones.) OTP-8091 Spelling corrections in the Event Handling Principles section of the Design Principles. (Thanks to Matt Reynolds.) OTP-8186 There is a new chapter about drivers in the Efficiency Guide. --- asn1-1.6.11 --------------------------------------------------------- OTP-7972 Range checks added for BIT STRING with fixed SIZE constraint. OTP-8043 Now support multiple-line comments in asn1-specs as specified in ASN1 X.680 (07/2002), section 11.6.4 OTP-8046 Now parses and adds abstract syntax for PATTERN subtype constraint. No other action is taken on this type of constraint. OTP-8047 The syntax variants for subtype constraint CONTAINING Type, CONTAINING Type ENCODED BY Value and ENCODED BY Value are now accepted by the parser. Abstract syntax is added but currently no further action in generated code is taken. OTP-8136 A new option {n2n,TypeName} can be used to enable generation of conversion functions from name to number and vice versa for selected ENUMERATION types. The option can be repeated many times in order to specify several types in the same file. Below follows an example of how to use the option from the command line with erlc:
erlc -bper_bin +optimize +driver +"{n2n,'CauseMisc'}" +"{n2n,'CauseProtocol'}" MyModule.asn --- common_test-1.4.3 --------------------------------------------------- OTP-8082 Printouts with ct:pal and ct:log made by processes not started by a test case process, got written to the framework log rather than to the test case log. This is the correct behaviour if a parallel test group is executing, but during sequential test case execution, printouts should always be written to the log file of the current test case. This has been fixed. --- common_test-1.4.5 --------------------------------------------------- OTP-8045 Various updates and fixes in Common Test and Test Server. OTP-8089 The Common Test logger process crashed if a test case in a sequence (declared with sequences/0) failed. This fault has been corrected. OTP-8163 Errors in coverage data collection and analysis were difficult to detect. The logging has been improved so that more information about e.g. imported and missing modules is printed to the html log files. OTP-8177 The Common Test HTML overview pages have been improved. It is now possible to see if a test case has been skipped explicitly or because a configuration function has failed. Also, the history page (all_runs.html) now has scrolling text displaying the test names. The old format (showing names as a truncated string) can still be generated by means of the flag/option 'basic_html'. --- compiler-4.6.3 ------------------------------------------------------ OTP-8054 Corrected liveness optimization to eliminate a compiler crash that could occur when compiling bit syntax construction code. (Thanks to Mikage Sawatari.) Calling BIFs such as length/1 in guard context in a try/catch block could cause a compiler crash. (Thanks to Paul Fisher.) Using filter expressions containing andalso or orelse in a list comprehension could cause a compiler crash. (Thanks to Martin Engström.) OTP-8131 A guard with nested 'not' operators could cause the compiler to crash. (Thanks to Tuncer Ayaz.) --- crypto-1.6.1 -------------------------------------------------------- OTP-8096 Support for Blowfish cfb64 added to crypto. OTP-8141 New function crypto:aes_cbc_ivec OTP-8157 Makefile.in has been updated to use the LDFLAGS environment variable (if set). (Thanks to Davide Pesavento.) --- dialyzer-2.0.0 ------------------------------------------------------ OTP-8187 There is a major addition to the capabilities of dialyzer, worthy of bumping the version number. Starting with this version, dialyzer not only accepts but also properly processes remote types (i.e., types of the form ModuleName:TypeName()). Previous dialyzer versions only accepted this notation in -type and -spec declarations, but effectively ignored its information by mapping remote types to the type any(). In contrast, starting with this version, remote types are used in the analysis and are also stored in the PLTs. (This addition changes the format of PLTs and requires rebuilding any PLTs created by an older dialyzer version.) Note that dialyzer will complain and abort the analysis of a set of modules if it needs to process a remote type without a definition (either because the module does not include a definition of the type or the module is not included in the analysis). We may relax this restriction in a future version. Fixed minor issue with dialyzer:run/1 crashing (upon its return) when used for adding type information to an existing PLT. Fixed minor but quite annoying issues in dialyzer's GUI. --- edoc-0.7.6.4 -------------------------------------------------------- OTP-8190 Miscellaneous updates. --- erl_interface-3.6.3 ------------------------------------------------- OTP-4969 The manual states that erl_receive() return the reason in the ErlMessage struct. This was not the case and the function is now corrected. OTP-6091 Added support for 64-bit integers in encoding/decoding. Added support for better printouts of binaries. OTP-6117 In send_exit.c an errorneous size of memory allocation could occur when reallocating a buffer. In ei_decode_trace.c the index could be updated when the decoding failed. In ei_printterm.c the index could be updated when the decoding failed in lists and tuples. In ei_decode_term.c when decoding a double (ERL_FLOAT_EXT) no check was done to ensure that the last of the 31 bytes was null terminated. In ei_decode_term.c when decoding references, only the first 3 bytes are read, but the index did not increment by the total size. In ei_decode_fun.c no check of correct buffer allocation or data length was done. In ei_decode_string.c the integer list string case did not decode the NIL tail correctly. These errors has now been fixed. (Thanks to Romain Lenglet, Paul Mineiro and Paul Guyot). OTP-7554 ei_decode_big could be decoded with a garbage byte. ei_encode_big and ei_x_encode_big is now available. OTP-8093 The function erl_init_resolve() did not conform to C99 standard which caused a build error on some platforms. This has now been fixed. OTP-8157 Makefile.in has been updated to use the LDFLAGS environment variable (if set). (Thanks to Davide Pesavento.) --- erts-5.7.3 ---------------------------------------------------------- OTP-8041 Processor internal NUMA nodes are now supported in the ERTS internal CPU topology representation. For more information see the documentation of the +sct command line argument in the erl(1) documentation, and the documentation of erlang:system_info(cpu_topology). OTP-8050 Documentation for ets improved about concurrency. OTP-8055 On Windows, open_port({spawn,Command},Opts) could not run executables with spaces in the path or filename, regardless of quoting efforts. While open_port({spawn_executable,Exec},Opts) can run any executable, it was still impossible to use 'spawn' to do the same thing. This is now corrected. OTP-8060 Emulator flags in an escript were earlier inherited to emulators started from from the emulator running the escript. For example when an escript invoked os:cmd("erl"), the new emulator were given erroneous emulator flags. This bug has now been fixed Escript filenames may now contain dots. OTP-8063 The scheduler bind type processor_spread spread schedulers too much on large NUMA systems. The new scheduler bind type spread spreads schedulers as much as possible, and behaves as processor_spread previously did. For more information see the documentation of the +sbt command line argument in the erl(1) documentation, and the documentation of erlang:system_flag(scheduler_bind_type, SchedulerBindType). OTP-8064 Automatically detected CPU topology on Linux system could erroneously contain logical processors with -1 as identifiers. This happened when sysconf(_SC_NPROCESSORS_CONF) returned a value larger than the amount of logical processors found. OTP-8065 Made some BIFs non-recursive (relational operators,hash and phash) to limit internal stack usage. OTP-8080 Fixed Windows specific bug in erl_prim_loader. Now it handles the root directory (e.g. c:/) better. This bug affected the directory listing in the debugger. OTP-8092 When the minimal term [] (end of list) was sent as the complete message to a process on another node, and received there, it could not be decoded. This bug is now corrected. Fortunately [] is uncommon as the complete message in real applications but it is a serious bug anyway. OTP-8095 A bug when the floating point exception pointer was not initialized has been corrected. It manifested itself on CentOS 5.1 sometimes when a floating point value was sent to a remote node. Bug reported and patch suggested by David Reiss, confirmed by Mikael Pettersson. Some build problems on IRIX was also corrected. Problem reported by Patrick Baggett, patch by Mikael Pettersson. OTP-8099 A terminating process could erroneously unregister a name for another process. This could occur under the following conditions: The name of the terminating process was unregistered and then registered for another process simultaneously as the process that first had the name was terminating. OTP-8102 A TCP socket with option {packet,4} could crash the emulator if it received a packet header with a very large size value (>2Gb). The same bug caused erlang:decode_packet/3 to return faulty values. (Thanks to Georgos Seganos.) OTP-8104 The maximum size of the export table has been raised from 65536 to 524288 entries. OTP-8108 The file module has now a read_line/1 function similar to the io:get_line/2, but with byte oriented semantics. The function file:read_line/1 works for raw files as well, but for good performance it is recommended to use it together with the 'read_ahead' option for raw file access. OTP-8117 Fixed bug causing emulator crash when reading a term in external format containing a corrupt list with a negative length. OTP-8119 New emulator flag +sss, to set stack size of scheduler threads. OTP-8124 Running erlc in a very deep directory (with a path length of more 256 or more characters) would cause the emulator to crash in a call to list_to_atom/1. (Thanks to Chris Newcombe.) OTP-8132 The Windows utility Erlsrv, run in interactive mode now accepts options for registering internal service name and description field of Windows registry database. OTP-8143 erlang:demonitor(Mon, [flush]) has been optimized. Previously it always searched the message queue of the caller for a 'DOWN' message. Current implementation only search the message queue when necessary. It is quite common that the search is not necessary. A new option info has been added to erlang:demonitor/2. For more information see the erlang(3) documentation. OTP-8145 A deadlock of the runtime system could occur when unregistering the name of a port. OTP-8148 I/O tasks could unnecessarily be rescheduled. This was harmless, but not useful work. OTP-8152 Minor improvements of erlang:memory/[1,2]. OTP-8155 New configuration option to enable use of shared zlib. OTP-8157 Makefile.in has been updated to use the LDFLAGS environment variable (if set). (Thanks to Davide Pesavento.) OTP-8158 The pthread rwlock implemention on Linux could cause starvation of writers. We, therefore, now use our own rwlock implementation on Linux. OTP-8166 Fixed smp bug in ETS that could cause emulator crash when table with more than 1000 objects accessed by several processes, including calls to variants of select or match combined with concurrent object deletion. OTP-8168 Open source Erlang builds are updated to work well on Snow Leopard (MacOS X 10.6) OTP-8169 A call to erlang:system_info(schedulers_online) could end up in an infinite loop. This happened if the amount of schedulers was larger than one, the amount of schedulers online was one, and someone was blocking multi-scheduling. OTP-8170 The code path interpretation is now more relaxed. The flag -code_path_choice now defaults to relaxed instead of strict. See the documentation of code and init for more info. OTP-8171 An error in erlang:system_profile/2 could cause timestamped messages to arrive out of order in the SMP case. This has now been fixed. OTP-8172 Load balancing of run queues and check for I/O are triggered more often than before in situations where processes are scheduled often but are doing very little work each time they execute. OTP-8179 Call tracing binary comprehensions would cause an emulator crash. (Thanks to Paul Mineiro.) OTP-8180 binary_to_term/1 would crash the emulator instead of generating a badarg exception when given certain invalid terms. (Thanks to Scott Lystig Fritchie.) OTP-8192 binary_to_atom/2 and binary_to_existing_atom/2 would leak memory if the binary contained unaligned data. OTP-8194 The async thread pool in the runtime system without SMP support used a memory allocator that was not thread safe for async jobs. --- et-1.3.2 ------------------------------------------------------------ OTP-8078 The start module in the app file has been corrected. --- eunit-2.1.3 --------------------------------------------------------- OTP-8190 Miscellaneous updates. --- hipe-3.7.3 ---------------------------------------------------------- OTP-8189 Various small bugs (one involving the handling of large binaries) were corrected and some additions to its functionality and/or code cleanups were done. --- ic-4.2.22 ----------------------------------------------------------- OTP-8088 The 64-bit version of libic was not compiled with the -fPIC flag. --- inets-5.1.1 --------------------------------------------------------- OTP-8052 [httpc] Reception of unexpected data causes handler crash. OTP-8069 [httpd] - When starting inets (the web-server) and supplying a descriptor on the command line (example: erl -httpd_8888 ) it is now possible to specify which ip-family to use: inet | inet6 | inet6fb4. Example: erl -httpd_8888 10:inet6. Default is inet6fb4 which emulates the behaviour of the previous version. Also added config option ipfamily. See the Communications properties section for more info. --- inets-5.1.2 --------------------------------------------------------- OTP-7298 [httpc] Added http option 'connect timeout' for http client request. The 'connect timeout' option is used for the initial request, when the client connects to the server. Default value is that of the timeout option. OTP-8101 [httpd] Removed documentation for non-existing function (header). OTP-8118 [httpd] Failed to create listen socket with invalid option combo. The http-server failed to create its listen socket when the bind-address was an IPv4-address (a tuple of size 4) and the ipfamily option was inet6fb4. --- inets-5.1.3 --------------------------------------------------------- OTP-8154 [httpc] Raise condition. When http:request is called and httpc_manager selects a session where there's already a pending request, then the connection handler for that session effectively resets its parser, readying it for the response to the second request. But if there are still some in- bound packets for the response to the first request, things get confused. --- kernel-2.13.3 ------------------------------------------------------- OTP-7955 The DNS resolver client inet_res has been rewritten, documented and released. See inet_res(3) and Erts User's Guide: Inet configuration. It can formally not be incompatible with respect to earlier versions since there was no earlier official version. However it was used before and some details have changed. Configuration now initializes from /etc/resolv.conf and /etc/hosts on all unix platforms regardless of which distribution mode the node is started in. The directory (/etc) these files are supposed to reside in can be changed via an environment variable. These configuration file locations can also be changed in the inet configuration. The files are monitored for change and re-read, which makes a few resolver configuration variables out of application control. The /etc/hosts entries have now their own cache table that is shadowed (with lookup method 'file' is used) by the application configured host entries. This problem (that inet_res configuration only worked for distribution mode long names) was among other reported by Matthew O'Gorman many moons ago. The lookup methods are still 'native' only per default. Resolver configuration is done on all Unix platforms just to get a usable configuration for direct calls to inet_res. The functions inet_res:nslookup/3..5 and inet_res:nnslookup/4..4 are no longer recommended to use, instead use inet_res:lookup/3..5 and inet_res:resolve/3..5 which provide clearer argument types and the possibility to override options in the call. Users of previous unsupported versions of inet_res have included internal header files to get to the internal record definitions in order to examine DNS replies. This is still unsupported and there are access functions in inet_dns to use instead. These are documented in inet_res(3). Bug fix: a compression reference loop would make DNS message decoding loop forever. Problem reported by Florian Weimer. Bug fix and patch suggestion by Sergei Golovan: configuring IPv6 nameservers did not work. His patch (as he warned) created many UDP sockets; one per nameserver. This has been fixed in the released version. Improvement: inet_res is now EDNS0 capable. The current implementation is simple and does not probe and cache EDNS info for nameservers, which a fully capable implementation probably should do. EDNS has to be enabled via resolver configuration, and if a nameserver replies that it does not support EDNS, inet_res falls back to a regular DNS query. Improvement: now inet_res automatically falls back to TCP if it gets a truncated answer from a nameserver. Warning: some of the ancient and exotic record types handled by inet_res and inet_dns are not supported by current versions of BIND, so they could not be tested after the rewrite, with reasonable effort, e.g MD, MF, NULL, and SPF. The risk for bugs in these particular records is still low since their code is mostly shared with other tested record types. OTP-8102 A TCP socket with option {packet,4} could crash the emulator if it received a packet header with a very large size value (>2Gb). The same bug caused erlang:decode_packet/3 to return faulty values. (Thanks to Georgos Seganos.) OTP-8108 The file module has now a read_line/1 function similar to the io:get_line/2, but with byte oriented semantics. The function file:read_line/1 works for raw files as well, but for good performance it is recommended to use it together with the 'read_ahead' option for raw file access. --- megaco-3.11.1 ------------------------------------------------------- OTP-8081 The reply proxy could crash if the timeout time calculation results in a negative number. This will result in a function clause with resulting error report. OTP-8114 [text] The *unquoted* string BOTH was interpreted as the 'BothToken' token. This was a version 3 (prev3a, prev3b, prev3c and v3) only --- megaco-3.11.2 ------------------------------------------------------- OTP-8123 Megaco was unnecessarily strict when parsing the SDP attribute *maxptime* (leading or trailing spaces cased the value parse to fail). This has been improved so that leading and trailing spaces are stripped before parsing the value. The same has been done for the attribute *ptime*. --- megaco-3.11.3 ------------------------------------------------------- OTP-8164 Replace obsolete guard tests. OTP-8167 Added the config option call_proxy_gc_timeout to be able to control the way unexpected replies (when requests issued via calls to megaco:call/3) are handled. See megaco:user_info/2, megaco:conn_info/2 and megaco:call/3 for more info. OTP-8191 Make flex scanner c89 compiler compliant. --- mnesia-4.4.11 ------------------------------------------------------- OTP-8074 Fixed duplicate results with mnesia:index_read() on ordered_set tables. Reported by Sam Bobroff. Fixed locking in mnesia:index_read() which now grabs a read table lock to ensure correctness, this may slow down the operation or block other processes trying to reach the same table. Calling mnesia:dump_log() could crash mnesia, Reported by Igor Ribeiro Sucupira. --- os_mon-2.2.3 -------------------------------------------------------- OTP-8094 A missing define in memsup.c caused a build error on IRIX machines. This has now been fixed. --- public_key-0.3 ------------------------------------------------------ OTP-8100 Unknown attributes in certificates are left encoded instead of crashing. Patch by Will "wglozer" thanks. OTP-8142 Allow public_key:pem_to_der/[1,2] to take a binary as argument in addition to a filename. Patch by Geoff Cant, thanks. --- reltool-0.5 --------------------------------------------------------- OTP-7949 The tool is still experimental. Feedback is appreciated. Major improvements of the target system generation has been performed. Now it is possible to generate a relocatable target system that does not need to be re-installed if it is moved to a new location. Archive files are automatically generated. A detailed specification of the target system can be generated without actually creating the target system. Relocatable escripts are put in the bin directory of the target system. etc. etc. Some new functions has been introduced in the reltool module: start/1, start_link/1, get_config/3, get_target_spec/1 and eval_target_spec/3. Some new configuration parameters has been introduced: profile, incl_sys_filters, excl_sys_filters, incl_app_filters, excl_app_filters, incl_archive_filters, excl_archive_filters, archive_opts, escript and relocatable. Some parameters have been obsoleted and given new semantics: incl_erts_dirs (incl_sys_filters), excl_erts_dirs (excl_sys_filters), incl_app_dirs (incl_app_filters), excl_app_dirs (excl_app_filters) and escripts (escript). --- reltool-0.5.1 ------------------------------------------------------- OTP-8199 In the new release of Reltool (0.5) there is a severe bug that may cause your source files to be deleted. The bug is triggered when you generate a target system WITH archive files AND your library directories are given with absolute paths. (Library directories are given with the ERL_LIBS environment variable or with the lib_dirs configuration parameter.) --- runtime_tools-1.8.1 ------------------------------------------------- OTP-8157 Makefile.in has been updated to use the LDFLAGS environment variable (if set). (Thanks to Davide Pesavento.) --- sasl-2.1.7 ---------------------------------------------------------- OTP-8132 The Windows utility Erlsrv, run in interactive mode now accepts options for registering internal service name and description field of Windows registry database. --- snmp-4.13.4 --------------------------------------------------------- OTP-8044 [agent] Originating discovery problems. Invalid state variable update during second stage of discovery causes master agent crash. Also the net_if process failed to activate socket ({active, once}) after first discovery response was sent. OTP-8062 [agent] Terminating discovery problem. The reply to the second stage request should include a varbind with usmStatsNotInTimeWindows. OTP-8098 [agent] Originating discovery improvement. Added the ExtraInfo argument to the snmpa:discovery function. This argument will be passed on to the stage1_finish callback function. Also, the snmpa:discovery function will now always return {ok, ManagerEngineID} on successful discovery. The discovery handler behaviour updated accordingly --- snmp-4.13.5 --------------------------------------------------------- OTP-8116 [agent] The main agent type header file contained some miss-information regarding the type of the entrytype field of the me-record, causing unneccessary confusion. This problem has been fixed. OTP-8120 [agent] Username(s) accepted for stage 1 of terminating discovery included "initial" which was also a valid as a normal username. OTP-8181 Replace obsolete guard tests. OTP-8182 [agent] Improved the cache handling of the mib server. A number of new functions and config options for the mib server cache has been added. See snmpa:invalidate_mibs_cache/0,1, snmpa:enable_mibs_cache/0,1, snmpa:disable_mibs_cache/0,1, snmpa:gc_mibs_cache/0,1,2,3, snmpa:enable_mibs_cache_autogc/0,1, snmpa:disable_mibs_cache_autogc/0,1, snmpa:update_mibs_cache_age/1,2 and snmpaupdate_mibs_cache_gclimit/1,2 for more info. See the configuration chapter in the Users Guide for more info about the mib server cache options. --- ssh-1.1.4 ----------------------------------------------------------- OTP-8071 SSH sometimes caused a crash report at disconnect. --- ssh-1.1.5 ----------------------------------------------------------- OTP-8159 ssh_sftp:start_channel/3 did not handle timout correctly. OTP-8160 If a progress message was not recieved after invoking ssh:connect/3 the call could hang for ever. A timeout option has also been added. OTP-8161 A comma has been missing in the ssh.appup file since SSH-1.0.2. --- ssh-1.1.6 ----------------------------------------------------------- OTP-8110 The encryption algorithm aes128-cbc is now supported. Requires that crypto-1.6.1 is available. OTP-8162 ssh_transport:unpack/3 could cause a badarg error. OTP-8173 Requests could result in badarg or badmatch EXIT messages in the connection manager if the channel no longer existed. OTP-8174 If a connection manager already had been terminated it could cause a channel to generate a crash report when it was about to stop. OTP-8175 SFTPD did not handle rename command (version 4) correctly. OTP-8176 ssh_sftp:start_channel did not handle all possible return values from ssh_channel:start correctly. --- ssl-3.10.4 ---------------------------------------------------------- OTP-8137 A client could avoid a certificate check if the client code didn't send the requested certificate. --- stdlib-1.16.3 ------------------------------------------------------- OTP-8051 The linter used to crash on invalid -opaque declarations. OTP-8066 Bugs in digraph:add_edge/5 and digraph:del_path/3 have been fixed. (Thanks to Crystal Din.) OTP-8070 When trying to insert objects with dets:insert_new() into a Dets table of type duplicate_bag, already existing objects would sometimes be duplicated. This bug has been fixed. (Thanks to Crystal Din.) OTP-8113 Option {capture,none} was missing in documentation for re:run/3. OTP-8124 Running erlc in a very deep directory (with a path length of more 256 or more characters) would cause the emulator to crash in a call to list_to_atom/1. (Thanks to Chris Newcombe.) OTP-8129 When erl_scan:tokens() returns an error tuple {error, ErrorInfo, EndLocation}, the list LeftOverChars is the remaining characters of the input data, starting from EndLocation. It used to be the empty list. OTP-8130 A few minor bugs have been fixed in the Erlang Code Preprocessor (epp). OTP-8133 A bug in The Erlang Meta Interpreter (erl_eval) has been fixed: exceptions generated in the template of bit string comprehensions were not handled properly. (Thanks to Ulf Wiger.) OTP-8139 The Erlang Meta Interpreter (erl_eval) has been somewhat optimized when it comes to interpreting receive-expressions. (Thanks to Richard Carlsson.) OTP-8150 The Erlang Pretty Printer (erl_pp) has been modified as to handle types. --- syntax_tools-1.6.3 -------------------------------------------------- OTP-8190 Miscellaneous updates. --- test_server-3.3.4 --------------------------------------------------- OTP-8045 Various updates and fixes in Common Test and Test Server. OTP-8105 When running a suite starting with a test case group, Test Server crashed if init_per_suite/1 exited or returned skip. This has been fixed. OTP-8163 Errors in coverage data collection and analysis were difficult to detect. The logging has been improved so that more information about e.g. imported and missing modules is printed to the html log files. OTP-8177 The Common Test HTML overview pages have been improved. It is now possible to see if a test case has been skipped explicitly or because a configuration function has failed. Also, the history page (all_runs.html) now has scrolling text displaying the test names. The old format (showing names as a truncated string) can still be generated by means of the flag/option 'basic_html'. --- typer-0.1.7.2 ------------------------------------------------------- OTP-8190 Miscellaneous updates. --- wx-0.98.3 ----------------------------------------------------------- OTP-8083 wxHtmlWindow class implemented. All exceptions from callbacks are now catched and written to the log. Some defines where wrong in 'wx.hrl'. wx:batch/1 and friends could hang forever if for instance a breakpoint was set inside the fun. That caused all wx applications to hang. Added missing wxAuiPaneInfo constructor and destructor. Added wxAuiNotebookEvent and wxAuiManagerEvent. Calling non supported wxWidgets functions hanged instead of crashed. Update OpenGL to version 3.1 and added some of the missing glu functions. Fixed wxRadioBox which inherited the wrong class, thanks Atilla Erdodi. OTP-8126 Added wxListCtrl sorting and build fixes supplied by Paul Hampson. Thanks. OTP-8138 Removed some of the automatic garbage collecting after application exit, user will get a warning instead so he can correct the code. OTP-8168 Open source Erlang builds are updated to work well on Snow Leopard (MacOS X 10.6) --- xmerl-1.2.1 --------------------------------------------------------- OTP-8084 xmerl/include/xmerl.hrl contained internal debug macros (dbg/2 and DBG/0) which now is moved to xmerl_internal.hrl. OTP-8153 The SAX parser couldn't handle consecutive documents on the same stream. The return values are now changed so they return a rest value instead of giving an error about "erranous information after the end tag". This means that the functions file/2 and stream/2 now returns {ok, EventState, Rest} when the parsing is correct. The rest can then be used as input to a new call to xmerl_sax_parse:stream/2. If one know that it's just one document the rest value in the result tuple can be matched against <<>> or [] depending on if the input is in binary form or not. OTP-8156 The function xmerl_uri:parse/1 couldn't handle FTP URIs containing username and password. The default FTP port constant was also wrong. (Thanks to Steve Vinoski)