77d4fd72b3
phase: 20.49 COMPLETE; 20.50 Flow+String minimal reps; 20.51 selfhost v0/v1 minimal (Option A/B); hv1-inline binop/unop/copy; docs + run_all + CURRENT_TASK -> 21.0
2025-11-06 15:41:52 +09:00
510f4cf523
builder/vm: stabilize json_lint_vm under unified calls
...
- Fix condition_fn resolution: Value call path + dev safety + stub injection
- VM bridge: handle Method::birth via BoxCall; ArrayBox push/get/length/set direct bridge
- Receiver safety: pin receiver in method_call_handlers to avoid undefined use across blocks
- Local vars: materialize on declaration (use init ValueId; void for uninit)
- Prefer legacy BoxCall for Array/Map/String/user boxes in emit_box_or_plugin_call (stability-first)
- Test runner: update LLVM hint to llvmlite harness (remove LLVM_SYS_180_PREFIX guidance)
- Docs/roadmap: update CURRENT_TASK with unified default-ON + guards
Note: NYASH_DEV_BIRTH_INJECT_BUILTINS=1 can re-enable builtin birth() injection during migration.
2025-09-28 12:19:49 +09:00
34be7d2d79
vm/router: minimal special-method extension (equals/1); toString mapping kept
...
mir: add TypeCertainty to Callee::Method (diagnostic only); plumb through builder/JSON/printer; backends ignore behaviorally
using: confirm unified prelude resolver entry for all runner modes
docs: update Callee architecture with certainty; update call-instructions; CURRENT_TASK note
tests: quick 40/40 PASS; integration (LLVM) 17/17 PASS
2025-09-28 01:33:58 +09:00
cb236b7f5a
json(vm): fix birth dispatch; unify constructor naming (Box.birth/N); JsonNode factories return JsonNodeInstance; quick: enable heavy JSON with probe; builder: NYASH_BUILDER_DEBUG_LIMIT guard; json_query_min(core) harness; docs/tasks updated
2025-09-27 08:45:25 +09:00
041cef875a
json-native: token positions (line/column); escape utils BMP coverage + surrogate guard; add smokes for string escapes, nested, and error cases (AST/VM)
2025-09-26 00:42:55 +09:00
d9f26d4549
feat: nyash.toml SSOT + using AST統合完了(12時間の戦い)
...
- nyash.tomlを唯一の真実(SSOT)として依存管理確立
- dev/ci/prodプロファイルによる段階的厳格化実装
- AST結合で宣言/式の曖昧性を根本解決
- Fail-Fast原則をCLAUDE.md/AGENTS.mdに明文化
- VM fallbackでもASTベース using有効化(NYASH_USING_AST=1)
- 静的メソッドの is_static=true 修正で解決安定化
- STATICブレークハック既定OFF化で堅牢性向上
🎉 usingシステム完全体への道筋確立!JSONライブラリ・Nyash VM開発が可能に
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-25 16:03:29 +09:00
c0978634d9
feat: using system完全実装+旧スモークテストアーカイブ完了
...
✅ using nyashstd完全動作(ChatGPT実装)
- builtin:nyashstd自動解決
- 環境変数不要でデフォルト有効
- console.log等の基本機能完備
✅ Fixture plugin追加(テスト用最小構成)
✅ v2スモークテスト構造への移行
✅ 旧tools/test/smoke/削除(100+ファイル)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 21:45:27 +09:00
f4fe548787
feat: Phase 2.4 NyRT→NyKernel Architecture Revolution 100%完了!
...
ChatGPT5 Pro設計分析による42%コード削減の完全実現:
- crates/nyrt → crates/nyash_kernel 完全移行
- with_legacy_vm_args系統11箇所削除(encode/birth/future/invoke系)
- Plugin-First Architecture統一(VM依存根絶)
- libnyash_kernel.a生成成功(0エラー・0警告)
- LLVM統合更新(build_llvm.sh, ny-llvmc対応)
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 12:57:33 +09:00
95382bcaab
feat: Phase 2.2 LLVM静的プラグイン検証完了!nyrt設計真実解明
...
✅ **Phase 2.2達成項目**:
- LLVMスモークテスト完全成功(1648バイト生成)
- プラグイン統合動作確認(StringBox/IntegerBox@LLVM)
- 静的コンパイル核心技術実証(MIR→LLVM→オブジェクト)
- Everything is Plugin革命のLLVM対応確認
🔍 **Task先生nyrt調査成果**:
- nyrt正体解明:AOT/LLVMランタイム必須インフラ
- 機能分類:58%必須(ハンドル・GC・エントリー)42%代替可能
- 設計一貫性:75%達成(Box操作完全プラグイン化)
- 削減戦略:Phase A実装で26個関数→プラグイン統合(42%削減)
🎯 **Everything is Plugin完全実現への道筋**:
- 現状:プラグインファクトリー(StrictPluginFirst)完全動作
- 課題:nyrt中央集権 vs プラグイン哲学の矛盾
- 解決:Hybrid Plugin Architecture推進
- 目標:String/Box API→プラグイン統合で設計一貫性完成
📊 **技術的成果**:
- LLVM static plugin integration: ✅ 完全動作
- Plugin priority system: ✅ 完全動作
- Object code generation: ✅ 実証済み
- nyrt architectural analysis: ✅ 完全解明
🚀 **Phase 15.5革命基盤確立**: プラグイン優先アーキテクチャ実用化完了
次段階Phase 2.3でビルトインBox段階削除+nyrt Plugin統合推進へ
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 12:22:08 +09:00
73b90a7c28
feat: スモークテストv2実装&Phase 15.5後のプラグイン対応
...
Phase 15.5 Core Box削除後の新テストシステム構築:
## 実装内容
- スモークテストv2システム完全実装(3段階プロファイル)
- 共通ライブラリ(test_runner/plugin_manager/result_checker/preflight)
- インタープリター層完全削除(約350行)
- PyVM重要インフラ特化保持戦略(JSON v0ブリッジ専用)
- nyash.tomlパス修正(13箇所、プラグイン正常ロード確認)
## 動作確認済み
- 基本算術演算(+, -, *, /)
- 制御構文(if, loop, break, continue)
- 変数代入とスコープ
- プラグインロード(20個の.soファイル)
## 既知の問題
- StringBox/IntegerBoxメソッドが動作しない
- オブジェクト生成は成功するがメソッド呼び出しでエラー
- Phase 15.5影響でプラグイン実装が不完全な可能性
## ドキュメント
- docs/development/testing/smoke-tests-v2.md 作成
- docs/reference/pyvm-usage-guidelines.md 作成
- CODEX_QUESTION.md(Codex相談用)作成
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 09:30:42 +09:00
a160c186fd
docs: Phase 15.5 Core Box Unification更新&既存システム発見
...
Phase 15.5計画と実装状況を更新:
- CLAUDE.md: Phase 15.5を最新アップデートに追加
- CURRENT_TASK.md: Core Box Unificationを現在のタスクに設定
- 重要な発見: NYASH_USE_PLUGIN_BUILTINS=1が既に完全実装済み
- 環境変数制御システムが src/box_factory/mod.rs に存在
- 新規実装不要、既存機能の活用が鍵と判明
ChatGPTの革命的提案とTask先生の詳細分析により、
3層→2層アーキテクチャ移行の道筋が明確化
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 04:55:55 +09:00
dc278d1a84
docs: Phase A完成&LLVM_SYS_180_PREFIX削除ドキュメント更新
...
📝 重要ドキュメント更新内容:
✅ CURRENT_TASK.md:
- Phase A真の完成達成を完全反映
- calleeフィールド設定修正、JSON v1統一Call生成完了記録
- FileBoxプラグイン&Core Box統一Call動作確認完了
- LLVM_SYS_180_PREFIX不要性証明を追加
✅ CLAUDE.md:
- LLVM_SYS_180_PREFIX環境変数削除(Rust LLVMバインディング非使用)
- llvmliteハーネス独立性を明記
- ビルドコマンド簡略化(env LLVM_SYS_180_PREFIX不要)
- 統一Callテストコマンド更新
✅ Phase 15.5 implementation-status.md:
- Phase A進捗を80%→100%完了に更新
- 総合進捗30%→40%に更新
- Week 2進行中→Phase A完全達成に変更
- llvmliteハーネス成功実績を追加
🎯 技術的成果記録:
- MIR Call命令統一革命第1段階100%達成
- Python独立プロセス安定動作確認
- LLVM環境変数依存完全除去
- FileBox/StringBox/ArrayBox統一Call成功
🚀 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 03:09:47 +09:00
07f96ab4fb
feat: Phase 15.5 Week 1完了!llvmlite革命&環境変数完全整理
...
✅ llvmlite統一Call基盤革命達成
- mir_call.py: delegate→真の統一実装(6種Callee完全対応)
- Global/Method/Constructor/Closure/Value/Extern統一処理
- 実際のLLVMハーネス動作確認(モックルート完全回避)
✅ 環境変数体系完全整理
- CLAUDE.md: モックルート回避設定完全文書化
- 複雑な環境変数組み合わせの成功パターン確立
✅ Phase 15.5ドキュメント体系確立
- 実装状況追跡システム構築
- Week 1→2移行準備完了
🎯 Week 2開始準備: JSON出力統一→mir_json_emit.rs実装へ
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 02:13:43 +09:00
28c721d82b
feat: Phase 15.5 llvmlite革命達成!真の統一Call基盤完成
...
6種類Callee完全統一でデリゲート方式→真の統一実装へ革命的移行。
モックルート回避確立でセルフホスティング基盤強化完了。
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 02:11:59 +09:00
81211c22ad
feat: MIR Call命令統一Phase 3.1-3.2完了!統一Call実装進行中
...
✨ Phase 3.1-3.2実装完了
- build_indirect_call_expressionでCallTarget::Value使用
- print関数をcall_global print()として統一
- build_function_callでemit_unified_call使用
- ExternCall(env.console.log)→Callee::Global(print)完全移行
🏗️ MIR統一基盤構築
- src/mir/definitions/call_unified.rs: 統一定義(297行)
- emit_unified_call()と便利メソッド3種実装
- NYASH_MIR_UNIFIED_CALL=1で段階移行制御
- VM実行器でCallee対応実装済み
📊 進捗状況(26%削減見込み)
- Phase 1-2: ✅ 基盤構築完了
- Phase 3.1-3.2: ✅ 基本関数統一完了
- Phase 3.3: 🔄 BoxCall統一中
- Phase 4: 📅 Python LLVM(最優先・63%削減)
- Phase 5: 📅 PyVM/VM統一
📚 ドキュメント更新
- CLAUDE.md: テストスクリプト参考集追加
- CURRENT_TASK.md: Phase 3進捗更新
- python-llvm-priority-rationale.md: 優先順位戦略文書化
- mir-call-unification-master-plan.md: スケジュール最新化
🎯 6種類→1種類: Call/BoxCall/PluginInvoke/ExternCall/NewBox/NewClosure → MirCall統一へ
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-24 01:05:44 +09:00
b7a3e129bd
feat: using system完全実装完了!nyashstdビルトイン名前空間対応
...
✅ 実装内容:
- ビルトイン名前空間解決: nyashstd → builtin:nyashstd
- 自動コード生成: static box群(string/integer/bool/array/console)
- 環境変数デフォルト化: NYASH_ENABLE_USING, NYASH_RESOLVE_FIX_BRACES, NYASH_LLVM_USE_HARNESS
✅ 動作確認:
- パース→解決→読み込み→コード生成の全段階が正常動作
- 環境変数8個→6個に削減(25%改善)
✅ 主要変更:
- src/runner/pipeline.rs: builtin namespace特別処理追加
- src/runner/modes/common_util/resolve/strip.rs: builtin:プレフィックス処理
- src/config/env.rs: 3つの環境変数をデフォルトON化
🎯 次: Mini-VM開発でusing nyashstd活用可能
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 12:39:35 +09:00
bbc581a07f
feat: using ブレース均等解明完了&環境変数簡略化戦略策定
...
🎯 using ブレース均等の正体完全解明:
- SeamInspector.report()のprelude_brace_delta計算を解析
- "static box Main {" より前のブレース{/}バランス検証
- usingシステムでファイル結合時の整合性チェック機能と判明
📝 環境変数地獄(8変数)の簡略化戦略策定:
- Phase 1: NYASH_ENABLE_USING, NYASH_RESOLVE_FIX_BRACESデフォルト化
- Phase 2: PyVM/ny_plugins安定化後の段階的デフォルト化
- Phase 3: デバッグ変数のCLIフラグ化(--debug-pyvm等)
- 理想形: 8変数→0変数(./target/release/nyash program.nyash)
🔧 skip_newlines()削除革命継続:
- TokenCursor v2パーサー実装(nyash_parser_v2.rs新規)
- 既存パーサー拡張版(parser_enhanced.rs)
- Smart advance()とTokenCursorの協調実装
📚 次の課題:
- 環境変数デフォルト化の段階的実装
- using systemの完全安定化
- codex協働でのデバッグ効率化
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 11:58:31 +09:00
9b801de98d
feat: 改行処理革命Phase 1-2完全達成!skip_newlines()根絶成功
...
🎉 skip_newlines()完全根絶達成!
- 削減実績: 48箇所→0箇所(100%削除完了)
- Phase 2-A~2-E: 段階的削除で完全根絶達成
- Smart advance()システム完全動作確認
🧠 技術的成果:
- 深度追跡による括弧内改行自動処理
- match式・オブジェクトリテラル完全対応
- OR pattern複雑パターン完全動作
🔬 副次成果:
- MIR compiler OR pattern bug発見・修正
- exprs_peek.rs全LiteralValue型対応で根治
🚀 革命的効果:
- 保守性向上、開発体験向上、システム安定化
- AI協働による完璧な実装達成
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 11:34:44 +09:00
ad62066172
feat: 改行処理革命Phase 2-B完了 - Box宣言系skip_newlines()完全削除
...
✅ **41%削減達成**: 48→35→21箇所(14箇所削除)
- fields.rs: 9箇所のskip_newlines()削除
- box_definition.rs: 3箇所削除
- static_box.rs: 2箇所削除
✅ **Smart advance()実用化**: 深度追跡で自動改行処理完璧機能
- Box宣言、match式OR、複数行構文すべて対応
- NYASH_SMART_ADVANCE=1で安定動作確認
🔧 **ORパターンバグ同時修正**: exprs_peek.rsでInteger/Boolean型マッチング実装
- 修正前: 1 | 2 => "found" が動作せず(String型のみ)
- 修正後: 全リテラル型(Integer/Bool/Float/Null/Void)完全対応
🎉 **技術的価値**: 手動skip依存→コンテキスト認識自動処理への移行成功
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 11:22:16 +09:00
5eb23f9b4c
feat: 改行処理Phase 1 Smart advance完全実装 - 深度追跡でskip_newlines削減開始
...
✨ Smart advance()による自動改行処理を実装
- depth_tracking.rsで括弧深度(paren/brace/bracket)を自動管理
- 括弧内では改行を自動スキップ、演算子後の行継続も自動判定
- デフォルトで有効化(NYASH_SMART_ADVANCE=0で無効化可能)
♻️ skip_newlines()の段階的削除を開始
- primary.rsのオブジェクトリテラル内8箇所を削除(48→40箇所、17%削減)
- 深度追跡により手動skip_newlines()が不要に
🧪 テスト結果
- 文区切り、演算子行継続、括弧内改行、次行演算子すべて成功
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 10:59:51 +09:00
0012f65f0a
feat: IDENTIFIERキーをデフォルトで有効化 - DX大幅改善!
...
- primary.rs: sugar_level != "basic"でIDENTIFIERキーを許可
- デフォルトで {name: "value"} のようなモダンな構文が使える
- NYASH_SYNTAX_SUGAR_LEVEL=basic で厳密モード(文字列キーのみ)
- 環境変数なしで複数行match式が完全動作
- エラーメッセージも改善(basicモード時に解決方法を提示)
これでPhase 15セルフホスティングの開発が快適に!
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 10:33:26 +09:00
bbde1d3d70
feat: 改行処理Phase 1 TokenCursor基本実装完了
...
- src/parser/cursor.rs: TokenCursor本体実装(230行)
- NewlineMode(Stmt/Expr)による文脈認識改行処理
- ブレース/パーレン/ブラケット深度の自動追跡
- 行継続判定(演算子・カンマ等)
- with_expr_mode/with_stmt_mode によるモード切替
- src/parser/expr_cursor.rs: TokenCursor版式パーサー(250行)
- 実験的実装として式パーサーを TokenCursor対応
- 二項演算子・比較・プライマリ式・オブジェクトリテラル対応
- ビルド成功(warning のみ、エラーなし)
- CLAUDE.md更新: Phase 1実装内容を記載
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 10:24:40 +09:00
75b42bbff5
feat: 改行処理Phase 0 Quick Fix完了 - 複数行match式完全対応
...
- primary.rsに3箇所のskip_newlines()追加(COLON前後、COMMA判定前)
- match_expr.rsのis_object_literal()を改行対応(lookahead改良)
- セミコロンモード確認(NYASH_PARSER_ALLOW_SEMICOLON=1)
- テストケース全て成功(NYASH_SYNTAX_SUGAR_LEVEL=full必須)
- CLAUDE.md更新、改行処理戦略ドキュメント作成済み
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 10:14:53 +09:00
c9e4a1a6e6
fix: ループexit PHI生成を追加し、break後の変数値伝播を修正
...
問題:
- ループexit時のPHI命令が完全に欠落していた
- break後の変数値が初期値に戻ってしまうバグ
- gemini_test_case.nyashで期待値2→実際0が出力
解決:
- LoopBuilderにexit_snapshots追加でbreak時点の変数を収集
- do_break()でスナップショット収集処理を追加
- create_exit_phis()メソッドを新規実装し、exit PHI生成
効果:
- gemini_test_caseが正しく2を出力
- 0回実行、複数break、continue混在すべてのケースで正常動作
- collect_printsのnullエラー解消
テスト済み:
- gemini_test_case.nyash: ✅ 期待値2
- test_loop_zero.nyash: ✅ 期待値42
- test_multi_break.nyash: ✅ 期待値20
- test_continue_break.nyash: ✅ 期待値3
MIR確認:
bb3: %15 = phi [%4, bb1], [%9, bb9]
exit PHIが正しく生成されている
Thanks: ChatGPT Pro for root cause analysis
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 09:48:29 +09:00
fc4c866151
Step 2完了: peek→match完全統一 + 重大PHI命令バグ発見
...
## 🎉 Step 2: peek→match完全統一アーキテクチャクリーンアップ完了
- ✅ 15ファイルで PeekExpr → MatchExpr 一括置換完了
- ✅ lowering/peek.rs → match_expr.rs 完全移行
- ✅ AI理解性・コードベース一貫性・保守性大幅向上
## 🔍 Step 3: 複数行パース問題調査完了
- ✅ Task先生による根本原因特定完了
- 原因: オブジェクトリテラルパーサーの改行スキップ不足
- 修正: src/parser/expr/primary.rs の skip_newlines() 追加
## 🚨 重大発見: PHI命令処理バグ
- 問題: gemini_test_case.nyash で期待値2→実際0
- 原因: フェーズM+M.2のPHI統一作業でループ後変数マージに回帰バグ
- 詳細: PHI命令は正常だが、print時に間違ったPHI参照
- 影響: Phase 15セルフホスティング基盤の重大バグ
## 📝 CLAUDE.md更新
- 全進捗状況の詳細記録
- 次のアクション: ChatGPT相談でMIRビルダー修正戦略立案
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 09:00:07 +09:00
f469b80f0a
feat: match式オブジェクトリテラル判定修正完了 (peek→match統一 Step 1)
...
✅ Step 1完全達成:
- is_object_literal()メソッド追加でmatch式内オブジェクトリテラル対応
- match_token()副作用問題をcurrent_token()で解決
- 3箇所修正: デフォルト・型パターン・リテラルアーム全対応
🧪 動作確認済み:
- 基本match式: ✅ 回帰なし
- オブジェクトリテラル単体: ✅ 正常動作
- 単行match+オブジェクト: ✅ 完全動作
🚀 次段階準備:
- 複数行パース問題発見(後回し決定)
- peek→match完全統一 Step 2開始準備完了
- アーキテクチャクリーンアップによるソースコード美化へ
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 08:18:23 +09:00
09149be41a
feat: フェーズM.2完了 - JSON v0 Bridge層PHI統一でno_phi完全撤廃
...
- strip_phi_functions()削除: 40行の複雑なPHI→edge-copy後処理撤廃
- JSON v0 Bridge 8箇所のno_phi分岐完全削除:
- try_catch.rs: 3箇所統一
- ternary.rs, peek.rs, expr.rs, loop_.rs: 各1-2箇所統一
- config::env::mir_no_phi()大幅簡略化: 40行→8行、phi-legacy依存除去
- 未使用コード削除: PHI_ON_GATED_WARNED static、mir_no_phiフィールド
- 未使用import削除: HashSet、collect_phi_incoming_if_reachable
効果: フェーズM+M.2で推定500行超削減、MIR層PHI完全統一達成
Phase 15セルフホスティング80k→20k行圧縮の主要基盤完成
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 07:41:08 +09:00
96abbf1634
feat: フェーズM実装 - no_phi_mode完全撤廃でPHI一本化達成
...
✅ **コア実装完了**:
- MirBuilder: phi.rs, exprs_peek.rs全no_phi_mode分岐削除
- LoopBuilder: 3箇所のno_phi_mode分岐をPHI命令に統一
- edge_copy関連: insert_edge_copy()メソッド含む数十行削除
⚡ **効果**:
- 数百行削減によりPhase 15の80k→20k圧縮目標に大幅貢献
- 常にPHI命令使用でMIR生成の一貫性向上
- フェーズS制御フロー統一と合わせて設計改善達成
🎯 **次段階**: JSON v0 Bridge対応→collect_prints動作確認
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 07:25:58 +09:00
2e93403de0
phase15: implement Phase S root treatment for break control flow
...
🔧 **Phase S (Immediate Stabilization) Implementation**
- Create control flow utilities module (src/mir/utils/)
- Refactor loop_builder.rs duplicated code to utilities
- Fix PHI incoming predecessor capture per ChatGPT Pro analysis
📊 **AI Collaborative Analysis Complete**
- Task agent: Root cause identification
- Gemini: Strategic 3-phase approach
- codex: Advanced type inference solution (archived)
- ChatGPT Pro: Definitive staged treatment strategy
🗂️ **Documentation & Archive**
- Strategy document: docs/development/strategies/break-control-flow-strategy.md
- codex solutions: archive/codex-solutions/ (100+ lines changes)
- Update CLAUDE.md with 2025-09-23 progress
⚡ **Expected Impact**
- Resolve collect_prints null return issue
- Eliminate code duplication (4 locations unified)
- Foundation for Phase M (PHI unification) and Phase L (BuildOutcome)
🎯 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 07:13:32 +09:00
7ab1e59450
json_native: Import JSON native implementation from feature branch
...
- Added apps/lib/json_native/ directory with complete JSON parser implementation
- Updated CLAUDE.md with JSON native import status and collect_prints investigation
- Added debug traces to mini_vm_core.nyash for collect_prints abnormal termination
- Note: JSON native uses match expressions incompatible with current parser
- Investigation ongoing with Codex for collect_prints method issues
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 04:51:17 +09:00
39f27a348a
Phase 15: using system BOX parser problem completely resolved
...
✅ Major breakthroughs in using system stability:
- Fixed using system brace balance issue with NYASH_RESOLVE_FIX_BRACES=1
- Confirmed ChatGPT's JSON processing unification approach is correct
- Added comprehensive trace debugging for collect_prints method
- Identified collect_prints abnormal termination issue (method executes normally but return trace missing)
🔧 Technical improvements:
- Enhanced trace logging with method entry, loop exit, break conditions
- Documented using system file integration mechanism
- Validated echo/itoa processing works correctly with empty arguments
🎯 Phase 15 progress:
- Main using system parser errors: ✅ RESOLVED
- collect_prints processing: ✅ Functional (echo/itoa working)
- Remaining: investigate return value handling anomaly
Next: Codex investigation of collect_prints return behavior
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 04:10:00 +09:00
0a9a9c01ea
fix: Phase 15 empty args test 95% solved - ArrayBox/collect_prints完全修正
...
- fix: collect_prints()位置インクリメントバグ修正 (pos = obj_end)
- echo/itoa empty args処理が正常化
- 90%完了状態から95%完了に前進
- fix: ArrayBox戻り値問題完全解決
- ArrayBox.size()は正常動作(数値型2を返す)
- 型比較の問題であることを特定
- docs: CLAUDE.md更新 - デバッグ結果と次ステップ明記
- remaining: usingシステムパーサーエラー(BOX token line 1888)のみ
- next: codex調査依頼でusing結合プロセス詳細分析予定
🎯 Phase 15セルフホスティング重要マイルストーンまであと一歩!
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 02:52:57 +09:00
0d443dd6fa
docs: Fix peek/match documentation inconsistencies
...
- Update CLAUDE.md: peek式 → match式, peek構文 → match構文
- Update LANGUAGE_REFERENCE_2025.md: Peek式 → Match式
- Fix default pattern: else → _ (underscore)
- Resolve confusion causing JSON development Claude to use incorrect syntax
This fixes the root cause where new AI developers were referencing outdated
'peek' syntax examples and getting parse errors, forcing them to rewrite
with 'if' statements instead of using the correct 'match' syntax.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-23 02:15:54 +09:00
9142476484
parser(match): add MVP type patterns (IntegerBox(x)/StringBox(s)) via AST If-chain; keep literal-only path using PeekExpr; add smoke app (apps/tests/match_type_pattern_basic.nyash); build + stage-2 smokes green
2025-09-19 08:34:29 +09:00
d99b941218
docs: add MIR13 mode doc and set PHI-off as default; bridge lowering split (if/loop/try); llvmlite resolver stabilization; curated runner default PHI-off; refresh CURRENT_TASK.md
2025-09-17 10:58:12 +09:00
40db299bab
refactor: Gemini/ChatGPT collaborative refactoring + build fixes
...
Major changes:
- Split runner module: 1358→580 lines (via Gemini)
- Create new modules: dispatch.rs, selfhost.rs, pipeline.rs, pipe_io.rs
- Fix build errors from incomplete method migrations
- Add warning to CLAUDE.md about JIT/Cranelift not working
- Create interpreter.rs mode module
- Refactor loop builder into separate module
Build status:
- ✅ Executable builds successfully
- ✅ Basic execution works (tested with print)
- ⚠️ 106 warnings remain (to be cleaned up next)
- ⚠️ execute_mir_mode still in mod.rs (needs further migration)
Note: ChatGPT correctly fixed runner.execute_mir_mode() calls
that I incorrectly changed to super::modes::mir::
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-16 03:54:44 +09:00
d90216e9c4
📚 Phase 15 - セルフホスティング戦略の明確化とEXE-first実装
...
## 主な変更点
### 🎯 戦略の転換と明確化
- PyVMを開発ツールとして位置づけ(本番経路ではない)
- EXE-first戦略を明確に優先(build_compiler_exe.sh実装済み)
- Phase順序の整理: 15.2(LLVM)→15.3(コンパイラ)→15.4(VM)
### 🚀 セルフホスティング基盤の実装
- apps/selfhost-compiler/にNyashコンパイラMVP実装
- compiler.nyash: メインエントリー(位置引数対応)
- boxes/: parser_box, emitter_box, debug_box分離
- tools/build_compiler_exe.sh: ネイティブEXEビルド+dist配布
- Python MVPパーサーStage-2完成(local/if/loop/call/method/new)
### 📝 ドキュメント整備
- Phase 15 README/ROADMAP更新(Self-Hosting優先明記)
- docs/guides/exe-first-wsl.md: WSLクイックスタート追加
- docs/private/papers/: 論文G~L、爆速事件簿41事例収録
### 🔧 技術的改善
- JSON v0 Bridge: If/Loop PHI生成実装(ChatGPT協力)
- PyVM/llvmliteパリティ検証スイート追加
- using/namespace機能(gated実装、Phase 15では非解決)
## 次のステップ
1. パーサー無限ループ修正(未実装関数の実装)
2. EXEビルドとセルフホスティング実証
3. c0→c1→c1'ブートストラップループ確立
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-15 18:44:49 +09:00
af11c6855b
🚀 Start Phase 15.3: Nyash compiler MVP implementation
...
Major milestone:
- Set up apps/selfhost-compiler/ directory structure
- Implement basic Nyash compiler in Nyash (CompilerBox)
- Stage-1: Basic arithmetic parser (int/string/+/-/*/括弧/return)
- JSON v0 output compatible with --ny-parser-pipe
- Runner integration with NYASH_USE_NY_COMPILER=1 flag
- Comprehensive smoke tests for PHI/Bridge/Stage-2
Technical updates:
- Updated CLAUDE.md with Phase 15.3 status and MIR14 details
- Statement separation policy: newline-based with minimal ASI
- Fixed runaway ny-parser-pipe processes (CPU 94.9%)
- Clarified MIR14 as canonical instruction set (not 13/18)
- LoopForm strategy: PHI auto-generation during reverse lowering
Collaborative development:
- ChatGPT5 implementing compiler skeleton
- Codex provided LoopForm PHI generation guidance
- Claude maintaining documentation and coordination
🎉 セルフホスティングの歴史的一歩!自分自身をコンパイルする日が近いにゃ!
Co-Authored-By: ChatGPT <noreply@openai.com >
2025-09-15 01:21:37 +09:00
8f1b2ffa12
📚 docs: Update CLAUDE.md with latest progress and discoveries
...
Major updates:
- Updated progress section (2025-09-14) with recent achievements:
- Python LLVM backend reaching production level (all tests passing)
- Nyash parser implementation started by ChatGPT5
- peek expression rediscovery (when→peek rename)
- Box theory simplifying SSA construction (650→100 lines)
- AI collaboration paper completed
Documentation improvements:
- Changed 500-line limit to "guideline" (not strict requirement)
- Upgraded Python LLVM backend from "experimental" to "production level"
- Added peek expression examples and usage patterns
- Updated todo list status (parser planning completed, compiler MVP in progress)
These updates reflect the significant progress towards self-hosting,
especially the parser implementation using peek expressions to avoid
19-line if-else nesting.
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-14 19:26:46 +09:00
1d6fab4eda
📚 Phase 15計画を詳細化・更新: Python/llvmlite正式採用とプラグイン全方向ビルド戦略
...
✅ 主な更新内容:
- Python/llvmlite実装の正式採用を明記(開発速度10倍、~2400行)
- プラグイン全方向ビルド戦略(.so/.o/.a同時生成)で単一EXE生成可能に
- 各実装の予想コード量を具体化(パーサー800行、MIR Builder 2500行、VM 5000行)
- 循環依存問題の解決を明記(nyrtがC ABI経由で提供)
- 現実的なスケジュール調整(2025年9月~2026年3月)
🎉 最新進捗:
- dep_tree_min_string.nyashオブジェクト生成成功(10.4KB)
- LLVM verifier green - dominance違反解決
- Resolver patternでSSA安全性確保
🚀 次のマイルストーン:
- Python/llvmliteでEXE生成パイプライン完成
- nyash-llvm-compiler分離設計
- NyashパーサーMVP実装開始
Everything is Boxの究極形が、ついに実現へ!
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-13 15:37:58 +09:00
f77bbb5878
📝 CLAUDE.md cleanup and reorganization
...
- 重複していたPython LLVMバックエンドの記述を統一
- 日付を2025-09-10→09-12に更新
- 冗長な説明やコード例を簡潔に整理
- ビルド実証例の詳細をドキュメントリンクへ移動
- GUI開発セクションを削除(別ドキュメントへ)
- 573行に整理(目安の500行に近づけた)
クリーンで読みやすいドキュメントになったにゃ〜
2025-09-12 21:06:47 +09:00
ef44801fa6
✨ Python LLVM backend implementation (experimental)
...
- Created llvmlite-based LLVM backend in src/llvm_py/
- Implemented all MIR14 instructions (const, binop, jump, branch, ret, compare, phi, call, boxcall, externcall, typeop, newbox, safepoint, barrier)
- Experimental LoopForm support
- ~2000 lines of clean Python code vs complex Rust/inkwell
- Useful for PHI/SSA validation and rapid prototyping
- Added documentation to CLAUDE.md
This was created while waiting for ChatGPT's investigation of BuilderCursor issues.
2025-09-12 20:55:13 +09:00
38aea59fc1
llvm: unify lowering via Resolver and Cursor; remove non-sealed PHI wiring; apply Resolver to extern/call/boxcall/arrays/maps/mem; add llvmlite harness docs; add LLVM layer overview; add LoopForm preheader
2025-09-12 20:40:48 +09:00
53a869136f
📚 ABI統合ドキュメント整理 & LLVM BuilderCursor改善
...
## ABI関連
- docs/reference/abi/ABI_INDEX.md 作成(統合インデックス)
- 分散していたABI/TypeBoxドキュメントへのリンク集約
- CLAUDE.mdに「ABI統合インデックス」リンク追加
- ABI移行タイミング詳細検討(LLVM完成後のPhase 15.5推奨)
## LLVM改善(ChatGPT5協力)
- BuilderCursor導入でposition管理を構造化
- emit_return/jump/branchをcursor経由に統一
- PHI/terminator問題への対策改善
- より明確なbasic block位置管理
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-12 14:12:54 +09:00
82cd2affbc
docs: Add architecture decision to CLAUDE.md - Box/ExternCall boundary design summary
2025-09-11 21:42:40 +09:00
c014e78fb4
feat(llvm): Complete plugin system unification and environment variable elimination
...
🎉 Major Achievement: LLVM Plugin Environment Variable Problem Completely Resolved
## ✅ Completed Major Features:
1. **Plugin Implementation** ✅ - nyash.plugin.invoke_* functions in nyrt library working
2. **Plugin Calls** ✅ - Method calls working without environment variables
3. **Return Value Type Inference Fix** ✅ - Added plugin method type inference to MIR builder
4. **by-id Unification Complete** ✅ - Removed by-name fallback, unified to method_id system
5. **Environment Variable Elimination** ✅ - Removed NYASH_LLVM_ALLOW_BY_NAME=1 requirement
6. **Simple Execution Achieved** ✅ - ./target/release/nyash --backend llvm program.nyash
## 🔧 Technical Changes:
### Core Fixes:
- **src/mir/builder.rs**: Added plugin method return type inference
- CounterBox.get() -> Integer
- MathBox.sqrt() -> Float
- FileBox.read() -> String
- FileBox.exists() -> Bool
- **src/backend/llvm/compiler.rs**: Removed by-name fallback completely
- Deleted NYASH_LLVM_ALLOW_BY_NAME environment variable check
- Removed ~50 lines of fallback logic
- Unified to method_id-based calls only
### Documentation Updates:
- **CLAUDE.md**: Updated all plugin examples to remove environment variables
- **README.md/README.ja.md**: Removed environment variable documentation
- **tools/llvm_smoke.sh**: Removed NYASH_LLVM_ALLOW_BY_NAME from all test scripts
### Performance & Maintainability:
- **Better Performance**: method_id calls more efficient than by-name lookups
- **Type Safety**: method_id system provides compile-time guarantees
- **Code Simplification**: Removed complex fallback logic
- **User Experience**: No environment variables to remember
## 🧪 Verification:
- ✅ Plugin execution without environment variables
- ✅ method_id injection working: [LLVM] method_id injected: 4-5 places
- ✅ Type inference working: [BUILDER] Type inference: CounterBox get -> Integer
- ✅ Compilation success with LLVM backend
## 🔍 Remaining Investigation:
Plugin return value display issue identified as separate runtime layer problem
(plugin methods execute and side effects work, but return values not displayed in print())
🚀 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-10 23:24:02 +09:00
7fc5fef5cc
Apply ChatGPT's FileBox method_id fixes and add build scripts
...
- Add plugin host initialization for LLVM mode (fixes method_id injection)
- Add FileBox method_id injection test
- Enhance MIR14 stability test
- Add warning for Mock LLVM implementation
- Create build scripts for JIT/LLVM with proper settings (24 threads, timeout)
- Update CLAUDE.md with build instructions and FileBox test results
Note: FileBox file I/O still not working in LLVM execution (separate issue)
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-10 20:56:14 +09:00
370e725926
docs: Update current task and loop builder SSA bug details
...
- Update dates to 2025-09-08
- Document loop builder SSA scope management issue
- Add notes about continue/break implementation status
- Fix birth/init consistency in CLAUDE.md
2025-09-09 09:31:39 +09:00
7d88c04c0e
wip(phase15): AOT修正作業中 - Nyプラグインと標準ライブラリ実装
...
Phase 15のAOT/ネイティブビルド修正作業を継続中。
ChatGPTによるstd実装とプラグインシステムの改修を含む。
主な変更点:
- apps/std/: string.nyashとarray.nyashの標準ライブラリ追加
- apps/smokes/: stdライブラリのスモークテスト追加
- プラグインローダーv2の実装改修
- BoxCallのハンドル管理改善
- JIT hostcall registryの更新
- ビルドスクリプト(build_aot.sh, build_llvm.sh)の調整
まだ修正作業中のため、一部の機能は不完全な状態。
🤖 Generated with [Claude Code](https://claude.ai/code )
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-06 06:24:08 +09:00
e323120c59
phase15: update CLAUDE.md with Phase 15 enhancements from AGENTS.md
...
- Add JIT Self-Host Quickstart section for Phase 15
- Include important flags reference (plugins, parsers, debugging)
- Add Codex async workflow documentation for parallel tasks
- Update test execution with Phase 15 smoke tests
- Improve build time notes (JIT vs LLVM)
- Align with current Phase 15 progress and tooling
🎉 Bootstrap (c0→c1→c1') test confirmed working\!
Co-Authored-By: Claude <noreply@anthropic.com >
2025-09-05 15:18:13 +09:00