Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

DOOM-rosetta check 7: get the 17 call-graph-failing ports to pass

Đang mở
#6,266 13 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
20/100
Loại issue
Tính năng
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Lĩnh vực
testing, tooling

Hướng nghiên cứu

Start by reading tests/tools/doom_speedrun/doom_scorer.py and the callgraph oracle paths named in the issue, then run the per-port shape breakdown for the licensed ports. Use the listed source examples to decide whether each shape needs an engine or oracle fix, and add a test for each shape class. Done means all 17 ports reach zero misses and scored engine-only edges, their manifest entries are updated, and the nightly run and PERFECT count are reported.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

core-engine lane:nyx needs:doom-corpus priority: high scope:frontier

Goal (owner 2026-10-23)

Finish the DOOM call-graph work: every port that fails DOOM-rosetta check 7 (callgraph) passes it, so callgraph leaves expected_fails in tests/doom_rosetta/manifest.csv port by port and the seven-check PERFECT count goes from 27/44 to 44/44.

A port passes check 7 when callgraph_misses = 0 and callgraph_engine_only (scored kinds only) = 0 (tests/tools/doom_speedrun/doom_scorer.py callgraph_check). Unscored engine-only kinds (type, function-pointer; the #5874 open question) do not fail the check and are out of scope here.

The 17 failing ports (golden on main, 2026-10-23)

Port Oracle Recall Precision Misses Scored engine-only
srb2 C body 0.9318 0.9636 1358 646
doomsday C/C++ body 0.9750 0.9314 1741 3223
gzdoom C/C++ body 0.9953 0.9483 201 810
odamex C/C++ body 0.9981 0.9673 38 311
doom3-bfg C++ body 0.9996 0.9772 19 340
eternity C/C++ body 0.9982 0.9769 28 175
edge-classic C++ body 0.9963 0.9741 39 150
dsda-doom C body 0.9978 0.9992 24 2
doomretro C body 0.9996 1.0 3 0
prboom-plus C body 1.0 0.9993 0 2
fastdoom C body 0.9997 0.9997 1 0
sqldoom tree-sitter 0.8987 1.0 68 0
helion tree-sitter (C#) 0.9971 0.9579 59 9
mood tree-sitter 0.9598 1.0 9 0
managed-doom tree-sitter (C#) 1.0 0.8234 0 3
cssdoom tree-sitter (JS) 0.9939 1.0 2 0
mochadoom tree-sitter (Java) 0.9998 0.9586 1 0

Method

  1. Shape first. Run callgraph_oracle.py --only <ports> (C/C++) / the ts_callgraph_oracle path (others) on current main and post the per-port, per-shape breakdown (misses by shape, scored engine-only by kind, 2-3 examples each) here as checklist lines: one line per shape class, not per port. Scans of gzdoom/doomsday/srb2 are long: run them in the background and log progress.
  2. Engine or oracle? For each shape, read the source at the examples. A real call the engine misses / a false edge the engine records -> engine fix with a test per shape and a golden re-bless of the affected ports. An oracle mistake (macro expansion, preprocessor branches, a call the oracle misreads) -> oracle fix with a test. Say which in the PR.
  3. Largest shape first, one PR per shape class (<= 5 hand-written files). Each PR updates the goldens it moves; when a port reaches 0/0, drop callgraph from its expected_fails.
  4. Shapes already filed elsewhere: #5640 (shell, Scheme lambda, Lua .., Tcl after }) — tick them there.

Acceptance

  • Per-shape breakdown posted for all 17 ports on current main.
  • Every scored shape class fixed (engine or oracle), each with a test.
  • callgraph gone from expected_fails for all 17 ports; the DOOM-rosetta nightly green with the new golden.
  • Seven-check PERFECT count posted here.

Licensed ports only (callgraph_oracle.LICENSED, manifest licence column). Part of #5457. Related: #5874, #5630, #5640.

🤖 Generated with Claude Code

Ngôn ngữ chính
Python
Star
57
Fork
11
Merge trung bình
1 giờ 5 phút
Pull request đã merge (30 ngày)
976

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của squid-protocol/gitgalaxy

Tất cả issue của squid-protocol/gitgalaxy

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.