## 主な変更点 ### 🎯 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>
117 lines
3.9 KiB
Markdown
117 lines
3.9 KiB
Markdown
# 日々の重要決定サンプル(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日という短期間での言語完成を可能にした。 |