## 1 Tools Release Notes

### 1.1 Tools 2.4

#### 1.1.1 Fixed Bugs and Malfunctions

- The Erlang Emacs mode now properly handles strings that have $ or ^ as the last character.
  Own Id: OTP-4697
- `xref`: The unresolved arity (-1) is now recognized in analyses and queries.
  Own Id: OTP-4778
- `cover` does no longer hang if an interface function is called on a remote node - it returns `{error,not_main_node}`.
  Own Id: OTP-5031
- `fprof`: Time spent in the last function in a chain, i.e. a function which did not call another function, and the time when a process was scheduled out, was charged on the above function. This resulted in own time in many cases being bigger than acc time since the time a process was scheduled out was charged on the function from which the process was scheduled out. This is now corrected.
  Own Id: OTP-5073
- Previous patch from open source messed up \M-q so part of that patch was backed out.
  Own Id: OTP-5074
- `cover`: Added "Exclude Included Functions". If "real code" is included in a modules which is cover compiled, there will be no bumps for lines in the included file. Earlier this would cause faulty bumps for lines in the module, i.e. if the code was on line 4 in the included file it would produce a bump for line 4 in the module. Lines in included files are now just disregarded.
  Own Id: OTP-5122

#### 1.1.2 Improvements and New Features

- Added support for try-catch to the Erlang mode for Emacs. However there are still some known problems with some of the more advanced variants especially including separate of-clauses.
  Own Id: OTP-4594
- Improvments for support of Emacs 21 contributed by Dave Love. The bulk of the changes are actually cosmetic commentary/doc fixes. The significant ones make it play better with Emacs 21 with up-to-date facilities. In particular, support for compilation error messages from an inferior erl (as opposed to batch compilation) works in the released Emacs 21, and currently with the development Emacs.
  Own Id: OTP-5019
- Added a skeletons for an Erlang test-suite for both the ts-frontend and the ct-frontend (this frontend is Ericsson internal). Also altered some of the old skeletons to get a uniform look and feel.
  Own Id: OTP-5058
- The Erlang mode for Emacs now supports the new guard `is_boolean`.
  Own Id: OTP-5059
- `cover`: Adjustments to handle new syntax of try-catch.
  Own Id: OTP-5154

### 1.2 Tools 2.3

#### 1.2.1 Fixed Bugs and Malfunctions

- Totally rewritten the interface for WebCover. Can now compile both `.erl` and `.beam` files and export/import cover data.
  Own Id: OTP-4706
- `cover` does no longer report coverage on lines which are not executed.
  Own Id: OTP-4734
- Erlang mode for Emacs: Fixed so that the generation of new function clauses works also for guarded functions.
  Own Id: OTP-3697
- Erlang mode for Emacs: Fixed so that you do not get the error message "unbalanced parenthesis" when indenting correct code including bit syntax.
  Own Id: OTP-4526
- Erlang mode for Emacs: The guard `function` is now colored.
  Own Id: OTP-4533
- Erlang mode for Emacs: Indentation of macros is handled correctly in all cases.
  Own Id: OTP-4561, OTP-4687
- `is_*` guards are now colored.
  Own Id: OTP-4562
- Erlang mode for Emacs: Now handles the fact that a function argument may be a guard expression. (That is useful when writing test case code.)
  Own Id: OTP-4579
- Erlang mode for Emacs: Keywords `andalso` and `orelse` are now colored.
  Own Id: OTP-4580
- Erlang mode for Emacs: Fixed bug in function that calculates the arity of an Erlang function.
  Own Id: OTP-4581

#### 1.2.2 Improvements and New Features

- Added functions `cover:start(Nodes)` and `cover:stop(Nodes)`. Cover compiled modules will be loaded on all nodes added with `cover:start(Nodes)`. `cover:stop(Nodes)` will collect coverage data from the stopped nodes and merge it with data collected on the main (controller) node.
  `cover:analyse/1,2,3` and `cover:analyse_to_file/1,2,3` will also collect data from all nodes before analysing.
  Own Id: OTP-4177
- The module attribute tag `deprecated` is used by `xref` to find calls to deprecated functions. The `m/1`, `d/1`, and `analyze/2,3` functions have been updated to return calls to deprecated functions. See also `xref(3)` for more details.
  Own Id: OTP-4695
- Added functions `cover:compile_beam/1` and `cover:compile_beam_directory/0,1`. These functions use abstract code from existing beam files when cover compiling.
  Added option `html` to `cover:analyse_to_file/1,2,3`. Instead of plain text, a HTML file is generated with all uncovered lines colored red.
  Added functions `cover:export/1,2` and `cover:import/1`. These functions can be used to export current coverage data to a file, and then import the data in a later session. Data can be exported for one single module or for all currently cover compiled modules.
  Own Id: OTP-4702
- Erlang mode for Emacs: Added function `erlang-align-arrows`.
  Own Id: OTP-4737
- The interface for the `instrument` module has been slightly changed. Also some new functionality has been added. See `instrument(3)` for more information.
  (*** POTENTIAL INCOMPATIBILITY ***)
  Own Id: OTP-4761
  Aux Id: OTP-4534

tools 2.5.5
Copyright © 1991-2007 Ericsson AB