Skip to content

Releases: 17451k/clade

v4.1

05 Oct 11:11
Compare
Choose a tag to compare

This release is not compatible with the previous one, as there are some changes in the internal data format.

Changes:

  • Add support for Python 3.12. Drop support for Python 3.7
  • Fix performance issues introduced with Clade 4.0, which included excessive RAM usage and slow operation on large projects
  • Fix CIF errors which were reported by Info extension on recent version of the Linux kernel
  • Reduce the size of files generated by Info extension
  • Improve accuracy of CmdGraph extension on selected projects
  • Multiple improvements in the clade-trace and clade-file-graph visualization scripts
  • Add more documentation
  • Replace ujson with orjson to speed up internal data operations
  • Miscellaneous fixes and improvements

Changes to the internal data format include:

  • Storing command identifiers as integers (they were strings before)
  • Storing line numbers as integers (they were strings before)
  • Changing the way Callgraph, Functions, Macros, CallsByPtr, UsedIn store their data

v4.0.4

22 Dec 13:56
Compare
Choose a tag to compare

Changes:

  • Always choose shortest possible path in get_canonical_path()

v4.0.3

21 Dec 11:35
Compare
Choose a tag to compare

Changes:

  • Add get_canonical_path() method to the public API
  • Support deleted files in LN

v4.0.2

13 Dec 16:55
Compare
Choose a tag to compare

Changes:

  • Return base_print configuration preset, to keep Clade backwards compatible. Functionally, it is now equivalent to the base preset

v4.0.1

13 Dec 16:48
Compare
Choose a tag to compare

Changes:

  • Introduce clade-file-graph script to create a file graph (using Graphviz) based on input and output of intercepted commands. The nodes of the graph can be filtered using several command line options
  • Introduce clade-pid-graph script to create a pid graph based on ids and parent ids of intercepted commands. Previously this functionality was available through PidGraph.as_picture configuration option
  • Fix an issue with printing .pdf files that visualise large LN commands
  • Add -mcpu to the list of options supported by CIF
  • Add ability to extend list of options supported by CIF via configuration
  • Remove base_print configuration preset.
  • Small speed optimisations

v4.0

02 Dec 17:19
Compare
Choose a tag to compare

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.

v3.6.1

14 Nov 10:05
Compare
Choose a tag to compare
  • Support Python 3.11. Since cchardet is no longer maintained and broken, it was replaced with charset_normalizer. Benefits: pure Python, same speed, more accurate
  • Add extension for parsing ln commands
  • Handle possible symlinks to .h and .c files in SrcGraph
  • Minor fixes and improvements

v3.6

07 Jul 13:37
Compare
Choose a tag to compare

Changes:

  • Support ccache commands
  • Fix incorrect parent ids for some intercepted commands
  • Improve LD support for macOS

This release is not entirely compatible with the previous one, there are some changes in the way CIF parses its options

v3.5.1

21 Jun 21:35
Compare
Choose a tag to compare
  • Add preliminary ccache support
  • Improve parsing of macOS LD commands

v3.5

08 Jun 10:20
Compare
Choose a tag to compare

Changes:

  • Better track progress for various time-consuming tasks at Clade
  • Remove duplicate entries in dependencies lists of CC commands
  • Handle permission errors which can happen if you have antivirus software
  • Remove warning for incompatible working directory if it is empty
  • Handle relative paths to the CC compilers
  • Add ability to write custom aspect files for your projects (INFO extension)

This release is not compatible with the previous one, there are some changes in the internal data format.