aboutsummaryrefslogtreecommitdiffstats
path: root/lib/tools/src
AgeCommit message (Collapse)Author
2011-11-10Merge branch 'pg/fix-cover-leftover-down-msg'Henrik Nord
* pg/fix-cover-leftover-down-msg: [cover]fix leftover {'DOWN', ..} msg in callers queue OTP-9694
2011-11-07EEP-23: Allow variables in fun M:F/ABjörn Gustavsson
Currently, the external fun syntax "fun M:F/A" only supports literals. That is, "fun lists:reverse/1" is allowed but not "fun M:F/A". In many real-life situations, some or all of M, F, A are not known until run-time, and one is forced to either use the undocumented erlang:make_fun/3 BIF or to use a "tuple fun" (which is deprecated). EEP-23 suggests that the parser (erl_parse) should immediately transform "fun M:F/A" to "erlang:make_fun(M, F, A)". We have not followed that approach in this implementation, because we want the abstract code to mirror the source code as closely as possible, and we also consider erlang:make_fun/3 to be an implementation detail that we might want to remove in the future. Instead, we will change the abstract format for "fun M:F/A" (in a way that is not backwards compatible), and while we are at it, we will move the translation from "fun M:F/A" to "erlang:make_fun(M, F, A)" from sys_pre_expand down to the v3_core pass. We will also update the debugger and xref to use the new format. We did consider making the abstract format backward compatible if no variables were used in the fun, but decided against it. Keeping it backward compatible would mean that there would be different abstract formats for the no-variable and variable case, and tools would have to handle both formats, probably forever. Reference: http://www.erlang.org/eeps/eep-0023.html
2011-09-21[cover]fix leftover {'DOWN', ..} msg in callers queueHenrik Nord
After stopping cover with cover:stop() there could still be a {'DOWN',...} leftover message in the calling process's message queue. This unexpected leftover could be eliminated if erlang:demonitor/2 with option flush would be used in certain points
2011-09-15Fix typos in cover.erlTuncer Ayaz
2011-05-20Update copyright yearsBjörn-Egil Dahlberg
2011-04-29Fix file descriptor leakShunichi Shinohara
File descriptors to import cover data are left opened. When we export and import cover data many times, leaked descriptors cause an error.
2011-04-07Merge branch 'ts/cover-with-export_all' into devHenrik Nord
* ts/cover-with-export_all: add user specified compiler options on form reloading OTP-9204
2011-04-01Merge branch 'sb/make-files-like-erlc' into devHenrik Nord
* sb/make-files-like-erlc: Change make:files to behave more like erlc OTP-9179
2011-03-11Update copyright yearsBjörn-Egil Dahlberg
2011-02-10Update internal pmap to have a process limitLukas Larsson
Add write concurrancy to cover masters ?COVER_TABLE
2011-02-02Update documentation to reflect performance enhancement changes of coverLukas Larsson
2011-02-02Add aync_analyse_to_file function to coverLukas Larsson
2011-02-01Split the cover ets tables into two tables, one with the clause info and one ↵Lukas Larsson
with the bump info. This will make it faster to search the tables when analyzing and exporting data. Also made cover export more parallel in how data is collected from the different nodes and also how data is read from ets. This should make the performance of cover much better on machines with multiple CPUs.
2011-01-27Add process debug tagsLukas Larsson
2011-01-27Update remote collect to handle multiple requests at onceLukas Larsson
2011-01-27Remove io printout warnings when exporting an imported moduleLukas Larsson
2011-01-26Update cover to allow multiple analyse and analyze_to_file calls at the same ↵Lukas Larsson
time. For each call a seperate process will be spawned to handle the request.
2011-01-26Refactor cover to prepare it for making analysis parallelLukas Larsson
2011-01-25Update remote loading to only load a certain number of modules at a time to ↵Lukas Larsson
prevent memory usage explosion
2010-11-30eprof: fix badarith exception on divideBjörn-Egil Dahlberg
Error caused by low resolution timers.
2010-11-22Fix eprof API mismatch of sort functionalityBjörn-Egil Dahlberg
Option {sort, calls} now sorts on calls. Option {sort, time } now sorts on time.
2010-09-23add user specified compiler options on form reloadingTobias Schlager
In order to be able to test non-exported functions from another (test) module it is necessary to compile the specific module (at least during the test phase) with the export_all compiler option. This allows complete separation of testing and productive code. At the moment it is not possible to combine this with a test code coverage using the cover module. The problem is that when cover compiling a module using cover:compile_* the code is reloaded into the emulator omitting/filtering the passed user options. In my example above the export_all option would be removed and the non-exported functions cannot be called any more.
2010-09-10Remove warnings for clashes with new autoimported BIFsPatrik Nyblom
2010-07-28Fix cover's HTML-generation logic to escape ampersands in source codeTom Moertel
When cover generates HTML files and embeds source code within them, it does not escape ampersands in the source code. These bare ampersands get misinterpreted by web browsers as HTML character-entity references; as a result, source code containing ampersands renders improperly. This small patch fixes the problem by causing bare ampersands to be escaped into as "&" character-entity references.
2010-06-11Merge branch 'egil/eprof' into devErlang/OTP
* egil/eprof: Fix eprof to handle error cases Dialyzer cleanup for eprof Fix fprof_SUITE to use new eprof API Switch pattern API for eprof profile with mfa Update eprof documentation Update eprof_SUITE with more basic tests Rename sorting choices for eprof Teach eprof to align text output Add dump functionality to eprof Add log functionality to eprof Update eprof tests to reflect new eprof Add start timestamp to eprof profiling Teach eprof to use the new breakpoints OTP-8706 egil/eprof eprof has been reimplemented with support in the Erlang virtual machine and is now both faster (i.e. slows down the code being measured less) and scales much better. In measurements we saw speed-ups compared to the old eprof ranging from 6 times (for sequential code that only uses one scheduler/core) up to 84 times (for parallel code that uses 8 cores).
2010-06-09Fix eprof to handle error casesBjörn-Egil Dahlberg
2010-06-09Dialyzer cleanup for eprofBjörn-Egil Dahlberg
2010-06-09Switch pattern API for eprof profile with mfaBjörn-Egil Dahlberg
2010-06-09Rename sorting choices for eprofBjörn-Egil Dahlberg
- Added {sort, mfa} option
2010-06-09Teach eprof to align text outputBjörn-Egil Dahlberg
2010-06-09Add dump functionality to eprofBjörn-Egil Dahlberg
2010-06-09Add log functionality to eprofBjörn-Egil Dahlberg
2010-06-09Add start timestamp to eprof profilingBjörn-Egil Dahlberg
2010-06-09Teach eprof to use the new breakpointsBjörn-Egil Dahlberg
2010-05-28OTP-8647 Xref adds calls to operators when {builtins,true}Hans Bolinder
When given the option {builtins,true} Xref now adds calls to operators.
2010-05-19Change make:files to behave more like erlcSam Bobroff
Currently make:files will fail with the atom 'error' and no message when the input (.erl) file is unreadable or the output (.beam) file is unwritable. This differs from erlc which will print a useful error message, or when possible, remove the unwritable output file and continue successfully. This change removes the unnecessary checks on the files when make:files is called and allows the error checking to be done in compile:file, where the error messages are produced. It does not affect the return value. In particular this resolves the mysterious problem of make:files failing but erlc succeeding, caused by an unwritable (usually root owned) beam file in an otherwise writable build directory.
2010-03-03OTP-8472 tools: xref: re/regexpHans Bolinder
Xref has been updated to use the re module instead of the deprecated regexp module.
2010-03-02OTP-8469 tools: race in CoverHans Bolinder
A race condition affecting Cover has been removed.
2010-02-11OTP-8430: tools: xref_SUITE updatedBjörn Gustavsson
2010-02-10Merge branch 'egil/lcnt' into ccase/r13b04_devErlang/OTP
* egil/lcnt: Add test suite for lcnt in tools Add lcnt:rt_opt/1 bindings to erts_debug Add runtime option to enable/disable lcnt stats Add auto width on string output Add lcnt documentation Add lock profiling tool OTP-8424 Add lock profiling tool. The Lock profiling tool, lcnt, can make use of the internal lock statistics when the runtime system is built with this feature enabled. This provides a mechanism to examine potential lock bottlenecks within the runtime itself. - Add erts_debug:lock_counters({copy_save, bool()}). This option enables or disables statistics saving for destroyed processes and ets-tables. Enabling this might consume a lot of memory. - Add id-numbering for lock classes which is otherwise undefined.
2010-02-08Add lcnt:rt_opt/1 bindings to erts_debugBjörn-Egil Dahlberg
Runtime options for copy_save.
2010-02-08Add auto width on string outputBjörn-Egil Dahlberg
2010-02-08Add lock profiling toolBjörn-Egil Dahlberg
The Lock profiling tool, lcnt, can make use of the internal lock statistics when the runtime system is built with this feature enabled. This provides a mechanism to examine potential lock bottlenecks within the runtime itself.
2009-12-14OTP-8340 A bug concerning bit comprehensions has been fixed in Cover. TheHans Bolinder
bug was introduced in R13B03. (Thanks to Matthew Sackman.)
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP