Skip to main content

iwyu

Follow IWYU guidelines to improve build caching. This entails adding/removing C++

Informações da origem

Repositório
cloudflare/workerd
Última atividade na origem
17 de outubro de 2026 às 01:46
Idioma detectado do SKILL.md
inglês
Estrelas
9.117
Forks
814

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
iwyu
description
Follow IWYU guidelines to improve build caching. This entails adding/removing C++
## IWYU FOR C++ TARGETS Adapted from [include-what-you-use](https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/WhyIWYU.md). Small targets with accurate deps mean a change rebuilds and retests fewer targets. - Don't add `#include`s a file doesn't use or `deps` a target doesn't use. When a change removes the last use of a header, delete its `#include`, then the dep if it's now unused. - Put deps whose headers are included only from `.c++` files in `implementation_deps`, so they don't propagate to dependents. - Prefer direct includes and deps over relying on transitive ones, but don't add a long list just to spell out what you already get transitively. For instance, most workerd C++ sources depend on KJ but we don't declare this dependency for each target separately, or include kj/common.h, kj/string.h and so on each time. Direct includes that are already present and being used should generally stay in place. - Give each `.h`/`.c++` pair its own `wd_cc_library`, named after the file (e.g. `:tracked-wasm-instance`). A header without a `.c++` gets its own target too, with the deps it needs to compile on its own. - Keep each header in exactly one target, together with its `.c++` if it has one. Exposing a header from a target that doesn't build its `.c++` lets code call its functions without depending on their definitions, which shows up later as undefined-symbol link errors. - If splitting a pair out would create a dependency cycle, leave it in its combined target (e.g. `//src/workerd/io`) instead of separating the header from its `.c++`. Don't add new files to such targets if they can have their own.
Ver no GitHub