Call-graph validation for C/C++: independent body oracle + family consensus on the DOOM corpus (the Graph Accuracy Audit only covers Python/TS/Java)
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Start with the proposed tests/tools/doom_speedrun/callgraph_oracle.py and the DOOM Crucible integration in #5619; the issue identifies the licensed ports and the source-body, tree-sitter, and family-consensus checks to implement. Use the existing validation entry points as the first place to trace how nightly tests and recall/precision thresholds are configured. Done means the repository tool runs with one command, publishes a baseline, covers the identified call shapes, and fails the nightly on regressions.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Why
Structural extraction is checked against ctags, tree-sitter and libclang; C/C++ call graphs have no independent check (the Graph Accuracy Audit compares against pyan3, the TypeScript checker and scip-java; the C/C++ reference, #3784, is open). A first pass on the DOOM corpus found two engine defects with thousands of edges each (filed alongside this issue) within an hour.
Method (prototype on nyx, /srv/storage_16tb/projects/gitgalaxy/doom-study/)
- Independent body oracle: for each engine function, the brace-matched body from source (comments, strings, preprocessor lines stripped), every
defined_name(call; compare withcalls_out_torestricted to defined names. linuxdoom: 1,597/1,597 calls agree (recall 1.000, precision 1.000 apart from recursion); chocolate-doom 12,132 calls, 3 misses (a call inside--Vars[ReadMapVar(...)]). Use tree-sittercall_expressionrather than regex for C++ (regex mistakesstd::unique_lock<...> lock(for a call and missesf<T>(). - Family consensus: near-identical ports (linuxdoom, doomgeneric, doom-ascii, sdl-doom, PureDOOM, Chocolate, Crispy, doom-wasm, inter-doom) vote on each edge; a port that defines both ends but lacks an edge most siblings have is checked against its source. First pass: 306 holes, 304 real divergences, 2 engine misses (
R_PointToAngle -> SlopeDivpassed as a function pointer). - Report per port and per shape (statement, nested argument, condition/return, after cast, after operator, subscript, function pointer, macro), recall/precision, with examples; licensed ports only.
- Wire into the DOOM Crucible nightly (#5619) with thresholds, and a libclang call-reference (#3784) on the C subset when it lands.
Acceptance
- Tool in the repo (
tests/tools/doom_speedrun/callgraph_oracle.pyor the crucible), one command, licensed ports. - Baseline published on this issue; every new defect shape gets its own issue.
- Nightly fails on a recall/precision regression.
Found by the DOOM corpus call-graph consensus check (#5620, #5457): near-identical ports vote on each call edge, and an independent body oracle re-extracts calls from source. Licensed ports only.
🤖 Generated with Claude Code
- Lenguaje dominante
- Python
- Estrellas
- 57
- Forks
- 11
- Merge medio
- 1 h 20 min
- PR fusionados (30 d)
- 985
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de squid-protocol/gitgalaxy
-
claim:nyx enhancement priority: high scope:infra
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
squid-protocol/gitgalaxy#6278 · 3 comentarios ·
Los mantenedores suelen responder en 1 día
-
claim:melek enhancement era:2 legacy-modernization priority: high scope:core testing
Dificultad 5/5 Más de una semana Aptitud para principiantes 24/100
squid-protocol/gitgalaxy#6271 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
claim:nyx core-engine lane:nyx needs:doom-corpus priority: high scope:frontier
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
squid-protocol/gitgalaxy#6266 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
-
claim:nyx enhancement scope:sweep testing
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
squid-protocol/gitgalaxy#6262 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
scope:infra security
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
squid-protocol/gitgalaxy#6239 ·
Los mantenedores suelen responder en 1 día
Todos los issues de squid-protocol/gitgalaxy
Issues similares
-
type-bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
push_gh-pages fails on master branch on forksPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertogood first issue infrastructure
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
kuznia-rdzeni/coreblocks#1135 ·
-
good first issue server
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
Los mantenedores suelen responder en 1 día
-
documentation priority: high
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
a-lex-s/mealie-telegram-bot#54 ·
Los mantenedores suelen responder en 1 día