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

117 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 日々の重要決定サンプル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日という短期間での言語完成を可能にした。