Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Call graph (Rust/Go): Rust macro invocations linked to a same-named fn, calls inside Rust struct literals / vec![] args missed, Go generic instantiation call missed

Aperta
#5,634 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
go, python, rust

Direzione di ricerca

Start by reading callcheck_rustgo2.py and gore_vs_linuxdoom.py in /srv/storage_16tb/projects/gitgalaxy/doom-study/study-prototype/, then trace call-graph extraction and oracle checks for Rust macros, struct literals, nested macro arguments, and Go generic instantiation. Use the cited Rust and Go locations as regression cases. Done means each shape has a focused test, the #5630 oracle reports zero misses or false calls, and any changed goldens include an explained drift.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug core-engine metrics needs:doom-corpus priority: low scope:core

Problem

Independent body oracle on the licensed Rust/Go DOOM ports (engine 0e2bf4ade) finds Rust/Go call graphs very accurate (recall 0.999 on rust-doom, room4doom and gore; precision 1.000 on rust-doom and gore, ~0.998 on room4doom), with these small shapes:

  1. Rust macro invocation recorded as a call to an unrelated same-named function (room4doom, 29 edges): write!(f, ...) inside fmt (expands to f.write_fmt(...)) becomes fmt -> write, linking to the crate's own write fn, e.g. game-config/src/lib.rs:30, gameplay/src/save.rs:63, gamestate-traits/src/keys.rs:154. A name!(...) invocation should not resolve to a function name.
  2. Rust calls inside struct-literal fields and macro arguments missed (room4doom, ~10): render/backend/src/lib.rs:448 upload_ui: pixels: as_u32_slice(s.pixels()), w: s.width(), h: s.height() inside a struct literal; tools/editor-core/src/texture_lumps.rs:152,197,221: encode_texture_lumps(&[vec![def(...)]]); tools/geom-kernel/src/name8.rs:130: Name8::new( in a nested visitor impl.
  3. Go generic instantiation call missed (gore, 1): doom.go:33305 r_InitSpriteLumps: patch := w_CacheLumpNumT[*patch_t](...).

Context: gore vs linuxdoom cross-language consensus (625 shared functions, 1,233 shared edges, Jaccard 0.90) found 0 engine misses on either side; all 134 differing edges are real code differences (C macros FTOM/MTOF vs explicit FixedMul calls in Go, refactors).

Acceptance

  • Tests per shape; the #5630 oracle reports 0 for them on the licensed Rust/Go ports; goldens with drift explained.

Prototype: /srv/storage_16tb/projects/gitgalaxy/doom-study/study-prototype/callcheck_rustgo2.py, gore_vs_linuxdoom.py.

🤖 Generated with Claude Code

Lingua principale
Python
Stelle
57
Fork
11
Merge medio
1h 41m
PR unite (30g)
978

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di squid-protocol/gitgalaxy

Tutte le issue di squid-protocol/gitgalaxy

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.