v4.0
Changes:
- Significantly improve accuracy of
SrcGraph
. Previously, for each source file there was a list of commands in which it was compiled, and a list of file in which it was indirectly used ("used by" list). Now there are multiple "used_by" lists, one for each command, in which the file is compiled. It was wrong to combine them, because the exact content of a source file depends on compilation options. - Significantly improve accuracy of
Callgraph
. Previously, there was a bunch of heuristics that tried to match function calls and definitions. Now they are replaced by more strict rules, and with changes to the 'SrcGraph' andInfo
extensions,Callgraph
now produces far better results, with fewer errors and mismatches. - Add
Alternatives
extension (short from "alternative paths"), which is responsible for parsing build commands that create "identical" file copies: ln, cp, install, etc. It provides an API for the following things:- getting all known alternative paths for a given file: all its symlinks, copies and hard links.
- getting a canonical representation for a given path, which will be the same for all identical files.
- All paths in Clade are replaced by their canonical versions, obtained through
Alternatives
extension. - Add
Install
extension (/usr/bin/install). - Report total number of failed commands in
Info
. CmdGraph
is a bit faster now.- Add support for GCC linker commands.
- Improve option parsing for all
Linker
commands. - Decrease number of temporary files stored by
Info
extension. - Improve error reporting for
Functions
,Callgraph
,CrossRef
. - Other small changes and improvements.
This release is not compatible with the previous one, as there are some changes in the internal data format.