Call-graph validation for C/C++: independent body oracle + family consensus on the DOOM corpus (the Graph Accuracy Audit only covers Python/TS/Java)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
調査の方向性
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.
索引モデルが issue の本文から書いたものです。
説明
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
- 主要言語
- Python
- スター
- 57
- フォーク
- 11
- 平均マージ
- 1時間 20分
- マージ済み PR(30日)
- 985
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
squid-protocol/gitgalaxy のほかの issue
-
claim:nyx enhancement priority: high scope:infra
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
squid-protocol/gitgalaxy#6278 · コメント 3 件 ·
メンテナーはふだん 1 日以内に返信
-
claim:melek enhancement era:2 legacy-modernization priority: high scope:core testing
難易度 5/5 1週間以上 初心者へのやさしさ 24/100
squid-protocol/gitgalaxy#6271 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
claim:nyx core-engine lane:nyx needs:doom-corpus priority: high scope:frontier
難易度 5/5 1週間以上 初心者へのやさしさ 20/100
squid-protocol/gitgalaxy#6266 · コメント 6 件 ·
メンテナーはふだん 1 日以内に返信
-
claim:nyx enhancement scope:sweep testing
難易度 4/5 3〜5日 初心者へのやさしさ 38/100
squid-protocol/gitgalaxy#6262 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
scope:infra security
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
squid-protocol/gitgalaxy#6239 ·
メンテナーはふだん 1 日以内に返信
squid-protocol/gitgalaxy の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
AstrBotDevs/AstrBot#10720 ·
メンテナーはふだん 1 日以内に返信
-
fix(xiaomi): curated picker list still offers six ids that return 400 (plan-limited vs retired)オープンcause/upstream comp/cli P2 provider/other tool/file type/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
NousResearch/hermes-agent#143900 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1〜3時間 初心者へのやさしさ 85/100
WLAN-Pi/wlanpi-profiler#341 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
メンテナーはふだん 1 日以内に返信