"Fast Kernel Headers" Tree -v1: Eliminate the Linux kernel's "Dependency Hell"

This page summarizes the projects mentioned and recommended in the original post on /r/cpp

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • include-what-you-use

    A tool for use with clang to analyze #includes in C and C++ source files

    This is crazy amount of work and a crazy result. Is anyone familiar with tools that would guard against ending up in a situation like this? Google's Include What You Use comes to mind but I don't know of anything else.

  • stl-header-heft

    Measures how parsing overweight the major STLs have become

    The older I get the more I think #include in public headers needs to have a whitelisted regex git push filter, and the permitted whitelist of permitted includes is small and excludes most of the standard library. https://github.com/ned14/stl-header-heft, after all.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

  • zapcc

    zapcc is a caching C++ compiler based on clang, designed to perform faster compilations

    C++ modules helps with the parsing problem similar to precompiled headers, but it doesn't help with the code execution at compile time problem. All your overload matching, free function lookup, SFINAE, concept matching, and consteval code needs executing and that can take very considerable time. Other than JITing all that stuff, and maybe running an in-memory server like https://github.com/yrnkrn/zapcc, I don't know what more can be done here.

  • ClangBuildAnalyzer

    Clang build analysis tool using -ftime-trace

    https://github.com/aras-p/ClangBuildAnalyzer is a very useful tool to quantify the cost of different headers (and other costly parts of the compile such as template instantiations). It doesn’t help with actually fixing such problems, but it’s a pretty good ruler to measure where the time is spent.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts