DOOM study write-up: lineage survival vs linuxdoom across all ports + cross-language subsystem comparison (engine metric calibration)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 24/100
Direzione di ricerca
Start with tests/tools/doom_speedrun/manifest.csv, the existing round-1 survival.py and canonical.py, and the harness scan outputs. Port the scripts into the suggested tests/tools/doom_speedrun/lineage.py or tests/doom_crucible/ location, then define the documented lineage and cross-language metrics. Done means one pinned-corpus command regenerates every requested table, docs/research/doom-port-study.md reports only reproducible measurements, and each calibration finding is filed with evidence.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Goal
Produce the analysis the DOOM study was for: how much of id Software's 1997 linuxdoom survives in each port, how ports diverge, and how the same subsystems look across languages. It doubles as an engine check: are GitGalaxy's metrics comparable across languages? (If a Go or COBOL renderer scores wildly differently from the C original for the same algorithm, that is an engine calibration finding.)
Inputs
- Corpus:
tests/tools/doom_speedrun/manifest.csv(39 ports; moving totests/doom_crucible/with #5619) plus the ports added by the manifest-expansion issue (COBOL, Python, SQL, web...). - Round-1 method (16 ports, C-family only, engine
a8510fc07), local on nyx at/srv/storage_16tb/projects/gitgalaxy/doom-study/scripts/survival.py+canonical.py: function bodies sliced by engine boundaries, normalised, sha1 + difflib similarity vs linuxdoom's 659 functions, per subsystem (renderer, playsim, menus, netcode, ...). Example result: chocolate-doom keeps 86.6% of linuxdoom function names, 35.1% exact bodies; doomretro 68.9% names, 0.2% exact.
Work
- Port the round-1 scripts into the repo as our own tool (
tests/tools/doom_speedrun/lineage.pyor undertests/doom_crucible/), reading the harness scans; rerun on all ports at current main. - Lineage table: per port, survival of linuxdoom names / exact bodies / near (>=0.9) / derived (>=0.6), per subsystem; checked against each port's stated lineage in the manifest (does Chocolate -> Crispy -> inter-doom show monotone drift? do rewrites show ~0 exact bodies but high name survival?).
- Cross-language: map subsystems by file/function-name families (r_* renderer, p_* playsim, m_* menu...), then compare per subsystem across C / C++ / C# / Java / Go / Rust / COBOL / Python: function count, LOC, cyclomatic complexity, call fan-out. Report where the engine's metrics are comparable and where they are not, with the language-specific reason; file an engine issue for each calibration defect found.
- Write-up:
docs/research/doom-port-study.md, measurements only (third-party policy: no code, no reconstructions, brief quotes with attribution), every number reproducible by one command; per-port clean-scan table before/after the fixes (round 2585c243e9-> current).
Acceptance
- One command regenerates every table from the pinned corpus.
- Lineage for all C-family ports + name-level lineage for the rewrites; cross-language subsystem table including at least C, C++, C#, Java, Go, Rust, and COBOL/Python once added.
- Calibration findings filed as issues (or "none found", with the evidence).
Part of #5457.
🤖 Generated with Claude Code
- Lingua principale
- Python
- Stelle
- 57
- Fork
- 11
- Merge medio
- 1h 41m
- PR unite (30g)
- 978
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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 squid-protocol/gitgalaxy
-
lane:nyx needs:corpus priority: medium testing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
squid-protocol/gitgalaxy#5784 ·
I maintainer di solito rispondono entro 1 giorno
-
lane:nyx needs:corpus priority: medium testing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
squid-protocol/gitgalaxy#5783 ·
I maintainer di solito rispondono entro 1 giorno
-
keyword-rosetta: ACS (acs) has no control folder; author data/acs/ and backfill its cost recordApertalane:nyx needs:corpus priority: medium testing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
squid-protocol/gitgalaxy#5782 ·
I maintainer di solito rispondono entro 1 giorno
-
lane:nyx needs:corpus priority: medium testing
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
squid-protocol/gitgalaxy#5781 ·
I maintainer di solito rispondono entro 1 giorno
-
keyword-rosetta: F# (fsharp) has no control folder; author data/fsharp/ and backfill its cost recordApertalane:nyx needs:corpus priority: medium testing
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
squid-protocol/gitgalaxy#5780 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di squid-protocol/gitgalaxy
Issue simili
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
good first issue module-baseline needs triage ux
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
darnitdevorg/darnit#650 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
nyjc-computing/campus#938 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
nf-osi/nf-metadata-dictionary#1027 ·
I maintainer di solito rispondono entro 1 giorno
-
bug documentation
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
qatrackplus/qatrackplus#913 ·
I maintainer di solito rispondono entro 3 giorni