RustでSGI Indyエミュレータを作った(AIと一緒に)
まとめ
- SGI Indy(MIPS R4400)向けRustエミュレータ。IRIX 6.5および5.3をネットワーク・X11/Newportグラフィックス対応で起動可能。オプションでCranelift JITも利用でき、主にClaudeとGeminiを活用して開発された。
注目ポイント
- Cranelift JITは3段階構成で、MIPSの基本ブロックをALU演算のみ→ロード対応→フル対応へと昇格させる。ホットブロックのプロファイルはセッション間で保存され、次回起動時の即時ウォームアップを実現。
-
REX3グラフィックスのJITは、ユニークな
(DrawMode0, DrawMode1)ペアごとにネイティブシェーダーをコンパイルし、座標ステッピング・クリッピング・シェードDDA・パターンアドバンスをインライン展開する。 -
コピーオンライトのディスクオーバーレイにより、ベースの
.rawイメージは読み取り専用のまま維持され、書き込みはスパースオーバーレイへ。開発・テスト中のファイルシステム破損を防ぐ。 -
rules/ディレクトリには、JITディスパッチとIRIXデバッグで得た知見が明示的に記録されており、人間のコントリビューターとAIアシスタントの両方を対象としている。 -
IRIXターミナル入力の安定性を確保するには、マウスがキャプチャされるウィンドウよりもポートフォワーディング+
telnet 127.0.0.1:2323が推奨される。
Hacker Newsコメント動向
- まだ実質的な議論は少なく、初期反応は短くポジティブなものが中心。エミュレーション精度・JITの正確性・AIによるコード品質についての技術的な議論は見られない。
注目コメント
-
@eb0la: エミュレータ内で
hinvを実行し、古いSGI IRIXのCDを復元して実機との出力を比較したいとのこと。
英語版: Show HN: My friend and his AI homies wrote SGI Indy emulator in Rust · Original source