iwyu: --check_also=*.h ?
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- cmake, cpp
- Ambito
- build-system, tooling
Direzione di ricerca
Inizia con l'impostazione CMake CMAKE_CXX_INCLUDE_WHAT_YOU_USE e gli header in include/mp, in particolare type-string.h e proxy-io.h. Esegui IWYU con --check_also per inventariare gli include mancanti o non necessari, quindi valuta i falsi positivi segnalati e se sia necessario un file di mapping. Il lavoro è completato quando gli header sono stati verificati e la configurazione di CI passa senza falsi positivi irrisolti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Copied from a review comment:
The CI runs IWYU and it only audits "the input .cc file and its associated .h files" (e.g. foo.cpp also checks foo.h). type-string.h has no matching .cpp so it isn't audited.
- set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${IWYU_EXECUTABLE};-Xiwyu;--error")
+ set(CMAKE_CXX_INCLUDE_WHAT_YOU_USE "${IWYU_EXECUTABLE};-Xiwyu;--error;-Xiwyu;--check_also=${PROJECT_SOURCE_DIR}/include/mp/*.h")
With the above diff it checks the headers too and can check for type-string.h. (Bitcoin core also uses --check_also for primitive headers):
/home/vinicius/Code/my/libmultiprocess/include/mp/type-string.h should add these lines:
#include <string> // for string
namespace mp { struct InvokeContext; }
/home/vinicius/Code/my/libmultiprocess/include/mp/type-string.h should remove these lines:
- #include <ranges> // lines 11-11
It also flag a lot of what there is currently (10+ header files) and can also make false positives: note the #include <variant> // for tuple which doens't make sense for proxy-io.h:
/home/vinicius/Code/my/libmultiprocess/include/mp/proxy-io.h should add these lines:
#include <capnp/capability.h> // for Capability, CallContext, Capab...
#include <capnp/common.h> // for Void, word
#include <capnp/message.h> // for MallocMessageBuilder, ReaderOp...
#include <capnp/rpc-twoparty.capnp.h> // for VatId, Side, Side_9fd69ebc87b9...
#include <capnp/rpc.h> // for RpcSystem, makeRpcClient, make...
#include <kj/async-io.h> // for LowLevelAsyncIoProvider, Async...
#include <kj/async-prelude.h> // for ReadyNow
#include <kj/async.h> // for TaskSet, Promise, READY_NOW
#include <kj/common.h> // for mv, ArrayPtr, KJ_IF_MAYBE, Maybe
#include <kj/exception.h> // for runCatchingExceptions, Exception
#include <kj/memory.h> // for Own, heap
#include <kj/string.h> // for KJ_STRINGIFY, StringPtr
#include <list> // for _List_iterator, list, _List_co...
#include <tuple> // for tuple
#include <utility> // for forward, move
#include <variant> // for tuple
#include <vector> // for vector
namespace mp { class Connection; }
namespace mp { class EventLoop; }
namespace mp { template <typename Interface> struct ProxyClient; }
namespace mp { template <typename Interface> struct ProxyServer; }
So I believe this isn't a one line fix, it would require a one-time PR to manually audit and fix and map the false positives in a mapping file and then enabling --check_also and --mapping_file with the mapping file to handle false positives on the CI. Maybe this is not worth effort.
This is just what I found poking around, if there's a better way id like to hear it.
Originally posted by @ViniciusCestarii in https://github.com/bitcoin-core/libmultiprocess/pull/307#discussion_r3605683715
- Lingua principale
- C++
- Stelle
- 62
- Fork
- 58
- Merge medio
- 6g 11h
- PR unite (30g)
- 7
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bitcoin-core/libmultiprocess
-
Listeners can't be stopped, so bitcoin-node can hang after shutdown when an IPC client reconnectsApertabug
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
bitcoin-core/libmultiprocess#385 ·
I maintainer di solito rispondono entro 1 giorno
-
ListenConnections stops listening for good after one temporary accept() failure such as EMFILEApertabug hardening
Difficoltà 3/5 1-2 giorni Idoneità per principianti 57/100
bitcoin-core/libmultiprocess#384 ·
I maintainer di solito rispondono entro 1 giorno
-
Calling an IPC object after or during destroy() makes the server use a null or freed implementationForse già presa @xyzconstant l’ha presa 10 giorni fa. Apertabug hardening
Difficoltà 4/5 3-5 giorni Idoneità per principianti 40/100
bitcoin-core/libmultiprocess#378 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
bitcoin-core/libmultiprocess#328 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
bitcoin-core/libmultiprocess#284 · 6 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di bitcoin-core/libmultiprocess
Issue simili
-
bug libcudf
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
level/task module/cloud monitoring type/maintenance
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
LadybirdBrowser/ladybird#13809 ·
I maintainer di solito rispondono entro 1 giorno
-
bug module:nodes tests
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
rocketride-org/rocketride-server#3020 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 9 giorni