2006 2016 Ericsson AB. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Tools Release Notes

## Tools 2.4

### 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

### 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

## Tools 2.3

### 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

### 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