Skip to content

Releases: aras-p/ClangBuildAnalyzer

1.5.0: Improved "Expensive headers" info

13 Aug 20:10
Compare
Choose a tag to compare

Previously, the "expensive headers" section listed several individual include paths to a particular header, all the way from some source file. But that does not help much to figure out how a popular header is most often included. So now, for each expensive header it lists what are the most-happening include chains to it. For example:

261580 ms: /usr/include/c++/v1/algorithm (included 3389 times, avg 77 ms), included via:
  341x: BKE_context.h BLI_string_ref.hh string
  180x: DNA_mesh_types.h BLI_math_vector_types.hh array
  125x: DNA_space_types.h DNA_node_types.h DNA_node_tree_interface_types.h BLI_function_ref.hh BLI_memory_utils.hh

says that <algorithm> was included 3389 times in total, and most often via: 341 times because something included BKE_context.h (which in turn includes BLI_string_ref.hh which included <string> which in turn included <algorithm>), then 180 times because something included DNA_mesh_types.h and so on.

1.4.1 (2023 Aug): Fix some STL headers not being reported

10 Aug 12:38
Compare
Choose a tag to compare

Fixed the case when STL headers that are without extension (e.g. <vector>), when being installed in path that has a . somewhere in the folder names, were not correctly included into "expensive headers" report.

1.4.0 (2022 Mar): Improvements & Fixes

10 Mar 08:07
a41698a
Compare
Choose a tag to compare

Improvements

  • Add --version argument (#82)

Fixes

  • Normalize include paths, to stop headers being included via different relative paths reported as different headers (#84, #83)

Full Changelog: v1.3.0...v1.4.0

1.3.0 (2022 Jan): Improvements & Fixes

13 Jan 08:46
4740698
Compare
Choose a tag to compare

Improvements

  • Add --all option to parse all JSON files (#47)
  • Improve support for recent LLVM/Clang versions (12.x, 13.x) (#80)

Fixes

  • Fix analyzing massive builds (#38)
  • Fix handling of symbolic links while scanning for json files (#58)
  • Fix memory leak in buffered writer (#65)

Build & Internal

  • Fix builds with more recent C++ compiler / STL versions (#53)
  • CMake fixes and tweaks (#42, #62, #64)
  • Update to a more recent simdjson version (#52, #54)
  • Fix compile warnings (#39, #66) and general massaging of the code (#78)
  • Github Actions CI improvements (#70)
  • Main branch is now called main

Full Changelog: v1.2.0...v1.3.0

1.2.0 (2020 Mar): Optimizations for Large Builds

02 Mar 19:10
5b2550e
Compare
Choose a tag to compare

3x faster, 15x lower memory usage, 4x smaller file size.

However, changed file format of data files produced by --stop and used by --analyze (was JSON before, now binary).

Data file stores deduplicated strings, JSON file processing is multi-threaded, switched to faster JSON parser, improved hash tables, other general optimizations.

See PR #37 for details.

1.1.0 (2020 Feb): Improvements & fixes

02 Mar 09:20
Compare
Choose a tag to compare

Improvements:

  • Print stats for template sets (i.e. all instantiations of a particular template) (#17, #24).
  • Support Clang 10 (#23), Clang 11 (77c97), and allow different clang executable names (#34).
  • Added CMake build scripts (#31, #35).

Fixes:

  • Support longer file extensions (#27).
  • Fix Linux Clang 9 build (#18).
  • Support out-of-tree builds with make (#16), and respect LDFLAGS (#29).
  • Fix getcwd usage (#32).

1.0.0 (2019 Sep): Initial release

02 Mar 09:06
Compare
Choose a tag to compare

Initial release that corresponds to the blog post.