## 主な変更点 ### 🎯 MIRループ制御の実装(根治対応) - src/mir/loop_builder.rs: Break/Continue対応のループコンテキスト管理 - ループのbreak/continueターゲットブロック追跡 - ネストループの適切な処理 - src/mir/builder.rs: Break/Continue文のMIR生成実装 - src/tokenizer.rs: Break/Continue/Tryトークン認識追加 ### 📝 セルフホストパーサーの拡張 - apps/selfhost-compiler/boxes/parser_box.nyash: - Stage-3: break/continue構文受理(no-op実装) - Stage-3: try-catch-finally構文受理(構文解析のみ) - エラー処理構文の将来対応準備 ### 📚 ドキュメント更新 - 論文K(爆速事件簿): 45事例に更新(4件追加) - PyVM迂回路の混乱事件 - Break/Continue無限ループ事件 - EXE-first戦略の再発見 - 論文I(開発秘話): Day 38の重要決定追加 ### 🧪 テストケース追加 - apps/tests/: ループ制御とPHIのテストケース - nested_loop_inner_break_isolated.nyash - nested_loop_inner_continue_isolated.nyash - loop_phi_one_sided.nyash - shortcircuit関連テスト ## 技術的詳細 - Break/ContinueをMIRレベルで適切に処理 - 無限ループ問題(CPU 99.9%暴走)の根本解決 - 将来の例外処理機能への準備 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
3.9 KiB
3.9 KiB
日々の重要決定サンプル(45日間から抜粋)
Day 1: Everything is Boxの誕生
決定: すべてをBoxで統一する 議論:
- ChatGPT「プリミティブ型は別にしては?」
- にゃー「いや、全部Box!」 結果: IntegerBox, StringBox, BoolBoxも作成 重要度: ⭐⭐⭐
Day 7: 変数宣言の厳密化
決定: すべての変数は明示宣言必須 議論:
- Gemini「型推論で楽にしては?」
- にゃー「明示的な方が分かりやすい」 結果: メモリ安全性向上 重要度: ⭐⭐
Day 15: プラグインBoxライフサイクル事件
決定: プラグインも通常のBoxと同じライフサイクル 議論:
- ChatGPT5「シングルトンが効率的」
- にゃー「こらー!例外作らない!」 結果: 設計の一貫性確立 重要度: ⭐⭐⭐
Day 20: birth統一の決定
決定: コンストラクタ名をすべてbirthに 議論:
- Claude「new/pack/constructorで使い分けは?」
- にゃー「birthで統一!生命を与える」 結果: 哲学的一貫性 重要度: ⭐⭐
Day 23: AIパーサー信じすぎ事件
問題: HTTPプラグインのソケット取得失敗 議論:
- 全AI「プラグインの問題」
- にゃー「パーサーじゃない?」 発見: 参照コピーの基本的バグ 教訓: AIも間違える 重要度: ⭐⭐⭐
Day 28: PyVMという迂回路
決定: Rustビルド地獄回避でPython実装 議論:
- ChatGPT「Rustを最適化しましょう」
- にゃー「Pythonで書いちゃえ」 結果: 開発速度10倍 重要度: ⭐⭐
Day 38 (2025/9/15): EXE-first戦略の再発見
問題: PyVM開発に注力しすぎてセルフホスティング停滞 議論:
- Claude「PyVMは開発ツールで本番じゃない」
- にゃー「なんか遠回りしてる気がしたにゃ」 発見: build_compiler_exe.shが既に完成していた! 結果: Phase 15の方向性明確化 重要度: ⭐⭐⭐
Day 38 (2025/9/15): Break/Continue根治の決定
問題: 無限ループでCPU 99.9%暴走 議論:
- ChatGPT「PyVM回避/JSON v0バイパス/根治の3案」
- Claude「根治が最善、回避策は技術的負債」 決定: MIRコンパイラにBreak/Continue実装 理由: セルフホスティングに必須機能 重要度: ⭐⭐⭐
Day 35: peek式への改名
決定: when→peek(予約語回避) 議論:
- Claude「match/switch/caseは?」
- にゃー「peekがいい!」 結果: 直感的な名前 重要度: ⭐
Day 41: using文のno-op戦略
決定: JSON出力では依存情報を省略 議論:
- にゃー「ファイル分けできないじゃん」
- ChatGPT「Rust層で解決済みです」 理解: 段階的責任移行の美学 重要度: ⭐⭐
Day 43: MIR型情報の再発見
問題: 文字列が0になるバグ 議論:
- ChatGPT5「50分考えます...」
- にゃー「型情報つければ?」 結果: 650行→100行の革命 重要度: ⭐⭐⭐
Day 45: DebugBox構想
決定: デバッグ出力を箱で統一管理 議論:
- ChatGPT「出力フィルタリングで」
- にゃー「DebugBoxで包めば?」 結果: Everything is Box哲学の応用 重要度: ⭐⭐
統計
- 総決定数: 約450個(1日平均10個)
- ⭐⭐⭐(革命的): 15個
- ⭐⭐(重要): 120個
- ⭐(通常): 315個
パターン分析
- AIの複雑提案 → 人間の単純化: 70%
- 人間の直感 → 正解: 85%
- 哲学優先の決定: 95%
- 後で変更した決定: 5%以下
考察
「1日10個の濃い会話」は誇張ではなく、むしろ控えめな表現。実際には細かい決定を含めると1日20-30個の判断を行っていた。この密度の高い意思決定の積み重ねが、45日という短期間での言語完成を可能にした。