DOOM-rosetta: fix the 4 non-PERFECT ports (doomsday + doom-ios .h language, cssdoom + sqldoom function counts)

クローズ
#5,876 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
45/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
c, css, javascript, objective-c, postgresql, python, sql
領域
testing, tooling

調査の方向性

Start with tests/doom_rosetta/manifest.csv and the golden data in tests/golden_doom_rosetta/; inspect the disputed files and compare the five cssdoom and six sqldoom function-count deltas against ctags. Read CLAUDE.md before deciding which tool is correct, then check the referenced Objective-C work (#5639, #5777, #5795) for the .h rule. Done when each port passes with its expected failure removed, or a documented counting convention justifies retaining the entry.

索引モデルが issue の本文から書いたものです。

説明

claim:nyx lane:nyx

Problem

4 of the 44 DOOM-rosetta ports are not PERFECT. Each one is listed in expected_fails in tests/doom_rosetta/manifest.csv, so the golden passes, but no issue tracks fixing them. Numbers are from the goldens on main (tests/golden_doom_rosetta/).

Port Fails Detail
doomsday language 1 wrong-language file. libs/gui/src/text/fonts_macx.h is labelled objective-c, but the file contains no ObjC syntax (no @interface/@class/@protocol/#import/@end). Separately, the function count is +14.8% vs ctags (25618 vs 22324, 550 files differ); that check still passes, so read it before trusting it.
doom-ios language 5 wrong-language files in the golden, up from 2 on 2026-10-19 (code/iphone/IBGlue.h and code/iphone/iphone_email.h then). Neither of those has ObjC syntax. Check whether the overnight ObjC work (#5639, #5777, #5795) widened the .h → objective-c rule.
cssdoom functions JavaScript and CSS reimplementation: 225 functions vs 215 ctags (+4.7%, over the 3% bar), 5 files differ.
sqldoom functions PostgreSQL and Python: 419 vs 376 ctags (+11.4%), 6 files differ. The SQL work in #5622, #5635 and #5736 probably moved this.

Change

One slice per port, smallest first. Read the disputed files before calling either tool right (CLAUDE.md: agreement is not correctness).

  1. .h language (doomsday, doom-ios): a .h gets objective-c only when it carries ObjC syntax. A macOS- or iPhone-flavoured name or neighbouring .m files alone must not decide it. Add a fixture with our own code, not the port's.
  2. cssdoom functions: list the 5 mismatched files and classify each delta (arrow functions, class methods, object-literal methods, what ctags counts). Fix the engine if it is an engine bug; otherwise record the convention and why.
  3. sqldoom functions: the same for its 6 files (CREATE FUNCTION/PROCEDURE, DO blocks, Python helpers).
  4. For each fixed port, remove its expected_fails entry and re-bless only its golden, with the drift explained in the PR body.

Acceptance

  • All four ports have an empty expected_fails and the golden passes, or a port whose remaining delta is ruled a counting convention keeps its entry with a comment linking that ruling.
  • The six-check PERFECT count is 44/44 (or 44 minus the ruled ports).

Part of #5457. Related: #5619, #5874 (adds the call-graph check).

主要言語
Python
スター
57
フォーク
11
平均マージ
1時間 26分
マージ済み PR(30日)
974

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

squid-protocol/gitgalaxy のほかの issue

squid-protocol/gitgalaxy の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。