Skip to content

v4.0

Compare
Choose a tag to compare
@17451k 17451k released this 02 Dec 17:19
· 55 commits to master since this release

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' and Info 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.