Files
hakorune/docs/private/papers/paper-i-development-chronicles/daily-decisions-sample.md
Selfhosting Dev 94d95dfbcd 🚀 Break/Continue/Try-Catch構文のサポート追加とMIRループ制御強化
## 主な変更点

### 🎯 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>
2025-09-15 22:14:42 +09:00

3.9 KiB
Raw Blame History

日々の重要決定サンプル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個

パターン分析

  1. AIの複雑提案 → 人間の単純化: 70%
  2. 人間の直感 → 正解: 85%
  3. 哲学優先の決定: 95%
  4. 後で変更した決定: 5%以下

考察

「1日10個の濃い会話」は誇張ではなく、むしろ控えめな表現。実際には細かい決定を含めると1日20-30個の判断を行っていた。この密度の高い意思決定の積み重ねが、45日という短期間での言語完成を可能にした。