diff --git a/docs/development/proposals/architecture-redesign-proposal.md b/docs/archive/proposals/architecture-redesign-proposal.md similarity index 99% rename from docs/development/proposals/architecture-redesign-proposal.md rename to docs/archive/proposals/architecture-redesign-proposal.md index 7db3ead2..efb6181a 100644 --- a/docs/development/proposals/architecture-redesign-proposal.md +++ b/docs/archive/proposals/architecture-redesign-proposal.md @@ -1,5 +1,7 @@ # 🌟 Nyash アーキテクチャ再設計提案 +Status: Historical + *by Codex exec (2025-08-21)* ## 🎯 核心的洞察 @@ -238,4 +240,4 @@ impl From for SharedStateShim { --- -この設計により、Nyashはよりシンプルでエレガントなアーキテクチャとなり、InterpreterとVMの統合が自然に実現されます。 \ No newline at end of file +この設計により、Nyashはよりシンプルでエレガントなアーキテクチャとなり、InterpreterとVMの統合が自然に実現されます。 diff --git a/docs/archive/proposals/concurrency/boxes.md b/docs/archive/proposals/concurrency/boxes.md new file mode 100644 index 00000000..e2f38572 --- /dev/null +++ b/docs/archive/proposals/concurrency/boxes.md @@ -0,0 +1,6 @@ +# Nyash Concurrency — Box Model (Proposal, docs-only) + +Status: Historical + +(内容は `docs/development/proposals/concurrency/boxes.md` から移動) + diff --git a/docs/archive/proposals/ideas/language/pure-functional-blocks.md b/docs/archive/proposals/ideas/language/pure-functional-blocks.md new file mode 100644 index 00000000..5cc19f7a --- /dev/null +++ b/docs/archive/proposals/ideas/language/pure-functional-blocks.md @@ -0,0 +1,6 @@ +# 純粋関数型[]ブロック vs 通常{}ブロック設計案 + +Status: Historical + +(内容は `docs/development/proposals/ideas/language/pure-functional-blocks.md` から移動) + diff --git a/docs/development/proposals/instance_v2_unified_box_registry_plan.md b/docs/archive/proposals/instance_v2_unified_box_registry_plan.md similarity index 99% rename from docs/development/proposals/instance_v2_unified_box_registry_plan.md rename to docs/archive/proposals/instance_v2_unified_box_registry_plan.md index 58d4eead..88a43e38 100644 --- a/docs/development/proposals/instance_v2_unified_box_registry_plan.md +++ b/docs/archive/proposals/instance_v2_unified_box_registry_plan.md @@ -1,5 +1,7 @@ # Instance v2 統一レジストリ設計メモ(提案) +Status: Historical + 目的: ユーザー定義 / ビルトイン / プラグインの3系統を instance_v2 で一元管理し、同一の生成(birth)/破棄(fini)ライフサイクルで扱えるようにする。また、wasm-bindgen ターゲットでプラグイン機構を安全に無効化できる切替を用意する。 --- diff --git a/docs/development/proposals/issue_62_update_proposal.md b/docs/archive/proposals/issue_62_update_proposal.md similarity index 99% rename from docs/development/proposals/issue_62_update_proposal.md rename to docs/archive/proposals/issue_62_update_proposal.md index 3a28d111..b57178a4 100644 --- a/docs/development/proposals/issue_62_update_proposal.md +++ b/docs/archive/proposals/issue_62_update_proposal.md @@ -1,5 +1,7 @@ # Issue 62 Update Proposal: Enable String Constants in WASM Backend First +Status: Historical + This is a concrete request to implement minimal string support in the WASM backend so that Issue #62 can proceed. It reflects the current repo state. ## Background @@ -77,4 +79,3 @@ Minimal features required: - Data segment approach is the simplest for initial support; future work may add constant pooling and deduplication. - Keeping verification via `print_str(ptr,len)` avoids complicating function return types for now. - UTF-8 decoding is available in hosts via `TextDecoder('utf-8')`. - diff --git a/docs/development/proposals/mir-typeop-weakref-barrier-poc.md b/docs/archive/proposals/mir-typeop-weakref-barrier-poc.md similarity index 99% rename from docs/development/proposals/mir-typeop-weakref-barrier-poc.md rename to docs/archive/proposals/mir-typeop-weakref-barrier-poc.md index 05277fd1..b4376f95 100644 --- a/docs/development/proposals/mir-typeop-weakref-barrier-poc.md +++ b/docs/archive/proposals/mir-typeop-weakref-barrier-poc.md @@ -1,5 +1,7 @@ # PoC Plan: TypeOp / WeakRef / Barrier Unification +Status: Historical + Status: Draft (PoC design) Last Updated: 2025-08-23 diff --git a/docs/development/proposals/mir_reduction_detailed_analysis.md b/docs/archive/proposals/mir_reduction_detailed_analysis.md similarity index 99% rename from docs/development/proposals/mir_reduction_detailed_analysis.md rename to docs/archive/proposals/mir_reduction_detailed_analysis.md index 9692190f..5c9e449e 100644 --- a/docs/development/proposals/mir_reduction_detailed_analysis.md +++ b/docs/archive/proposals/mir_reduction_detailed_analysis.md @@ -1,5 +1,7 @@ # MIR 35→26→15命令削減: 詳細分析・移行戦略 +Status: Historical + *実装ベース完全マッピング - 2025年8月17日版* **注意**: このドキュメントは35→26命令への移行計画を記録しています。現在はさらに15命令に削減済みです。 @@ -359,4 +361,4 @@ impl WasmCodegen { **分析完了**: 2025年8月17日 **実装開始**: 2025年8月18日 -**完了予定**: 2025年9月21日 \ No newline at end of file +**完了予定**: 2025年9月21日 diff --git a/docs/archive/proposals/nyash.link/README.md b/docs/archive/proposals/nyash.link/README.md new file mode 100644 index 00000000..3ff72aec --- /dev/null +++ b/docs/archive/proposals/nyash.link/README.md @@ -0,0 +1,6 @@ +# nyash.linkシステム設計 - モジュール・依存関係管理革命 + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/README.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/bid-using-integration.md b/docs/archive/proposals/nyash.link/bid-using-integration.md new file mode 100644 index 00000000..b6ef6604 --- /dev/null +++ b/docs/archive/proposals/nyash.link/bid-using-integration.md @@ -0,0 +1,6 @@ +# nyash.link: BID using integration + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/bid-using-integration.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/builtin-stdlib-architecture.md b/docs/archive/proposals/nyash.link/builtin-stdlib-architecture.md new file mode 100644 index 00000000..d447017c --- /dev/null +++ b/docs/archive/proposals/nyash.link/builtin-stdlib-architecture.md @@ -0,0 +1,6 @@ +# nyash.link: builtin stdlib architecture + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/builtin-stdlib-architecture.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/examples.md b/docs/archive/proposals/nyash.link/examples.md new file mode 100644 index 00000000..f1c9265a --- /dev/null +++ b/docs/archive/proposals/nyash.link/examples.md @@ -0,0 +1,6 @@ +# nyash.link: Examples + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/examples.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/final-implementation-strategy.md b/docs/archive/proposals/nyash.link/final-implementation-strategy.md new file mode 100644 index 00000000..eda52de4 --- /dev/null +++ b/docs/archive/proposals/nyash.link/final-implementation-strategy.md @@ -0,0 +1,6 @@ +# nyash.link: final implementation strategy + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/final-implementation-strategy.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/implementation-plan.md b/docs/archive/proposals/nyash.link/implementation-plan.md new file mode 100644 index 00000000..2108201a --- /dev/null +++ b/docs/archive/proposals/nyash.link/implementation-plan.md @@ -0,0 +1,6 @@ +# nyash.link: implementation plan + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/implementation-plan.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/master-architecture.md b/docs/archive/proposals/nyash.link/master-architecture.md new file mode 100644 index 00000000..593ebc20 --- /dev/null +++ b/docs/archive/proposals/nyash.link/master-architecture.md @@ -0,0 +1,6 @@ +# nyash.link: master architecture + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/master-architecture.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/minimal-stdlib-first.md b/docs/archive/proposals/nyash.link/minimal-stdlib-first.md new file mode 100644 index 00000000..b80eb13e --- /dev/null +++ b/docs/archive/proposals/nyash.link/minimal-stdlib-first.md @@ -0,0 +1,6 @@ +# nyash.link: minimal stdlib first + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/minimal-stdlib-first.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/real-world-examples.md b/docs/archive/proposals/nyash.link/real-world-examples.md new file mode 100644 index 00000000..6380833f --- /dev/null +++ b/docs/archive/proposals/nyash.link/real-world-examples.md @@ -0,0 +1,6 @@ +# nyash.link: real-world examples + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/real-world-examples.md` から移動) + diff --git a/docs/archive/proposals/nyash.link/universal-api-integration.md b/docs/archive/proposals/nyash.link/universal-api-integration.md new file mode 100644 index 00000000..8f489827 --- /dev/null +++ b/docs/archive/proposals/nyash.link/universal-api-integration.md @@ -0,0 +1,6 @@ +# nyash.link: universal API integration + +Status: Historical + +(内容は `docs/development/proposals/nyash.link/universal-api-integration.md` から移動) + diff --git a/docs/development/proposals/phase-195-pattern4.md b/docs/archive/proposals/phase-195-pattern4.md similarity index 99% rename from docs/development/proposals/phase-195-pattern4.md rename to docs/archive/proposals/phase-195-pattern4.md index 37152b63..4d8fcb75 100644 --- a/docs/development/proposals/phase-195-pattern4.md +++ b/docs/archive/proposals/phase-195-pattern4.md @@ -1,5 +1,7 @@ # Phase 195: Pattern 4 (Loop with Continue) Implementation Plan +Status: Historical + **Status**: Deferred (not yet implemented) ## Overview diff --git a/docs/development/proposals/scope-reuse.md b/docs/archive/proposals/scope-reuse.md similarity index 99% rename from docs/development/proposals/scope-reuse.md rename to docs/archive/proposals/scope-reuse.md index 4102becf..ce15073f 100644 --- a/docs/development/proposals/scope-reuse.md +++ b/docs/archive/proposals/scope-reuse.md @@ -1,5 +1,7 @@ # Scope Reuse Blocks (MVP Proposal) +Status: Historical + Status: design-only during the feature‑pause (no implementation) Summary diff --git a/docs/development/proposals/stage1-architecture-improvement.md b/docs/archive/proposals/stage1-architecture-improvement.md similarity index 99% rename from docs/development/proposals/stage1-architecture-improvement.md rename to docs/archive/proposals/stage1-architecture-improvement.md index f4a2c314..060d9127 100644 --- a/docs/development/proposals/stage1-architecture-improvement.md +++ b/docs/archive/proposals/stage1-architecture-improvement.md @@ -1,5 +1,7 @@ # Stage1セルフホスティング起動アーキテクチャ改善提案 +Status: Historical + ## 📋 エグゼクティブサマリー Nyashのセルフホスティング実装で、Stage0(Rust)→ Stage1(.hako script)の起動が**環境変数25個**と**3つの引数経路**で複雑化している問題を整理し、業界標準パターンに基づいた改善案を提示する。 diff --git a/docs/development/proposals/unified-members.md b/docs/archive/proposals/unified-members.md similarity index 99% rename from docs/development/proposals/unified-members.md rename to docs/archive/proposals/unified-members.md index 91c3a08e..7c21574e 100644 --- a/docs/development/proposals/unified-members.md +++ b/docs/archive/proposals/unified-members.md @@ -1,5 +1,7 @@ # Property System Revolution for Nyash (2025-09-18 Breakthrough) +Status: Historical + Status: **BREAKTHROUGH COMPLETED** - Final syntax decided through AI collaboration with ChatGPT, Claude, and Codex. ## 🌟 Revolutionary Achievement diff --git a/docs/development/proposals/urgent_fix_clone_box_to_arc_references.md b/docs/archive/proposals/urgent_fix_clone_box_to_arc_references.md similarity index 99% rename from docs/development/proposals/urgent_fix_clone_box_to_arc_references.md rename to docs/archive/proposals/urgent_fix_clone_box_to_arc_references.md index db1ad256..38d7faf4 100644 --- a/docs/development/proposals/urgent_fix_clone_box_to_arc_references.md +++ b/docs/archive/proposals/urgent_fix_clone_box_to_arc_references.md @@ -1,5 +1,7 @@ # 🚨 緊急修正 Issue: Everything is Box設計でのclone_box()問題根本解決 +Status: Historical + ## 📋 Issue概要 **優先度**: 🔴 **URGENT** - 全ステートフルBox(SocketBox, P2PBox等)に影響 **期間**: 2-3日 @@ -303,4 +305,4 @@ me.server.isServer() // ✅ SocketBox ID=10, is_server=true (同 **実装担当**: Copilot様 **レビュー**: Claude & User -**完了目標**: 2-3日以内 \ No newline at end of file +**完了目標**: 2-3日以内 diff --git a/docs/archive/roadmap/README.md b/docs/archive/roadmap/README.md new file mode 100644 index 00000000..268c490f --- /dev/null +++ b/docs/archive/roadmap/README.md @@ -0,0 +1,8 @@ +# Roadmap Phases Archive + +Status: Historical +Scope: 旧ロードマップフェーズ(初期設計/暫定案)をまとめたアーカイブ。 + +`docs/development/roadmap/phases/` から移動した過去フェーズの資料をここにまとめているよ。 +現行で参照したいフェーズは `docs/development/current/` 側(selfhost Stage‑3 / JoinIR v2 / ExprLowerer ライン)を見てね。 + diff --git a/docs/development/roadmap/phases/phase-10.1/README.md b/docs/archive/roadmap/phases/phase-10.1/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/README.md rename to docs/archive/roadmap/phases/phase-10.1/README.md diff --git a/docs/development/roadmap/phases/phase-10.1/c_abi_unified_design.md b/docs/archive/roadmap/phases/phase-10.1/c_abi_unified_design.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/c_abi_unified_design.md rename to docs/archive/roadmap/phases/phase-10.1/c_abi_unified_design.md diff --git a/docs/development/roadmap/phases/phase-10.1/implementation_steps.md b/docs/archive/roadmap/phases/phase-10.1/implementation_steps.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/implementation_steps.md rename to docs/archive/roadmap/phases/phase-10.1/implementation_steps.md diff --git a/docs/development/roadmap/phases/phase-10.1/phase_plan.md b/docs/archive/roadmap/phases/phase-10.1/phase_plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.1/phase_plan.md rename to docs/archive/roadmap/phases/phase-10.1/phase_plan.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.1a_planning/README.md b/docs/archive/roadmap/phases/phase-10.5/10.1a_planning/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1a_planning/README.md rename to docs/archive/roadmap/phases/phase-10.5/10.1a_planning/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/chatgpt5_original_idea.txt b/docs/archive/roadmap/phases/phase-10.5/10.1a_planning/archive/chatgpt5_original_idea.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/chatgpt5_original_idea.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1a_planning/archive/chatgpt5_original_idea.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/python_parser_box_design.txt b/docs/archive/roadmap/phases/phase-10.5/10.1a_planning/archive/python_parser_box_design.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/python_parser_box_design.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1a_planning/archive/python_parser_box_design.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/summary_2025_08_27.txt b/docs/archive/roadmap/phases/phase-10.5/10.1a_planning/archive/summary_2025_08_27.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1a_planning/archive/summary_2025_08_27.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1a_planning/archive/summary_2025_08_27.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1a_planning/expert_feedback_gemini_codex.txt b/docs/archive/roadmap/phases/phase-10.5/10.1a_planning/expert_feedback_gemini_codex.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1a_planning/expert_feedback_gemini_codex.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1a_planning/expert_feedback_gemini_codex.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1a_planning/pythonparser_integrated_plan_summary.txt b/docs/archive/roadmap/phases/phase-10.5/10.1a_planning/pythonparser_integrated_plan_summary.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1a_planning/pythonparser_integrated_plan_summary.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1a_planning/pythonparser_integrated_plan_summary.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1b_setup/README.md b/docs/archive/roadmap/phases/phase-10.5/10.1b_setup/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1b_setup/README.md rename to docs/archive/roadmap/phases/phase-10.5/10.1b_setup/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/README.md b/docs/archive/roadmap/phases/phase-10.5/10.1c_parser_integration/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/README.md rename to docs/archive/roadmap/phases/phase-10.5/10.1c_parser_integration/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt b/docs/archive/roadmap/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/python_parser_box_implementation_plan.txt b/docs/archive/roadmap/phases/phase-10.5/10.1c_parser_integration/python_parser_box_implementation_plan.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1c_parser_integration/python_parser_box_implementation_plan.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1c_parser_integration/python_parser_box_implementation_plan.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1d_core_implementation/README.md b/docs/archive/roadmap/phases/phase-10.5/10.1d_core_implementation/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1d_core_implementation/README.md rename to docs/archive/roadmap/phases/phase-10.5/10.1d_core_implementation/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.1d_core_implementation/python_implementation_roadmap.txt b/docs/archive/roadmap/phases/phase-10.5/10.1d_core_implementation/python_implementation_roadmap.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1d_core_implementation/python_implementation_roadmap.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1d_core_implementation/python_implementation_roadmap.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1e_transpiler/README.md b/docs/archive/roadmap/phases/phase-10.5/10.1e_transpiler/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1e_transpiler/README.md rename to docs/archive/roadmap/phases/phase-10.5/10.1e_transpiler/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt b/docs/archive/roadmap/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt rename to docs/archive/roadmap/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt diff --git a/docs/development/roadmap/phases/phase-10.5/10.1f_testing/README.md b/docs/archive/roadmap/phases/phase-10.5/10.1f_testing/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1f_testing/README.md rename to docs/archive/roadmap/phases/phase-10.5/10.1f_testing/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.1g_documentation/README.md b/docs/archive/roadmap/phases/phase-10.5/10.1g_documentation/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.1g_documentation/README.md rename to docs/archive/roadmap/phases/phase-10.5/10.1g_documentation/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.5a-ABI-DESIGN.md b/docs/archive/roadmap/phases/phase-10.5/10.5a-ABI-DESIGN.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.5a-ABI-DESIGN.md rename to docs/archive/roadmap/phases/phase-10.5/10.5a-ABI-DESIGN.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.5b-native-build-consolidation.md b/docs/archive/roadmap/phases/phase-10.5/10.5b-native-build-consolidation.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.5b-native-build-consolidation.md rename to docs/archive/roadmap/phases/phase-10.5/10.5b-native-build-consolidation.md diff --git a/docs/development/roadmap/phases/phase-10.5/10.5c-handle-first-plugininvoke-plan.md b/docs/archive/roadmap/phases/phase-10.5/10.5c-handle-first-plugininvoke-plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/10.5c-handle-first-plugininvoke-plan.md rename to docs/archive/roadmap/phases/phase-10.5/10.5c-handle-first-plugininvoke-plan.md diff --git a/docs/development/roadmap/phases/phase-10.5/INDEX.md b/docs/archive/roadmap/phases/phase-10.5/INDEX.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/INDEX.md rename to docs/archive/roadmap/phases/phase-10.5/INDEX.md diff --git a/docs/development/roadmap/phases/phase-10.5/README.md b/docs/archive/roadmap/phases/phase-10.5/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/README.md rename to docs/archive/roadmap/phases/phase-10.5/README.md diff --git a/docs/development/roadmap/phases/phase-10.5/chatgpt5_integrated_plan.md b/docs/archive/roadmap/phases/phase-10.5/chatgpt5_integrated_plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.5/chatgpt5_integrated_plan.md rename to docs/archive/roadmap/phases/phase-10.5/chatgpt5_integrated_plan.md diff --git a/docs/development/roadmap/phases/phase-10.6/PLAN.txt b/docs/archive/roadmap/phases/phase-10.6/PLAN.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.6/PLAN.txt rename to docs/archive/roadmap/phases/phase-10.6/PLAN.txt diff --git a/docs/development/roadmap/phases/phase-10.6/PYTHON_NATIVE_PLAN.txt b/docs/archive/roadmap/phases/phase-10.6/PYTHON_NATIVE_PLAN.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.6/PYTHON_NATIVE_PLAN.txt rename to docs/archive/roadmap/phases/phase-10.6/PYTHON_NATIVE_PLAN.txt diff --git a/docs/development/roadmap/phases/phase-10.7/PLAN.txt b/docs/archive/roadmap/phases/phase-10.7/PLAN.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/PLAN.txt rename to docs/archive/roadmap/phases/phase-10.7/PLAN.txt diff --git a/docs/development/roadmap/phases/phase-10.7/README.md b/docs/archive/roadmap/phases/phase-10.7/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/README.md rename to docs/archive/roadmap/phases/phase-10.7/README.md diff --git a/docs/development/roadmap/phases/phase-10.7/archive/codex-analysis-technical-implementation.md b/docs/archive/roadmap/phases/phase-10.7/archive/codex-analysis-technical-implementation.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/archive/codex-analysis-technical-implementation.md rename to docs/archive/roadmap/phases/phase-10.7/archive/codex-analysis-technical-implementation.md diff --git a/docs/development/roadmap/phases/phase-10.7/archive/gemini-analysis-transpile-beauty.md b/docs/archive/roadmap/phases/phase-10.7/archive/gemini-analysis-transpile-beauty.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/archive/gemini-analysis-transpile-beauty.md rename to docs/archive/roadmap/phases/phase-10.7/archive/gemini-analysis-transpile-beauty.md diff --git a/docs/development/roadmap/phases/phase-10.7/compiler-box-property-implementation.md b/docs/archive/roadmap/phases/phase-10.7/compiler-box-property-implementation.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/compiler-box-property-implementation.md rename to docs/archive/roadmap/phases/phase-10.7/compiler-box-property-implementation.md diff --git a/docs/development/roadmap/phases/phase-10.7/examples.md b/docs/archive/roadmap/phases/phase-10.7/examples.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/examples.md rename to docs/archive/roadmap/phases/phase-10.7/examples.md diff --git a/docs/development/roadmap/phases/phase-10.7/implementation.md b/docs/archive/roadmap/phases/phase-10.7/implementation.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/implementation.md rename to docs/archive/roadmap/phases/phase-10.7/implementation.md diff --git a/docs/development/roadmap/phases/phase-10.7/python-descriptor-mapping.md b/docs/archive/roadmap/phases/phase-10.7/python-descriptor-mapping.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/python-descriptor-mapping.md rename to docs/archive/roadmap/phases/phase-10.7/python-descriptor-mapping.md diff --git a/docs/development/roadmap/phases/phase-10.7/quickstart-property-revolution.md b/docs/archive/roadmap/phases/phase-10.7/quickstart-property-revolution.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/quickstart-property-revolution.md rename to docs/archive/roadmap/phases/phase-10.7/quickstart-property-revolution.md diff --git a/docs/development/roadmap/phases/phase-10.7/testing-plan.md b/docs/archive/roadmap/phases/phase-10.7/testing-plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/testing-plan.md rename to docs/archive/roadmap/phases/phase-10.7/testing-plan.md diff --git a/docs/development/roadmap/phases/phase-10.7/workbench/DECISIONS.md b/docs/archive/roadmap/phases/phase-10.7/workbench/DECISIONS.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/workbench/DECISIONS.md rename to docs/archive/roadmap/phases/phase-10.7/workbench/DECISIONS.md diff --git a/docs/development/roadmap/phases/phase-10.7/workbench/IR_SCHEMA_MIN.md b/docs/archive/roadmap/phases/phase-10.7/workbench/IR_SCHEMA_MIN.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/workbench/IR_SCHEMA_MIN.md rename to docs/archive/roadmap/phases/phase-10.7/workbench/IR_SCHEMA_MIN.md diff --git a/docs/development/roadmap/phases/phase-10.7/workbench/README.md b/docs/archive/roadmap/phases/phase-10.7/workbench/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/workbench/README.md rename to docs/archive/roadmap/phases/phase-10.7/workbench/README.md diff --git a/docs/development/roadmap/phases/phase-10.7/workbench/TODO.md b/docs/archive/roadmap/phases/phase-10.7/workbench/TODO.md similarity index 100% rename from docs/development/roadmap/phases/phase-10.7/workbench/TODO.md rename to docs/archive/roadmap/phases/phase-10.7/workbench/TODO.md diff --git a/docs/development/roadmap/phases/phase-10/README.md b/docs/archive/roadmap/phases/phase-10/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/README.md rename to docs/archive/roadmap/phases/phase-10/README.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_10/README.md b/docs/archive/roadmap/phases/phase-10/phase_10_10/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_10/README.md rename to docs/archive/roadmap/phases/phase-10/phase_10_10/README.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_4_gc_switchable_runtime.md b/docs/archive/roadmap/phases/phase-10/phase_10_4_gc_switchable_runtime.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_4_gc_switchable_runtime.md rename to docs/archive/roadmap/phases/phase-10/phase_10_4_gc_switchable_runtime.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_4d_barrier_ci_notes.txt b/docs/archive/roadmap/phases/phase-10/phase_10_4d_barrier_ci_notes.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_4d_barrier_ci_notes.txt rename to docs/archive/roadmap/phases/phase-10/phase_10_4d_barrier_ci_notes.txt diff --git a/docs/development/roadmap/phases/phase-10/phase_10_5_core_std_nyash_impl.md b/docs/archive/roadmap/phases/phase-10/phase_10_5_core_std_nyash_impl.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_5_core_std_nyash_impl.md rename to docs/archive/roadmap/phases/phase-10/phase_10_5_core_std_nyash_impl.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_6_thread_safe_revolution.md b/docs/archive/roadmap/phases/phase-10/phase_10_6_thread_safe_revolution.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_6_thread_safe_revolution.md rename to docs/archive/roadmap/phases/phase-10/phase_10_6_thread_safe_revolution.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_6a_thread_safety_audit.md b/docs/archive/roadmap/phases/phase-10/phase_10_6a_thread_safety_audit.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_6a_thread_safety_audit.md rename to docs/archive/roadmap/phases/phase-10/phase_10_6a_thread_safety_audit.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_6a_thread_safety_audit.txt b/docs/archive/roadmap/phases/phase-10/phase_10_6a_thread_safety_audit.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_6a_thread_safety_audit.txt rename to docs/archive/roadmap/phases/phase-10/phase_10_6a_thread_safety_audit.txt diff --git a/docs/development/roadmap/phases/phase-10/phase_10_6b_scheduler_prep.txt b/docs/archive/roadmap/phases/phase-10/phase_10_6b_scheduler_prep.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_6b_scheduler_prep.txt rename to docs/archive/roadmap/phases/phase-10/phase_10_6b_scheduler_prep.txt diff --git a/docs/development/roadmap/phases/phase-10/phase_10_6c_parallel_gc_design.txt b/docs/archive/roadmap/phases/phase-10/phase_10_6c_parallel_gc_design.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_6c_parallel_gc_design.txt rename to docs/archive/roadmap/phases/phase-10/phase_10_6c_parallel_gc_design.txt diff --git a/docs/development/roadmap/phases/phase-10/phase_10_7_jit_branch_wiring_and_abi.txt b/docs/archive/roadmap/phases/phase-10/phase_10_7_jit_branch_wiring_and_abi.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_7_jit_branch_wiring_and_abi.txt rename to docs/archive/roadmap/phases/phase-10/phase_10_7_jit_branch_wiring_and_abi.txt diff --git a/docs/development/roadmap/phases/phase-10/phase_10_7_master_plan.txt b/docs/archive/roadmap/phases/phase-10/phase_10_7_master_plan.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_7_master_plan.txt rename to docs/archive/roadmap/phases/phase-10/phase_10_7_master_plan.txt diff --git a/docs/development/roadmap/phases/phase-10/phase_10_7a_jit_phi_cfg_and_abi_min.txt b/docs/archive/roadmap/phases/phase-10/phase_10_7a_jit_phi_cfg_and_abi_min.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_7a_jit_phi_cfg_and_abi_min.txt rename to docs/archive/roadmap/phases/phase-10/phase_10_7a_jit_phi_cfg_and_abi_min.txt diff --git a/docs/development/roadmap/phases/phase-10/phase_10_7h_native_abi_types.md b/docs/archive/roadmap/phases/phase-10/phase_10_7h_native_abi_types.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_7h_native_abi_types.md rename to docs/archive/roadmap/phases/phase-10/phase_10_7h_native_abi_types.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_8_unified_debug_system.md b/docs/archive/roadmap/phases/phase-10/phase_10_8_unified_debug_system.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_8_unified_debug_system.md rename to docs/archive/roadmap/phases/phase-10/phase_10_8_unified_debug_system.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_8a_from_keyword_consistency.md b/docs/archive/roadmap/phases/phase-10/phase_10_8a_from_keyword_consistency.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_8a_from_keyword_consistency.md rename to docs/archive/roadmap/phases/phase-10/phase_10_8a_from_keyword_consistency.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_9_builtin_box_jit_support.md b/docs/archive/roadmap/phases/phase-10/phase_10_9_builtin_box_jit_support.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_9_builtin_box_jit_support.md rename to docs/archive/roadmap/phases/phase-10/phase_10_9_builtin_box_jit_support.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_app_migration.md b/docs/archive/roadmap/phases/phase-10/phase_10_app_migration.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_app_migration.md rename to docs/archive/roadmap/phases/phase-10/phase_10_app_migration.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_cranelift_jit_backend.md b/docs/archive/roadmap/phases/phase-10/phase_10_cranelift_jit_backend.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_cranelift_jit_backend.md rename to docs/archive/roadmap/phases/phase-10/phase_10_cranelift_jit_backend.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_function_declaration_mir_support.md b/docs/archive/roadmap/phases/phase-10/phase_10_function_declaration_mir_support.md similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_function_declaration_mir_support.md rename to docs/archive/roadmap/phases/phase-10/phase_10_function_declaration_mir_support.md diff --git a/docs/development/roadmap/phases/phase-10/phase_10_gc_threads_order.txt b/docs/archive/roadmap/phases/phase-10/phase_10_gc_threads_order.txt similarity index 100% rename from docs/development/roadmap/phases/phase-10/phase_10_gc_threads_order.txt rename to docs/archive/roadmap/phases/phase-10/phase_10_gc_threads_order.txt diff --git a/docs/development/roadmap/phases/phase-11.5/11.5a-WRITE-BARRIER-REMOVAL.md b/docs/archive/roadmap/phases/phase-11.5/11.5a-WRITE-BARRIER-REMOVAL.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/11.5a-WRITE-BARRIER-REMOVAL.md rename to docs/archive/roadmap/phases/phase-11.5/11.5a-WRITE-BARRIER-REMOVAL.md diff --git a/docs/development/roadmap/phases/phase-11.5/11.5b-ATOMIC-OPTIMIZATION.md b/docs/archive/roadmap/phases/phase-11.5/11.5b-ATOMIC-OPTIMIZATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/11.5b-ATOMIC-OPTIMIZATION.md rename to docs/archive/roadmap/phases/phase-11.5/11.5b-ATOMIC-OPTIMIZATION.md diff --git a/docs/development/roadmap/phases/phase-11.5/11.5c-COROUTINE-ASYNC.md b/docs/archive/roadmap/phases/phase-11.5/11.5c-COROUTINE-ASYNC.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/11.5c-COROUTINE-ASYNC.md rename to docs/archive/roadmap/phases/phase-11.5/11.5c-COROUTINE-ASYNC.md diff --git a/docs/development/roadmap/phases/phase-11.5/BOX_SSA_CORE_15_FINAL_DECISION.md b/docs/archive/roadmap/phases/phase-11.5/BOX_SSA_CORE_15_FINAL_DECISION.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/BOX_SSA_CORE_15_FINAL_DECISION.md rename to docs/archive/roadmap/phases/phase-11.5/BOX_SSA_CORE_15_FINAL_DECISION.md diff --git a/docs/development/roadmap/phases/phase-11.5/CURRENT_STATUS_2025_08_31.md b/docs/archive/roadmap/phases/phase-11.5/CURRENT_STATUS_2025_08_31.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/CURRENT_STATUS_2025_08_31.md rename to docs/archive/roadmap/phases/phase-11.5/CURRENT_STATUS_2025_08_31.md diff --git a/docs/development/roadmap/phases/phase-11.5/FIRST-FIVE-APPS.md b/docs/archive/roadmap/phases/phase-11.5/FIRST-FIVE-APPS.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/FIRST-FIVE-APPS.md rename to docs/archive/roadmap/phases/phase-11.5/FIRST-FIVE-APPS.md diff --git a/docs/development/roadmap/phases/phase-11.5/IMPLEMENTATION-GUIDE.md b/docs/archive/roadmap/phases/phase-11.5/IMPLEMENTATION-GUIDE.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/IMPLEMENTATION-GUIDE.md rename to docs/archive/roadmap/phases/phase-11.5/IMPLEMENTATION-GUIDE.md diff --git a/docs/development/roadmap/phases/phase-11.5/README.md b/docs/archive/roadmap/phases/phase-11.5/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/README.md rename to docs/archive/roadmap/phases/phase-11.5/README.md diff --git a/docs/development/roadmap/phases/phase-11.5/WASM-ISSUES.md b/docs/archive/roadmap/phases/phase-11.5/WASM-ISSUES.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/WASM-ISSUES.md rename to docs/archive/roadmap/phases/phase-11.5/WASM-ISSUES.md diff --git a/docs/development/roadmap/phases/phase-11.5/archives/CHATGPT5_DECISIVE_ACTIONS.md b/docs/archive/roadmap/phases/phase-11.5/archives/CHATGPT5_DECISIVE_ACTIONS.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/archives/CHATGPT5_DECISIVE_ACTIONS.md rename to docs/archive/roadmap/phases/phase-11.5/archives/CHATGPT5_DECISIVE_ACTIONS.md diff --git a/docs/development/roadmap/phases/phase-11.5/archives/CODEX_MIR_LLVM_DEEP_DIVE.md b/docs/archive/roadmap/phases/phase-11.5/archives/CODEX_MIR_LLVM_DEEP_DIVE.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/archives/CODEX_MIR_LLVM_DEEP_DIVE.md rename to docs/archive/roadmap/phases/phase-11.5/archives/CODEX_MIR_LLVM_DEEP_DIVE.md diff --git a/docs/development/roadmap/phases/phase-11.5/archives/GEMINI_MIR_LLVM_CONSULTATION.md b/docs/archive/roadmap/phases/phase-11.5/archives/GEMINI_MIR_LLVM_CONSULTATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.5/archives/GEMINI_MIR_LLVM_CONSULTATION.md rename to docs/archive/roadmap/phases/phase-11.5/archives/GEMINI_MIR_LLVM_CONSULTATION.md diff --git a/docs/development/roadmap/phases/phase-11.7_jit_complete/CURRENT_TASK.md b/docs/archive/roadmap/phases/phase-11.7_jit_complete/CURRENT_TASK.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.7_jit_complete/CURRENT_TASK.md rename to docs/archive/roadmap/phases/phase-11.7_jit_complete/CURRENT_TASK.md diff --git a/docs/development/roadmap/phases/phase-11.7_jit_complete/MEETING_NOTES.md b/docs/archive/roadmap/phases/phase-11.7_jit_complete/MEETING_NOTES.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.7_jit_complete/MEETING_NOTES.md rename to docs/archive/roadmap/phases/phase-11.7_jit_complete/MEETING_NOTES.md diff --git a/docs/development/roadmap/phases/phase-11.7_jit_complete/PLAN.md b/docs/archive/roadmap/phases/phase-11.7_jit_complete/PLAN.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.7_jit_complete/PLAN.md rename to docs/archive/roadmap/phases/phase-11.7_jit_complete/PLAN.md diff --git a/docs/development/roadmap/phases/phase-11.7_jit_complete/README.md b/docs/archive/roadmap/phases/phase-11.7_jit_complete/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.7_jit_complete/README.md rename to docs/archive/roadmap/phases/phase-11.7_jit_complete/README.md diff --git a/docs/development/roadmap/phases/phase-11.7_jit_complete/async_task_system/PLAN.md b/docs/archive/roadmap/phases/phase-11.7_jit_complete/async_task_system/PLAN.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.7_jit_complete/async_task_system/PLAN.md rename to docs/archive/roadmap/phases/phase-11.7_jit_complete/async_task_system/PLAN.md diff --git a/docs/development/roadmap/phases/phase-11.7_jit_complete/async_task_system/README.md b/docs/archive/roadmap/phases/phase-11.7_jit_complete/async_task_system/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.7_jit_complete/async_task_system/README.md rename to docs/archive/roadmap/phases/phase-11.7_jit_complete/async_task_system/README.md diff --git a/docs/development/roadmap/phases/phase-11.7_jit_complete/async_task_system/SPEC.md b/docs/archive/roadmap/phases/phase-11.7_jit_complete/async_task_system/SPEC.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.7_jit_complete/async_task_system/SPEC.md rename to docs/archive/roadmap/phases/phase-11.7_jit_complete/async_task_system/SPEC.md diff --git a/docs/development/roadmap/phases/phase-11.8_mir_cleanup/PLAN.md b/docs/archive/roadmap/phases/phase-11.8_mir_cleanup/PLAN.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.8_mir_cleanup/PLAN.md rename to docs/archive/roadmap/phases/phase-11.8_mir_cleanup/PLAN.md diff --git a/docs/development/roadmap/phases/phase-11.8_mir_cleanup/README.md b/docs/archive/roadmap/phases/phase-11.8_mir_cleanup/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.8_mir_cleanup/README.md rename to docs/archive/roadmap/phases/phase-11.8_mir_cleanup/README.md diff --git a/docs/development/roadmap/phases/phase-11.8_mir_cleanup/TECHNICAL_SPEC.md b/docs/archive/roadmap/phases/phase-11.8_mir_cleanup/TECHNICAL_SPEC.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.8_mir_cleanup/TECHNICAL_SPEC.md rename to docs/archive/roadmap/phases/phase-11.8_mir_cleanup/TECHNICAL_SPEC.md diff --git a/docs/development/roadmap/phases/phase-11.9/PLAN.md b/docs/archive/roadmap/phases/phase-11.9/PLAN.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/PLAN.md rename to docs/archive/roadmap/phases/phase-11.9/PLAN.md diff --git a/docs/development/roadmap/phases/phase-11.9/README.md b/docs/archive/roadmap/phases/phase-11.9/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/README.md rename to docs/archive/roadmap/phases/phase-11.9/README.md diff --git a/docs/development/roadmap/phases/phase-11.9/UNIFIED-GRAMMAR-DESIGN-SUMMARY.md b/docs/archive/roadmap/phases/phase-11.9/UNIFIED-GRAMMAR-DESIGN-SUMMARY.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/UNIFIED-GRAMMAR-DESIGN-SUMMARY.md rename to docs/archive/roadmap/phases/phase-11.9/UNIFIED-GRAMMAR-DESIGN-SUMMARY.md diff --git a/docs/development/roadmap/phases/phase-11.9/advanced-designs/box-first-grammar-architecture.md b/docs/archive/roadmap/phases/phase-11.9/advanced-designs/box-first-grammar-architecture.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/advanced-designs/box-first-grammar-architecture.md rename to docs/archive/roadmap/phases/phase-11.9/advanced-designs/box-first-grammar-architecture.md diff --git a/docs/development/roadmap/phases/phase-11.9/advanced-designs/root-cutting-architecture.md b/docs/archive/roadmap/phases/phase-11.9/advanced-designs/root-cutting-architecture.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/advanced-designs/root-cutting-architecture.md rename to docs/archive/roadmap/phases/phase-11.9/advanced-designs/root-cutting-architecture.md diff --git a/docs/development/roadmap/phases/phase-11.9/advanced-designs/zero-knowledge-architecture.md b/docs/archive/roadmap/phases/phase-11.9/advanced-designs/zero-knowledge-architecture.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/advanced-designs/zero-knowledge-architecture.md rename to docs/archive/roadmap/phases/phase-11.9/advanced-designs/zero-knowledge-architecture.md diff --git a/docs/development/roadmap/phases/phase-11.9/ai-deep-thoughts-unified-grammar.md b/docs/archive/roadmap/phases/phase-11.9/ai-deep-thoughts-unified-grammar.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/ai-deep-thoughts-unified-grammar.md rename to docs/archive/roadmap/phases/phase-11.9/ai-deep-thoughts-unified-grammar.md diff --git a/docs/development/roadmap/phases/phase-11.9/archive/grammar-unification.txt b/docs/archive/roadmap/phases/phase-11.9/archive/grammar-unification.txt similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/archive/grammar-unification.txt rename to docs/archive/roadmap/phases/phase-11.9/archive/grammar-unification.txt diff --git a/docs/development/roadmap/phases/phase-11.9/archive/implementation-plan.txt b/docs/archive/roadmap/phases/phase-11.9/archive/implementation-plan.txt similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/archive/implementation-plan.txt rename to docs/archive/roadmap/phases/phase-11.9/archive/implementation-plan.txt diff --git a/docs/development/roadmap/phases/phase-11.9/archive/nyash-grammar-v1.yaml b/docs/archive/roadmap/phases/phase-11.9/archive/nyash-grammar-v1.yaml similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/archive/nyash-grammar-v1.yaml rename to docs/archive/roadmap/phases/phase-11.9/archive/nyash-grammar-v1.yaml diff --git a/docs/development/roadmap/phases/phase-11.9/chatgpt5-feedback-integration.md b/docs/archive/roadmap/phases/phase-11.9/chatgpt5-feedback-integration.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/chatgpt5-feedback-integration.md rename to docs/archive/roadmap/phases/phase-11.9/chatgpt5-feedback-integration.md diff --git a/docs/development/roadmap/phases/phase-11.9/unified-grammar-architecture.md b/docs/archive/roadmap/phases/phase-11.9/unified-grammar-architecture.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/unified-grammar-architecture.md rename to docs/archive/roadmap/phases/phase-11.9/unified-grammar-architecture.md diff --git a/docs/development/roadmap/phases/phase-11.9/unified-keyword-system.md b/docs/archive/roadmap/phases/phase-11.9/unified-keyword-system.md similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/unified-keyword-system.md rename to docs/archive/roadmap/phases/phase-11.9/unified-keyword-system.md diff --git a/docs/development/roadmap/phases/phase-11.9/unified-semantics-implementation.txt b/docs/archive/roadmap/phases/phase-11.9/unified-semantics-implementation.txt similarity index 100% rename from docs/development/roadmap/phases/phase-11.9/unified-semantics-implementation.txt rename to docs/archive/roadmap/phases/phase-11.9/unified-semantics-implementation.txt diff --git a/docs/development/roadmap/phases/phase-11/AWESOME_RUST_SUBMISSION.md b/docs/archive/roadmap/phases/phase-11/AWESOME_RUST_SUBMISSION.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/AWESOME_RUST_SUBMISSION.md rename to docs/archive/roadmap/phases/phase-11/AWESOME_RUST_SUBMISSION.md diff --git a/docs/development/roadmap/phases/phase-11/BOXCALL_UNIFICATION_PITFALLS_AND_SOLUTIONS.md b/docs/archive/roadmap/phases/phase-11/BOXCALL_UNIFICATION_PITFALLS_AND_SOLUTIONS.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/BOXCALL_UNIFICATION_PITFALLS_AND_SOLUTIONS.md rename to docs/archive/roadmap/phases/phase-11/BOXCALL_UNIFICATION_PITFALLS_AND_SOLUTIONS.md diff --git a/docs/development/roadmap/phases/phase-11/LLVM_SETUP_GUIDE.md b/docs/archive/roadmap/phases/phase-11/LLVM_SETUP_GUIDE.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/LLVM_SETUP_GUIDE.md rename to docs/archive/roadmap/phases/phase-11/LLVM_SETUP_GUIDE.md diff --git a/docs/development/roadmap/phases/phase-11/LLVM_SETUP_WINDOWS.md b/docs/archive/roadmap/phases/phase-11/LLVM_SETUP_WINDOWS.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/LLVM_SETUP_WINDOWS.md rename to docs/archive/roadmap/phases/phase-11/LLVM_SETUP_WINDOWS.md diff --git a/docs/development/roadmap/phases/phase-11/MIR_ANNOTATION_SYSTEM.md b/docs/archive/roadmap/phases/phase-11/MIR_ANNOTATION_SYSTEM.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/MIR_ANNOTATION_SYSTEM.md rename to docs/archive/roadmap/phases/phase-11/MIR_ANNOTATION_SYSTEM.md diff --git a/docs/development/roadmap/phases/phase-11/MIR_TO_LLVM_CONVERSION_PLAN.md b/docs/archive/roadmap/phases/phase-11/MIR_TO_LLVM_CONVERSION_PLAN.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/MIR_TO_LLVM_CONVERSION_PLAN.md rename to docs/archive/roadmap/phases/phase-11/MIR_TO_LLVM_CONVERSION_PLAN.md diff --git a/docs/development/roadmap/phases/phase-11/README.md b/docs/archive/roadmap/phases/phase-11/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/README.md rename to docs/archive/roadmap/phases/phase-11/README.md diff --git a/docs/development/roadmap/phases/phase-11/SKIP_PHASE_10_DECISION.md b/docs/archive/roadmap/phases/phase-11/SKIP_PHASE_10_DECISION.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/SKIP_PHASE_10_DECISION.md rename to docs/archive/roadmap/phases/phase-11/SKIP_PHASE_10_DECISION.md diff --git a/docs/development/roadmap/phases/phase-11/archives/AI_CONFERENCE_CODEX_ANALYSIS.md b/docs/archive/roadmap/phases/phase-11/archives/AI_CONFERENCE_CODEX_ANALYSIS.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/archives/AI_CONFERENCE_CODEX_ANALYSIS.md rename to docs/archive/roadmap/phases/phase-11/archives/AI_CONFERENCE_CODEX_ANALYSIS.md diff --git a/docs/development/roadmap/phases/phase-11/archives/AI_CONFERENCE_GEMINI_ANALYSIS.md b/docs/archive/roadmap/phases/phase-11/archives/AI_CONFERENCE_GEMINI_ANALYSIS.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/archives/AI_CONFERENCE_GEMINI_ANALYSIS.md rename to docs/archive/roadmap/phases/phase-11/archives/AI_CONFERENCE_GEMINI_ANALYSIS.md diff --git a/docs/development/roadmap/phases/phase-11/archives/AI_CONFERENCE_MIR_LLVM_CONVERSION.md b/docs/archive/roadmap/phases/phase-11/archives/AI_CONFERENCE_MIR_LLVM_CONVERSION.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/archives/AI_CONFERENCE_MIR_LLVM_CONVERSION.md rename to docs/archive/roadmap/phases/phase-11/archives/AI_CONFERENCE_MIR_LLVM_CONVERSION.md diff --git a/docs/development/roadmap/phases/phase-11/archives/AI_CONFERENCE_SUMMARY.md b/docs/archive/roadmap/phases/phase-11/archives/AI_CONFERENCE_SUMMARY.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/archives/AI_CONFERENCE_SUMMARY.md rename to docs/archive/roadmap/phases/phase-11/archives/AI_CONFERENCE_SUMMARY.md diff --git a/docs/development/roadmap/phases/phase-11/archives/BOX_SSA_CORE_15_FINAL.md b/docs/archive/roadmap/phases/phase-11/archives/BOX_SSA_CORE_15_FINAL.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/archives/BOX_SSA_CORE_15_FINAL.md rename to docs/archive/roadmap/phases/phase-11/archives/BOX_SSA_CORE_15_FINAL.md diff --git a/docs/development/roadmap/phases/phase-11/phase10_aot_scaffolding.md b/docs/archive/roadmap/phases/phase-11/phase10_aot_scaffolding.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/phase10_aot_scaffolding.md rename to docs/archive/roadmap/phases/phase-11/phase10_aot_scaffolding.md diff --git a/docs/development/roadmap/phases/phase-11/phase_10_x_llvm_backend_skeleton.md b/docs/archive/roadmap/phases/phase-11/phase_10_x_llvm_backend_skeleton.md similarity index 100% rename from docs/development/roadmap/phases/phase-11/phase_10_x_llvm_backend_skeleton.md rename to docs/archive/roadmap/phases/phase-11/phase_10_x_llvm_backend_skeleton.md diff --git a/docs/development/roadmap/phases/phase-12.5/README.md b/docs/archive/roadmap/phases/phase-12.5/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.5/README.md rename to docs/archive/roadmap/phases/phase-12.5/README.md diff --git a/docs/development/roadmap/phases/phase-12.5/debug-safety-comparison.md b/docs/archive/roadmap/phases/phase-12.5/debug-safety-comparison.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.5/debug-safety-comparison.md rename to docs/archive/roadmap/phases/phase-12.5/debug-safety-comparison.md diff --git a/docs/development/roadmap/phases/phase-12.5/implementation-examples.md b/docs/archive/roadmap/phases/phase-12.5/implementation-examples.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.5/implementation-examples.md rename to docs/archive/roadmap/phases/phase-12.5/implementation-examples.md diff --git a/docs/development/roadmap/phases/phase-12.5/optimization-strategy.txt b/docs/archive/roadmap/phases/phase-12.5/optimization-strategy.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.5/optimization-strategy.txt rename to docs/archive/roadmap/phases/phase-12.5/optimization-strategy.txt diff --git a/docs/development/roadmap/phases/phase-12.7/README.md b/docs/archive/roadmap/phases/phase-12.7/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/README.md rename to docs/archive/roadmap/phases/phase-12.7/README.md diff --git a/docs/development/roadmap/phases/phase-12.7/ai-feedback/README.md b/docs/archive/roadmap/phases/phase-12.7/ai-feedback/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ai-feedback/README.md rename to docs/archive/roadmap/phases/phase-12.7/ai-feedback/README.md diff --git a/docs/development/roadmap/phases/phase-12.7/ai-feedback/actionable-insights.md b/docs/archive/roadmap/phases/phase-12.7/ai-feedback/actionable-insights.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ai-feedback/actionable-insights.md rename to docs/archive/roadmap/phases/phase-12.7/ai-feedback/actionable-insights.md diff --git a/docs/development/roadmap/phases/phase-12.7/ai-feedback/chatgpt5-ancp-implementation-advice.md b/docs/archive/roadmap/phases/phase-12.7/ai-feedback/chatgpt5-ancp-implementation-advice.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ai-feedback/chatgpt5-ancp-implementation-advice.md rename to docs/archive/roadmap/phases/phase-12.7/ai-feedback/chatgpt5-ancp-implementation-advice.md diff --git a/docs/development/roadmap/phases/phase-12.7/ai-feedback/codex-ancp-response.md b/docs/archive/roadmap/phases/phase-12.7/ai-feedback/codex-ancp-response.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ai-feedback/codex-ancp-response.md rename to docs/archive/roadmap/phases/phase-12.7/ai-feedback/codex-ancp-response.md diff --git a/docs/development/roadmap/phases/phase-12.7/ai-feedback/gemini-ancp-response.md b/docs/archive/roadmap/phases/phase-12.7/ai-feedback/gemini-ancp-response.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ai-feedback/gemini-ancp-response.md rename to docs/archive/roadmap/phases/phase-12.7/ai-feedback/gemini-ancp-response.md diff --git a/docs/development/roadmap/phases/phase-12.7/ai-feedback/quick-implementation-guide.md b/docs/archive/roadmap/phases/phase-12.7/ai-feedback/quick-implementation-guide.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ai-feedback/quick-implementation-guide.md rename to docs/archive/roadmap/phases/phase-12.7/ai-feedback/quick-implementation-guide.md diff --git a/docs/development/roadmap/phases/phase-12.7/ai-feedback/technical-checklist.md b/docs/archive/roadmap/phases/phase-12.7/ai-feedback/technical-checklist.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ai-feedback/technical-checklist.md rename to docs/archive/roadmap/phases/phase-12.7/ai-feedback/technical-checklist.md diff --git a/docs/development/roadmap/phases/phase-12.7/ancp-specs/ANCP-Reversible-Mapping-v1.md b/docs/archive/roadmap/phases/phase-12.7/ancp-specs/ANCP-Reversible-Mapping-v1.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ancp-specs/ANCP-Reversible-Mapping-v1.md rename to docs/archive/roadmap/phases/phase-12.7/ancp-specs/ANCP-Reversible-Mapping-v1.md diff --git a/docs/development/roadmap/phases/phase-12.7/ancp-specs/ANCP-Token-Specification-v1.md b/docs/archive/roadmap/phases/phase-12.7/ancp-specs/ANCP-Token-Specification-v1.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ancp-specs/ANCP-Token-Specification-v1.md rename to docs/archive/roadmap/phases/phase-12.7/ancp-specs/ANCP-Token-Specification-v1.md diff --git a/docs/development/roadmap/phases/phase-12.7/ancp-specs/README.md b/docs/archive/roadmap/phases/phase-12.7/ancp-specs/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ancp-specs/README.md rename to docs/archive/roadmap/phases/phase-12.7/ancp-specs/README.md diff --git a/docs/development/roadmap/phases/phase-12.7/ancp-specs/ULTIMATE-AI-CODING-GUIDE.md b/docs/archive/roadmap/phases/phase-12.7/ancp-specs/ULTIMATE-AI-CODING-GUIDE.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ancp-specs/ULTIMATE-AI-CODING-GUIDE.md rename to docs/archive/roadmap/phases/phase-12.7/ancp-specs/ULTIMATE-AI-CODING-GUIDE.md diff --git a/docs/development/roadmap/phases/phase-12.7/ancp-specs/chatgpt5-sugar-syntax-spec.md b/docs/archive/roadmap/phases/phase-12.7/ancp-specs/chatgpt5-sugar-syntax-spec.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ancp-specs/chatgpt5-sugar-syntax-spec.md rename to docs/archive/roadmap/phases/phase-12.7/ancp-specs/chatgpt5-sugar-syntax-spec.md diff --git a/docs/development/roadmap/phases/phase-12.7/ancp-specs/compression-reference-libraries.md b/docs/archive/roadmap/phases/phase-12.7/ancp-specs/compression-reference-libraries.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ancp-specs/compression-reference-libraries.md rename to docs/archive/roadmap/phases/phase-12.7/ancp-specs/compression-reference-libraries.md diff --git a/docs/development/roadmap/phases/phase-12.7/ancp-specs/extreme-sugar-proposals.txt b/docs/archive/roadmap/phases/phase-12.7/ancp-specs/extreme-sugar-proposals.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ancp-specs/extreme-sugar-proposals.txt rename to docs/archive/roadmap/phases/phase-12.7/ancp-specs/extreme-sugar-proposals.txt diff --git a/docs/development/roadmap/phases/phase-12.7/ancp-specs/sugar-formatter-tool.txt b/docs/archive/roadmap/phases/phase-12.7/ancp-specs/sugar-formatter-tool.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/ancp-specs/sugar-formatter-tool.txt rename to docs/archive/roadmap/phases/phase-12.7/ancp-specs/sugar-formatter-tool.txt diff --git a/docs/development/roadmap/phases/phase-12.7/archive/ai-integration-guide.md b/docs/archive/roadmap/phases/phase-12.7/archive/ai-integration-guide.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/ai-integration-guide.md rename to docs/archive/roadmap/phases/phase-12.7/archive/ai-integration-guide.md diff --git a/docs/development/roadmap/phases/phase-12.7/archive/essential-features-consultation.txt b/docs/archive/roadmap/phases/phase-12.7/archive/essential-features-consultation.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/essential-features-consultation.txt rename to docs/archive/roadmap/phases/phase-12.7/archive/essential-features-consultation.txt diff --git a/docs/development/roadmap/phases/phase-12.7/archive/examples.md b/docs/archive/roadmap/phases/phase-12.7/archive/examples.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/examples.md rename to docs/archive/roadmap/phases/phase-12.7/archive/examples.md diff --git a/docs/development/roadmap/phases/phase-12.7/archive/grammar-fields-consultation.txt b/docs/archive/roadmap/phases/phase-12.7/archive/grammar-fields-consultation.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/grammar-fields-consultation.txt rename to docs/archive/roadmap/phases/phase-12.7/archive/grammar-fields-consultation.txt diff --git a/docs/development/roadmap/phases/phase-12.7/archive/grammar-reform-discussion.txt b/docs/archive/roadmap/phases/phase-12.7/archive/grammar-reform-discussion.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/grammar-reform-discussion.txt rename to docs/archive/roadmap/phases/phase-12.7/archive/grammar-reform-discussion.txt diff --git a/docs/development/roadmap/phases/phase-12.7/archive/grammar-reform-summary.txt b/docs/archive/roadmap/phases/phase-12.7/archive/grammar-reform-summary.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/grammar-reform-summary.txt rename to docs/archive/roadmap/phases/phase-12.7/archive/grammar-reform-summary.txt diff --git a/docs/development/roadmap/phases/phase-12.7/archive/implementation-plan.md b/docs/archive/roadmap/phases/phase-12.7/archive/implementation-plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/implementation-plan.md rename to docs/archive/roadmap/phases/phase-12.7/archive/implementation-plan.md diff --git a/docs/development/roadmap/phases/phase-12.7/archive/powerful-syntax-sugar-proposals.txt b/docs/archive/roadmap/phases/phase-12.7/archive/powerful-syntax-sugar-proposals.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/powerful-syntax-sugar-proposals.txt rename to docs/archive/roadmap/phases/phase-12.7/archive/powerful-syntax-sugar-proposals.txt diff --git a/docs/development/roadmap/phases/phase-12.7/archive/technical-spec.md b/docs/archive/roadmap/phases/phase-12.7/archive/technical-spec.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/technical-spec.md rename to docs/archive/roadmap/phases/phase-12.7/archive/technical-spec.md diff --git a/docs/development/roadmap/phases/phase-12.7/archive/when-naming-fun-consultation.txt b/docs/archive/roadmap/phases/phase-12.7/archive/when-naming-fun-consultation.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/when-naming-fun-consultation.txt rename to docs/archive/roadmap/phases/phase-12.7/archive/when-naming-fun-consultation.txt diff --git a/docs/development/roadmap/phases/phase-12.7/archive/when-syntax-deep-consultation.txt b/docs/archive/roadmap/phases/phase-12.7/archive/when-syntax-deep-consultation.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/archive/when-syntax-deep-consultation.txt rename to docs/archive/roadmap/phases/phase-12.7/archive/when-syntax-deep-consultation.txt diff --git a/docs/development/roadmap/phases/phase-12.7/grammar-specs/README.md b/docs/archive/roadmap/phases/phase-12.7/grammar-specs/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/grammar-specs/README.md rename to docs/archive/roadmap/phases/phase-12.7/grammar-specs/README.md diff --git a/docs/development/roadmap/phases/phase-12.7/grammar-specs/grammar-reform-final-decision.txt b/docs/archive/roadmap/phases/phase-12.7/grammar-specs/grammar-reform-final-decision.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/grammar-specs/grammar-reform-final-decision.txt rename to docs/archive/roadmap/phases/phase-12.7/grammar-specs/grammar-reform-final-decision.txt diff --git a/docs/development/roadmap/phases/phase-12.7/grammar-specs/grammar-technical-spec.txt b/docs/archive/roadmap/phases/phase-12.7/grammar-specs/grammar-technical-spec.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/grammar-specs/grammar-technical-spec.txt rename to docs/archive/roadmap/phases/phase-12.7/grammar-specs/grammar-technical-spec.txt diff --git a/docs/development/roadmap/phases/phase-12.7/implementation/ANCP-IMPLEMENTATION-PLAN.md b/docs/archive/roadmap/phases/phase-12.7/implementation/ANCP-IMPLEMENTATION-PLAN.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/implementation/ANCP-IMPLEMENTATION-PLAN.md rename to docs/archive/roadmap/phases/phase-12.7/implementation/ANCP-IMPLEMENTATION-PLAN.md diff --git a/docs/development/roadmap/phases/phase-12.7/implementation/README.md b/docs/archive/roadmap/phases/phase-12.7/implementation/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/implementation/README.md rename to docs/archive/roadmap/phases/phase-12.7/implementation/README.md diff --git a/docs/development/roadmap/phases/phase-12.7/implementation/implementation-final-checklist.txt b/docs/archive/roadmap/phases/phase-12.7/implementation/implementation-final-checklist.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/implementation/implementation-final-checklist.txt rename to docs/archive/roadmap/phases/phase-12.7/implementation/implementation-final-checklist.txt diff --git a/docs/development/roadmap/phases/phase-12.7/予定.txt b/docs/archive/roadmap/phases/phase-12.7/予定.txt similarity index 100% rename from docs/development/roadmap/phases/phase-12.7/予定.txt rename to docs/archive/roadmap/phases/phase-12.7/予定.txt diff --git a/docs/development/roadmap/phases/phase-12/BREAKTHROUGH_CONCLUSION.md b/docs/archive/roadmap/phases/phase-12/BREAKTHROUGH_CONCLUSION.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/BREAKTHROUGH_CONCLUSION.md rename to docs/archive/roadmap/phases/phase-12/BREAKTHROUGH_CONCLUSION.md diff --git a/docs/development/roadmap/phases/phase-12/IMPLEMENTATION_ROADMAP.md b/docs/archive/roadmap/phases/phase-12/IMPLEMENTATION_ROADMAP.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/IMPLEMENTATION_ROADMAP.md rename to docs/archive/roadmap/phases/phase-12/IMPLEMENTATION_ROADMAP.md diff --git a/docs/development/roadmap/phases/phase-12/PLAN.md b/docs/archive/roadmap/phases/phase-12/PLAN.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/PLAN.md rename to docs/archive/roadmap/phases/phase-12/PLAN.md diff --git a/docs/development/roadmap/phases/phase-12/README.md b/docs/archive/roadmap/phases/phase-12/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/README.md rename to docs/archive/roadmap/phases/phase-12/README.md diff --git a/docs/development/roadmap/phases/phase-12/TASKS.md b/docs/archive/roadmap/phases/phase-12/TASKS.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/TASKS.md rename to docs/archive/roadmap/phases/phase-12/TASKS.md diff --git a/docs/development/roadmap/phases/phase-12/TECHNICAL_DECISIONS.md b/docs/archive/roadmap/phases/phase-12/TECHNICAL_DECISIONS.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/TECHNICAL_DECISIONS.md rename to docs/archive/roadmap/phases/phase-12/TECHNICAL_DECISIONS.md diff --git a/docs/development/roadmap/phases/phase-12/USER_BOX_FFI_CHALLENGE.md b/docs/archive/roadmap/phases/phase-12/USER_BOX_FFI_CHALLENGE.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/USER_BOX_FFI_CHALLENGE.md rename to docs/archive/roadmap/phases/phase-12/USER_BOX_FFI_CHALLENGE.md diff --git a/docs/development/roadmap/phases/phase-12/ai-consultation-unified-typebox.md b/docs/archive/roadmap/phases/phase-12/ai-consultation-unified-typebox.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/ai-consultation-unified-typebox.md rename to docs/archive/roadmap/phases/phase-12/ai-consultation-unified-typebox.md diff --git a/docs/development/roadmap/phases/phase-12/archive/01_roadmap_final.md b/docs/archive/roadmap/phases/phase-12/archive/01_roadmap_final.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/01_roadmap_final.md rename to docs/archive/roadmap/phases/phase-12/archive/01_roadmap_final.md diff --git a/docs/development/roadmap/phases/phase-12/archive/02_spec_embedded_vm.md b/docs/archive/roadmap/phases/phase-12/archive/02_spec_embedded_vm.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/02_spec_embedded_vm.md rename to docs/archive/roadmap/phases/phase-12/archive/02_spec_embedded_vm.md diff --git a/docs/development/roadmap/phases/phase-12/archive/03_spec_box_arguments.md b/docs/archive/roadmap/phases/phase-12/archive/03_spec_box_arguments.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/03_spec_box_arguments.md rename to docs/archive/roadmap/phases/phase-12/archive/03_spec_box_arguments.md diff --git a/docs/development/roadmap/phases/phase-12/archive/CRITICAL-ISSUE.md b/docs/archive/roadmap/phases/phase-12/archive/CRITICAL-ISSUE.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/CRITICAL-ISSUE.md rename to docs/archive/roadmap/phases/phase-12/archive/CRITICAL-ISSUE.md diff --git a/docs/development/roadmap/phases/phase-12/archive/EMBEDDED-VM-BOX-HANDLING.md b/docs/archive/roadmap/phases/phase-12/archive/EMBEDDED-VM-BOX-HANDLING.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/EMBEDDED-VM-BOX-HANDLING.md rename to docs/archive/roadmap/phases/phase-12/archive/EMBEDDED-VM-BOX-HANDLING.md diff --git a/docs/development/roadmap/phases/phase-12/archive/OLD-README.md b/docs/archive/roadmap/phases/phase-12/archive/OLD-README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/OLD-README.md rename to docs/archive/roadmap/phases/phase-12/archive/OLD-README.md diff --git a/docs/development/roadmap/phases/phase-12/archive/PLUGIN-BOX-ARG-DECLARATION.md b/docs/archive/roadmap/phases/phase-12/archive/PLUGIN-BOX-ARG-DECLARATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/PLUGIN-BOX-ARG-DECLARATION.md rename to docs/archive/roadmap/phases/phase-12/archive/PLUGIN-BOX-ARG-DECLARATION.md diff --git a/docs/development/roadmap/phases/phase-12/archive/PLUGIN-BOX-HANDLE-SUPPORT.md b/docs/archive/roadmap/phases/phase-12/archive/PLUGIN-BOX-HANDLE-SUPPORT.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/PLUGIN-BOX-HANDLE-SUPPORT.md rename to docs/archive/roadmap/phases/phase-12/archive/PLUGIN-BOX-HANDLE-SUPPORT.md diff --git a/docs/development/roadmap/phases/phase-12/archive/README.md b/docs/archive/roadmap/phases/phase-12/archive/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/README.md rename to docs/archive/roadmap/phases/phase-12/archive/README.md diff --git a/docs/development/roadmap/phases/phase-12/archive/REVISED-PROPOSAL.md b/docs/archive/roadmap/phases/phase-12/archive/REVISED-PROPOSAL.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/REVISED-PROPOSAL.md rename to docs/archive/roadmap/phases/phase-12/archive/REVISED-PROPOSAL.md diff --git a/docs/development/roadmap/phases/phase-12/archive/c-abi-compatibility.md b/docs/archive/roadmap/phases/phase-12/archive/c-abi-compatibility.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/c-abi-compatibility.md rename to docs/archive/roadmap/phases/phase-12/archive/c-abi-compatibility.md diff --git a/docs/development/roadmap/phases/phase-12/archive/codex-technical-proposal.md b/docs/archive/roadmap/phases/phase-12/archive/codex-technical-proposal.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/codex-technical-proposal.md rename to docs/archive/roadmap/phases/phase-12/archive/codex-technical-proposal.md diff --git a/docs/development/roadmap/phases/phase-12/archive/gemini-analysis-script-plugins.md b/docs/archive/roadmap/phases/phase-12/archive/gemini-analysis-script-plugins.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/gemini-analysis-script-plugins.md rename to docs/archive/roadmap/phases/phase-12/archive/gemini-analysis-script-plugins.md diff --git a/docs/development/roadmap/phases/phase-12/archive/legacy-abi-docs/C-ABI-BOX-FACTORY-DESIGN.md b/docs/archive/roadmap/phases/phase-12/archive/legacy-abi-docs/C-ABI-BOX-FACTORY-DESIGN.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/legacy-abi-docs/C-ABI-BOX-FACTORY-DESIGN.md rename to docs/archive/roadmap/phases/phase-12/archive/legacy-abi-docs/C-ABI-BOX-FACTORY-DESIGN.md diff --git a/docs/development/roadmap/phases/phase-12/archive/legacy-abi-docs/NYASH-ABI-DESIGN.md b/docs/archive/roadmap/phases/phase-12/archive/legacy-abi-docs/NYASH-ABI-DESIGN.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/legacy-abi-docs/NYASH-ABI-DESIGN.md rename to docs/archive/roadmap/phases/phase-12/archive/legacy-abi-docs/NYASH-ABI-DESIGN.md diff --git a/docs/development/roadmap/phases/phase-12/archive/legacy-abi-docs/c-abi.md b/docs/archive/roadmap/phases/phase-12/archive/legacy-abi-docs/c-abi.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/legacy-abi-docs/c-abi.md rename to docs/archive/roadmap/phases/phase-12/archive/legacy-abi-docs/c-abi.md diff --git a/docs/development/roadmap/phases/phase-12/archive/legacy-abi-docs/nyash-abi.md b/docs/archive/roadmap/phases/phase-12/archive/legacy-abi-docs/nyash-abi.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/legacy-abi-docs/nyash-abi.md rename to docs/archive/roadmap/phases/phase-12/archive/legacy-abi-docs/nyash-abi.md diff --git a/docs/development/roadmap/phases/phase-12/archive/synthesis-script-plugin-revolution.md b/docs/archive/roadmap/phases/phase-12/archive/synthesis-script-plugin-revolution.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/archive/synthesis-script-plugin-revolution.md rename to docs/archive/roadmap/phases/phase-12/archive/synthesis-script-plugin-revolution.md diff --git a/docs/development/roadmap/phases/phase-12/design/NYASH-ABI-C-IMPLEMENTATION.md b/docs/archive/roadmap/phases/phase-12/design/NYASH-ABI-C-IMPLEMENTATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/design/NYASH-ABI-C-IMPLEMENTATION.md rename to docs/archive/roadmap/phases/phase-12/design/NYASH-ABI-C-IMPLEMENTATION.md diff --git a/docs/development/roadmap/phases/phase-12/design/UNIFIED-ABI-DESIGN.md b/docs/archive/roadmap/phases/phase-12/design/UNIFIED-ABI-DESIGN.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/design/UNIFIED-ABI-DESIGN.md rename to docs/archive/roadmap/phases/phase-12/design/UNIFIED-ABI-DESIGN.md diff --git a/docs/development/roadmap/phases/phase-12/design/WHY-AIS-FAILED.md b/docs/archive/roadmap/phases/phase-12/design/WHY-AIS-FAILED.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/design/WHY-AIS-FAILED.md rename to docs/archive/roadmap/phases/phase-12/design/WHY-AIS-FAILED.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/README.md b/docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/README.md rename to docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/README.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/codex-abi-implementation.md b/docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/codex-abi-implementation.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/codex-abi-implementation.md rename to docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/codex-abi-implementation.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/codex-boxcall-extension-analysis.md b/docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/codex-boxcall-extension-analysis.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/codex-boxcall-extension-analysis.md rename to docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/codex-boxcall-extension-analysis.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/deep-analysis-synthesis.md b/docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/deep-analysis-synthesis.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/deep-analysis-synthesis.md rename to docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/deep-analysis-synthesis.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/final-implementation-decision.md b/docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/final-implementation-decision.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/final-implementation-decision.md rename to docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/final-implementation-decision.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/gemini-abi-analysis.md b/docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/gemini-abi-analysis.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/abi-strategy-discussion/gemini-abi-analysis.md rename to docs/archive/roadmap/phases/phase-12/discussions/abi-strategy-discussion/gemini-abi-analysis.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/README.md b/docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/README.md rename to docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/README.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/codex-nyash-abi-implementation.md b/docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/codex-nyash-abi-implementation.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/codex-nyash-abi-implementation.md rename to docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/codex-nyash-abi-implementation.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/gemini-codex-deep-thoughts.md b/docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/gemini-codex-deep-thoughts.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/gemini-codex-deep-thoughts.md rename to docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/gemini-codex-deep-thoughts.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/gemini-nyash-abi-analysis.md b/docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/gemini-nyash-abi-analysis.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/gemini-nyash-abi-analysis.md rename to docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/gemini-nyash-abi-analysis.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/synthesis-nyash-abi-revolution.md b/docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/synthesis-nyash-abi-revolution.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/synthesis-nyash-abi-revolution.md rename to docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/synthesis-nyash-abi-revolution.md diff --git a/docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/unified-strategy.md b/docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/unified-strategy.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/discussions/nyash-abi-discussion/unified-strategy.md rename to docs/archive/roadmap/phases/phase-12/discussions/nyash-abi-discussion/unified-strategy.md diff --git a/docs/development/roadmap/phases/phase-12/migration-guide.md b/docs/archive/roadmap/phases/phase-12/migration-guide.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/migration-guide.md rename to docs/archive/roadmap/phases/phase-12/migration-guide.md diff --git a/docs/development/roadmap/phases/phase-12/nyash-script-plugins.md b/docs/archive/roadmap/phases/phase-12/nyash-script-plugins.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/nyash-script-plugins.md rename to docs/archive/roadmap/phases/phase-12/nyash-script-plugins.md diff --git a/docs/development/roadmap/phases/phase-12/specs/export-import-spec.md b/docs/archive/roadmap/phases/phase-12/specs/export-import-spec.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/specs/export-import-spec.md rename to docs/archive/roadmap/phases/phase-12/specs/export-import-spec.md diff --git a/docs/development/roadmap/phases/phase-12/specs/package-manager-design.md b/docs/archive/roadmap/phases/phase-12/specs/package-manager-design.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/specs/package-manager-design.md rename to docs/archive/roadmap/phases/phase-12/specs/package-manager-design.md diff --git a/docs/development/roadmap/phases/phase-12/specs/typebox-api-reference.md b/docs/archive/roadmap/phases/phase-12/specs/typebox-api-reference.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/specs/typebox-api-reference.md rename to docs/archive/roadmap/phases/phase-12/specs/typebox-api-reference.md diff --git a/docs/development/roadmap/phases/phase-12/unified-typebox-abi.md b/docs/archive/roadmap/phases/phase-12/unified-typebox-abi.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/unified-typebox-abi.md rename to docs/archive/roadmap/phases/phase-12/unified-typebox-abi.md diff --git a/docs/development/roadmap/phases/phase-12/unified-typebox-user-box.md b/docs/archive/roadmap/phases/phase-12/unified-typebox-user-box.md similarity index 100% rename from docs/development/roadmap/phases/phase-12/unified-typebox-user-box.md rename to docs/archive/roadmap/phases/phase-12/unified-typebox-user-box.md diff --git a/docs/development/roadmap/phases/phase-13/README.md b/docs/archive/roadmap/phases/phase-13/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-13/README.md rename to docs/archive/roadmap/phases/phase-13/README.md diff --git a/docs/development/roadmap/phases/phase-13/codex-browser-architecture-proposal.md b/docs/archive/roadmap/phases/phase-13/codex-browser-architecture-proposal.md similarity index 100% rename from docs/development/roadmap/phases/phase-13/codex-browser-architecture-proposal.md rename to docs/archive/roadmap/phases/phase-13/codex-browser-architecture-proposal.md diff --git a/docs/development/roadmap/phases/phase-13/gemini-browser-strategy-analysis.md b/docs/archive/roadmap/phases/phase-13/gemini-browser-strategy-analysis.md similarity index 100% rename from docs/development/roadmap/phases/phase-13/gemini-browser-strategy-analysis.md rename to docs/archive/roadmap/phases/phase-13/gemini-browser-strategy-analysis.md diff --git a/docs/development/roadmap/phases/phase-14/phase14_packaging_ci_polish.md b/docs/archive/roadmap/phases/phase-14/phase14_packaging_ci_polish.md similarity index 100% rename from docs/development/roadmap/phases/phase-14/phase14_packaging_ci_polish.md rename to docs/archive/roadmap/phases/phase-14/phase14_packaging_ci_polish.md diff --git a/docs/development/roadmap/phases/phase-15.5/README.md b/docs/archive/roadmap/phases/phase-15.5/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-15.5/README.md rename to docs/archive/roadmap/phases/phase-15.5/README.md diff --git a/docs/development/roadmap/phases/phase-15.5/implementation-status.md b/docs/archive/roadmap/phases/phase-15.5/implementation-status.md similarity index 100% rename from docs/development/roadmap/phases/phase-15.5/implementation-status.md rename to docs/archive/roadmap/phases/phase-15.5/implementation-status.md diff --git a/docs/development/roadmap/phases/phase-15.5/json-v0-centralization.md b/docs/archive/roadmap/phases/phase-15.5/json-v0-centralization.md similarity index 100% rename from docs/development/roadmap/phases/phase-15.5/json-v0-centralization.md rename to docs/archive/roadmap/phases/phase-15.5/json-v0-centralization.md diff --git a/docs/development/roadmap/phases/phase-15.5/migration-phases.md b/docs/archive/roadmap/phases/phase-15.5/migration-phases.md similarity index 100% rename from docs/development/roadmap/phases/phase-15.5/migration-phases.md rename to docs/archive/roadmap/phases/phase-15.5/migration-phases.md diff --git a/docs/development/roadmap/phases/phase-15.5/risk-analysis.md b/docs/archive/roadmap/phases/phase-15.5/risk-analysis.md similarity index 100% rename from docs/development/roadmap/phases/phase-15.5/risk-analysis.md rename to docs/archive/roadmap/phases/phase-15.5/risk-analysis.md diff --git a/docs/development/roadmap/phases/phase-15/README.md b/docs/archive/roadmap/phases/phase-15/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/README.md rename to docs/archive/roadmap/phases/phase-15/README.md diff --git a/docs/development/roadmap/phases/phase-15/ROADMAP.md b/docs/archive/roadmap/phases/phase-15/ROADMAP.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/ROADMAP.md rename to docs/archive/roadmap/phases/phase-15/ROADMAP.md diff --git a/docs/development/roadmap/phases/phase-15/archive/self-hosting-plan.txt b/docs/archive/roadmap/phases/phase-15/archive/self-hosting-plan.txt similarity index 100% rename from docs/development/roadmap/phases/phase-15/archive/self-hosting-plan.txt rename to docs/archive/roadmap/phases/phase-15/archive/self-hosting-plan.txt diff --git a/docs/development/roadmap/phases/phase-15/chatgpt5-nyrt-kernel-design.md b/docs/archive/roadmap/phases/phase-15/chatgpt5-nyrt-kernel-design.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/chatgpt5-nyrt-kernel-design.md rename to docs/archive/roadmap/phases/phase-15/chatgpt5-nyrt-kernel-design.md diff --git a/docs/development/roadmap/phases/phase-15/implementation/abi-migration-timing.md b/docs/archive/roadmap/phases/phase-15/implementation/abi-migration-timing.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/implementation/abi-migration-timing.md rename to docs/archive/roadmap/phases/phase-15/implementation/abi-migration-timing.md diff --git a/docs/development/roadmap/phases/phase-15/implementation/architecture.md b/docs/archive/roadmap/phases/phase-15/implementation/architecture.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/implementation/architecture.md rename to docs/archive/roadmap/phases/phase-15/implementation/architecture.md diff --git a/docs/development/roadmap/phases/phase-15/implementation/box-stacking.md b/docs/archive/roadmap/phases/phase-15/implementation/box-stacking.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/implementation/box-stacking.md rename to docs/archive/roadmap/phases/phase-15/implementation/box-stacking.md diff --git a/docs/development/roadmap/phases/phase-15/implementation/lld-strategy.md b/docs/archive/roadmap/phases/phase-15/implementation/lld-strategy.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/implementation/lld-strategy.md rename to docs/archive/roadmap/phases/phase-15/implementation/lld-strategy.md diff --git a/docs/development/roadmap/phases/phase-15/implementation/llvm-exe-strategy.md b/docs/archive/roadmap/phases/phase-15/implementation/llvm-exe-strategy.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/implementation/llvm-exe-strategy.md rename to docs/archive/roadmap/phases/phase-15/implementation/llvm-exe-strategy.md diff --git a/docs/development/roadmap/phases/phase-15/implementation/mir-builder-exe-design.md b/docs/archive/roadmap/phases/phase-15/implementation/mir-builder-exe-design.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/implementation/mir-builder-exe-design.md rename to docs/archive/roadmap/phases/phase-15/implementation/mir-builder-exe-design.md diff --git a/docs/development/roadmap/phases/phase-15/implementation/self-hosting-strategy-2025-09.md b/docs/archive/roadmap/phases/phase-15/implementation/self-hosting-strategy-2025-09.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/implementation/self-hosting-strategy-2025-09.md rename to docs/archive/roadmap/phases/phase-15/implementation/self-hosting-strategy-2025-09.md diff --git a/docs/development/roadmap/phases/phase-15/imports-namespace-plan.md b/docs/archive/roadmap/phases/phase-15/imports-namespace-plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/imports-namespace-plan.md rename to docs/archive/roadmap/phases/phase-15/imports-namespace-plan.md diff --git a/docs/development/roadmap/phases/phase-15/mir-call-unification-master-plan.md b/docs/archive/roadmap/phases/phase-15/mir-call-unification-master-plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/mir-call-unification-master-plan.md rename to docs/archive/roadmap/phases/phase-15/mir-call-unification-master-plan.md diff --git a/docs/development/roadmap/phases/phase-15/mir-callee-implementation-roadmap.md b/docs/archive/roadmap/phases/phase-15/mir-callee-implementation-roadmap.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/mir-callee-implementation-roadmap.md rename to docs/archive/roadmap/phases/phase-15/mir-callee-implementation-roadmap.md diff --git a/docs/development/roadmap/phases/phase-15/phase-15.1/README.md b/docs/archive/roadmap/phases/phase-15/phase-15.1/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/phase-15.1/README.md rename to docs/archive/roadmap/phases/phase-15/phase-15.1/README.md diff --git a/docs/development/roadmap/phases/phase-15/phase-15.5-core-box-unification.md b/docs/archive/roadmap/phases/phase-15/phase-15.5-core-box-unification.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/phase-15.5-core-box-unification.md rename to docs/archive/roadmap/phases/phase-15/phase-15.5-core-box-unification.md diff --git a/docs/development/roadmap/phases/phase-15/planning/macro_driven_replan.md b/docs/archive/roadmap/phases/phase-15/planning/macro_driven_replan.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/planning/macro_driven_replan.md rename to docs/archive/roadmap/phases/phase-15/planning/macro_driven_replan.md diff --git a/docs/development/roadmap/phases/phase-15/planning/preparation.md b/docs/archive/roadmap/phases/phase-15/planning/preparation.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/planning/preparation.md rename to docs/archive/roadmap/phases/phase-15/planning/preparation.md diff --git a/docs/development/roadmap/phases/phase-15/planning/sequence.md b/docs/archive/roadmap/phases/phase-15/planning/sequence.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/planning/sequence.md rename to docs/archive/roadmap/phases/phase-15/planning/sequence.md diff --git a/docs/development/roadmap/phases/phase-15/python-llvm-priority-rationale.md b/docs/archive/roadmap/phases/phase-15/python-llvm-priority-rationale.md similarity index 100% rename from docs/development/roadmap/phases/phase-15/python-llvm-priority-rationale.md rename to docs/archive/roadmap/phases/phase-15/python-llvm-priority-rationale.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/CHATGPT_ADDITIONAL_MACROS_ANALYSIS.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/CHATGPT_ADDITIONAL_MACROS_ANALYSIS.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/CHATGPT_ADDITIONAL_MACROS_ANALYSIS.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/CHATGPT_ADDITIONAL_MACROS_ANALYSIS.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/CHATGPT_CONSULTATION.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/CHATGPT_CONSULTATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/CHATGPT_CONSULTATION.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/CHATGPT_CONSULTATION.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/CODEX_CONSULTATION.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/CODEX_CONSULTATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/CODEX_CONSULTATION.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/CODEX_CONSULTATION.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/GEMINI_CONSULTATION.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/GEMINI_CONSULTATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/GEMINI_CONSULTATION.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/GEMINI_CONSULTATION.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/IMPLEMENTATION.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/IMPLEMENTATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/IMPLEMENTATION.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/IMPLEMENTATION.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/IMPLEMENTATION_ROADMAP.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/IMPLEMENTATION_ROADMAP.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/IMPLEMENTATION_ROADMAP.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/IMPLEMENTATION_ROADMAP.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/NEXT_IMPLEMENTATION_TASKS.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/NEXT_IMPLEMENTATION_TASKS.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/NEXT_IMPLEMENTATION_TASKS.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/NEXT_IMPLEMENTATION_TASKS.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/PATTERN_MATCHING_FOUNDATION.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/PATTERN_MATCHING_FOUNDATION.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/PATTERN_MATCHING_FOUNDATION.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/PATTERN_MATCHING_FOUNDATION.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/README.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/README.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/README.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/TECHNICAL_SPEC.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/TECHNICAL_SPEC.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/TECHNICAL_SPEC.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/TECHNICAL_SPEC.md diff --git a/docs/development/roadmap/phases/phase-16-macro-revolution/macro-examples.md b/docs/archive/roadmap/phases/phase-16-macro-revolution/macro-examples.md similarity index 100% rename from docs/development/roadmap/phases/phase-16-macro-revolution/macro-examples.md rename to docs/archive/roadmap/phases/phase-16-macro-revolution/macro-examples.md diff --git a/docs/development/roadmap/phases/phase-16/README.md b/docs/archive/roadmap/phases/phase-16/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-16/README.md rename to docs/archive/roadmap/phases/phase-16/README.md diff --git a/docs/development/roadmap/phases/phase-16/fold-lang-design.txt b/docs/archive/roadmap/phases/phase-16/fold-lang-design.txt similarity index 100% rename from docs/development/roadmap/phases/phase-16/fold-lang-design.txt rename to docs/archive/roadmap/phases/phase-16/fold-lang-design.txt diff --git a/docs/development/roadmap/phases/phase-16/implementation-notes.txt b/docs/archive/roadmap/phases/phase-16/implementation-notes.txt similarity index 100% rename from docs/development/roadmap/phases/phase-16/implementation-notes.txt rename to docs/archive/roadmap/phases/phase-16/implementation-notes.txt diff --git a/docs/development/roadmap/phases/phase-17-loopform-selfhost/MINI_VM_ROADMAP.md b/docs/archive/roadmap/phases/phase-17-loopform-selfhost/MINI_VM_ROADMAP.md similarity index 100% rename from docs/development/roadmap/phases/phase-17-loopform-selfhost/MINI_VM_ROADMAP.md rename to docs/archive/roadmap/phases/phase-17-loopform-selfhost/MINI_VM_ROADMAP.md diff --git a/docs/development/roadmap/phases/phase-17-loopform-selfhost/README.md b/docs/archive/roadmap/phases/phase-17-loopform-selfhost/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-17-loopform-selfhost/README.md rename to docs/archive/roadmap/phases/phase-17-loopform-selfhost/README.md diff --git a/docs/development/roadmap/phases/phase-17-loopform-selfhost/SCHEDULE.md b/docs/archive/roadmap/phases/phase-17-loopform-selfhost/SCHEDULE.md similarity index 100% rename from docs/development/roadmap/phases/phase-17-loopform-selfhost/SCHEDULE.md rename to docs/archive/roadmap/phases/phase-17-loopform-selfhost/SCHEDULE.md diff --git a/docs/development/roadmap/phases/phase-17-loopform-selfhost/loopform-design.md b/docs/archive/roadmap/phases/phase-17-loopform-selfhost/loopform-design.md similarity index 100% rename from docs/development/roadmap/phases/phase-17-loopform-selfhost/loopform-design.md rename to docs/archive/roadmap/phases/phase-17-loopform-selfhost/loopform-design.md diff --git a/docs/development/roadmap/phases/phase-17/BLUEPRINT_MIN.md b/docs/archive/roadmap/phases/phase-17/BLUEPRINT_MIN.md similarity index 100% rename from docs/development/roadmap/phases/phase-17/BLUEPRINT_MIN.md rename to docs/archive/roadmap/phases/phase-17/BLUEPRINT_MIN.md diff --git a/docs/development/roadmap/phases/phase-17/README.md b/docs/archive/roadmap/phases/phase-17/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-17/README.md rename to docs/archive/roadmap/phases/phase-17/README.md diff --git a/docs/development/roadmap/phases/phase-17/module-interfaces.md b/docs/archive/roadmap/phases/phase-17/module-interfaces.md similarity index 100% rename from docs/development/roadmap/phases/phase-17/module-interfaces.md rename to docs/archive/roadmap/phases/phase-17/module-interfaces.md diff --git a/docs/development/roadmap/phases/phase-18/README.md b/docs/archive/roadmap/phases/phase-18/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-18/README.md rename to docs/archive/roadmap/phases/phase-18/README.md diff --git a/docs/development/roadmap/phases/phase-19/README.md b/docs/archive/roadmap/phases/phase-19/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-19/README.md rename to docs/archive/roadmap/phases/phase-19/README.md diff --git a/docs/development/roadmap/phases/phase-21.5-optimization/CHECKLIST.md b/docs/archive/roadmap/phases/phase-21.5-optimization/CHECKLIST.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.5-optimization/CHECKLIST.md rename to docs/archive/roadmap/phases/phase-21.5-optimization/CHECKLIST.md diff --git a/docs/development/roadmap/phases/phase-21.5-optimization/README.md b/docs/archive/roadmap/phases/phase-21.5-optimization/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.5-optimization/README.md rename to docs/archive/roadmap/phases/phase-21.5-optimization/README.md diff --git a/docs/development/roadmap/phases/phase-21.6-solidification/CHECKLIST.md b/docs/archive/roadmap/phases/phase-21.6-solidification/CHECKLIST.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.6-solidification/CHECKLIST.md rename to docs/archive/roadmap/phases/phase-21.6-solidification/CHECKLIST.md diff --git a/docs/development/roadmap/phases/phase-21.6-solidification/README.md b/docs/archive/roadmap/phases/phase-21.6-solidification/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.6-solidification/README.md rename to docs/archive/roadmap/phases/phase-21.6-solidification/README.md diff --git a/docs/development/roadmap/phases/phase-21.6/README.md b/docs/archive/roadmap/phases/phase-21.6/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.6/README.md rename to docs/archive/roadmap/phases/phase-21.6/README.md diff --git a/docs/development/roadmap/phases/phase-21.6/core_numeric_boxes.md b/docs/archive/roadmap/phases/phase-21.6/core_numeric_boxes.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.6/core_numeric_boxes.md rename to docs/archive/roadmap/phases/phase-21.6/core_numeric_boxes.md diff --git a/docs/development/roadmap/phases/phase-21.7-normalization/CHECKLIST.md b/docs/archive/roadmap/phases/phase-21.7-normalization/CHECKLIST.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.7-normalization/CHECKLIST.md rename to docs/archive/roadmap/phases/phase-21.7-normalization/CHECKLIST.md diff --git a/docs/development/roadmap/phases/phase-21.7-normalization/README.md b/docs/archive/roadmap/phases/phase-21.7-normalization/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.7-normalization/README.md rename to docs/archive/roadmap/phases/phase-21.7-normalization/README.md diff --git a/docs/development/roadmap/phases/phase-21.8/README.md b/docs/archive/roadmap/phases/phase-21.8/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-21.8/README.md rename to docs/archive/roadmap/phases/phase-21.8/README.md diff --git a/docs/development/roadmap/phases/phase-21/README.md b/docs/archive/roadmap/phases/phase-21/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-21/README.md rename to docs/archive/roadmap/phases/phase-21/README.md diff --git a/docs/development/roadmap/phases/phase-21/README_v2.md b/docs/archive/roadmap/phases/phase-21/README_v2.md similarity index 100% rename from docs/development/roadmap/phases/phase-21/README_v2.md rename to docs/archive/roadmap/phases/phase-21/README_v2.md diff --git a/docs/development/roadmap/phases/phase-21/ai-evaluation/codex-evaluation-partial.md b/docs/archive/roadmap/phases/phase-21/ai-evaluation/codex-evaluation-partial.md similarity index 100% rename from docs/development/roadmap/phases/phase-21/ai-evaluation/codex-evaluation-partial.md rename to docs/archive/roadmap/phases/phase-21/ai-evaluation/codex-evaluation-partial.md diff --git a/docs/development/roadmap/phases/phase-21/ai-evaluation/evaluation-summary.md b/docs/archive/roadmap/phases/phase-21/ai-evaluation/evaluation-summary.md similarity index 100% rename from docs/development/roadmap/phases/phase-21/ai-evaluation/evaluation-summary.md rename to docs/archive/roadmap/phases/phase-21/ai-evaluation/evaluation-summary.md diff --git a/docs/development/roadmap/phases/phase-21/ai-evaluation/gemini-evaluation.md b/docs/archive/roadmap/phases/phase-21/ai-evaluation/gemini-evaluation.md similarity index 100% rename from docs/development/roadmap/phases/phase-21/ai-evaluation/gemini-evaluation.md rename to docs/archive/roadmap/phases/phase-21/ai-evaluation/gemini-evaluation.md diff --git a/docs/development/roadmap/phases/phase-21/reversible-conversion.md b/docs/archive/roadmap/phases/phase-21/reversible-conversion.md similarity index 100% rename from docs/development/roadmap/phases/phase-21/reversible-conversion.md rename to docs/archive/roadmap/phases/phase-21/reversible-conversion.md diff --git a/docs/development/roadmap/phases/phase-21/self-parsing-approach.md b/docs/archive/roadmap/phases/phase-21/self-parsing-approach.md similarity index 100% rename from docs/development/roadmap/phases/phase-21/self-parsing-approach.md rename to docs/archive/roadmap/phases/phase-21/self-parsing-approach.md diff --git a/docs/development/roadmap/phases/phase-21/technical-considerations.md b/docs/archive/roadmap/phases/phase-21/technical-considerations.md similarity index 100% rename from docs/development/roadmap/phases/phase-21/technical-considerations.md rename to docs/archive/roadmap/phases/phase-21/technical-considerations.md diff --git a/docs/development/roadmap/phases/phase-22/README.md b/docs/archive/roadmap/phases/phase-22/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-22/README.md rename to docs/archive/roadmap/phases/phase-22/README.md diff --git a/docs/development/roadmap/phases/phase-22/ROADMAP.md b/docs/archive/roadmap/phases/phase-22/ROADMAP.md similarity index 100% rename from docs/development/roadmap/phases/phase-22/ROADMAP.md rename to docs/archive/roadmap/phases/phase-22/ROADMAP.md diff --git a/docs/development/roadmap/phases/phase-22/codex-discussion.md b/docs/archive/roadmap/phases/phase-22/codex-discussion.md similarity index 100% rename from docs/development/roadmap/phases/phase-22/codex-discussion.md rename to docs/archive/roadmap/phases/phase-22/codex-discussion.md diff --git a/docs/development/roadmap/phases/phase-22/gemini-discussion.md b/docs/archive/roadmap/phases/phase-22/gemini-discussion.md similarity index 100% rename from docs/development/roadmap/phases/phase-22/gemini-discussion.md rename to docs/archive/roadmap/phases/phase-22/gemini-discussion.md diff --git a/docs/development/roadmap/phases/phase-22/synthesis.md b/docs/archive/roadmap/phases/phase-22/synthesis.md similarity index 100% rename from docs/development/roadmap/phases/phase-22/synthesis.md rename to docs/archive/roadmap/phases/phase-22/synthesis.md diff --git a/docs/development/roadmap/phases/phase-5/phase5_2_static_main_lowering.md b/docs/archive/roadmap/phases/phase-5/phase5_2_static_main_lowering.md similarity index 100% rename from docs/development/roadmap/phases/phase-5/phase5_2_static_main_lowering.md rename to docs/archive/roadmap/phases/phase-5/phase5_2_static_main_lowering.md diff --git a/docs/development/roadmap/phases/phase-6/phase6_box_ops_minimal.md b/docs/archive/roadmap/phases/phase-6/phase6_box_ops_minimal.md similarity index 100% rename from docs/development/roadmap/phases/phase-6/phase6_box_ops_minimal.md rename to docs/archive/roadmap/phases/phase-6/phase6_box_ops_minimal.md diff --git a/docs/development/roadmap/phases/phase-7/phase7_async_mir.md b/docs/archive/roadmap/phases/phase-7/phase7_async_mir.md similarity index 100% rename from docs/development/roadmap/phases/phase-7/phase7_async_mir.md rename to docs/archive/roadmap/phases/phase-7/phase7_async_mir.md diff --git a/docs/development/roadmap/phases/phase-8/phase8.3_wasm_box_operations.md b/docs/archive/roadmap/phases/phase-8/phase8.3_wasm_box_operations.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase8.3_wasm_box_operations.md rename to docs/archive/roadmap/phases/phase-8/phase8.3_wasm_box_operations.md diff --git a/docs/development/roadmap/phases/phase-8/phase8_mir_to_wasm.md b/docs/archive/roadmap/phases/phase-8/phase8_mir_to_wasm.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase8_mir_to_wasm.md rename to docs/archive/roadmap/phases/phase-8/phase8_mir_to_wasm.md diff --git a/docs/development/roadmap/phases/phase-8/phase_8_4_ast_mir_lowering.md b/docs/archive/roadmap/phases/phase-8/phase_8_4_ast_mir_lowering.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase_8_4_ast_mir_lowering.md rename to docs/archive/roadmap/phases/phase-8/phase_8_4_ast_mir_lowering.md diff --git a/docs/development/roadmap/phases/phase-8/phase_8_5_mir_35_to_26_reduction.md b/docs/archive/roadmap/phases/phase-8/phase_8_5_mir_35_to_26_reduction.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase_8_5_mir_35_to_26_reduction.md rename to docs/archive/roadmap/phases/phase-8/phase_8_5_mir_35_to_26_reduction.md diff --git a/docs/development/roadmap/phases/phase-8/phase_8_5_mir_semantic_layering.md b/docs/archive/roadmap/phases/phase-8/phase_8_5_mir_semantic_layering.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase_8_5_mir_semantic_layering.md rename to docs/archive/roadmap/phases/phase-8/phase_8_5_mir_semantic_layering.md diff --git a/docs/development/roadmap/phases/phase-8/phase_8_6_vm_performance_improvement.md b/docs/archive/roadmap/phases/phase-8/phase_8_6_vm_performance_improvement.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase_8_6_vm_performance_improvement.md rename to docs/archive/roadmap/phases/phase-8/phase_8_6_vm_performance_improvement.md diff --git a/docs/development/roadmap/phases/phase-8/phase_8_7_real_world_memory_testing.md b/docs/archive/roadmap/phases/phase-8/phase_8_7_real_world_memory_testing.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase_8_7_real_world_memory_testing.md rename to docs/archive/roadmap/phases/phase-8/phase_8_7_real_world_memory_testing.md diff --git a/docs/development/roadmap/phases/phase-8/phase_8_8_pack_transparency_system.md b/docs/archive/roadmap/phases/phase-8/phase_8_8_pack_transparency_system.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase_8_8_pack_transparency_system.md rename to docs/archive/roadmap/phases/phase-8/phase_8_8_pack_transparency_system.md diff --git a/docs/development/roadmap/phases/phase-8/phase_8_9_birth_unified_system_copilot_proof.md b/docs/archive/roadmap/phases/phase-8/phase_8_9_birth_unified_system_copilot_proof.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase_8_9_birth_unified_system_copilot_proof.md rename to docs/archive/roadmap/phases/phase-8/phase_8_9_birth_unified_system_copilot_proof.md diff --git a/docs/development/roadmap/phases/phase-8/phase_8_x_mir_pipeline_simplification.md b/docs/archive/roadmap/phases/phase-8/phase_8_x_mir_pipeline_simplification.md similarity index 100% rename from docs/development/roadmap/phases/phase-8/phase_8_x_mir_pipeline_simplification.md rename to docs/archive/roadmap/phases/phase-8/phase_8_x_mir_pipeline_simplification.md diff --git a/docs/development/roadmap/phases/phase-9/Phase-9.75g-0-BID-FFI-Developer-Guide.md b/docs/archive/roadmap/phases/phase-9/Phase-9.75g-0-BID-FFI-Developer-Guide.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/Phase-9.75g-0-BID-FFI-Developer-Guide.md rename to docs/archive/roadmap/phases/phase-9/Phase-9.75g-0-BID-FFI-Developer-Guide.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/AI-Conference-LLVM-Results.md b/docs/archive/roadmap/phases/phase-9/llvm/AI-Conference-LLVM-Results.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/AI-Conference-LLVM-Results.md rename to docs/archive/roadmap/phases/phase-9/llvm/AI-Conference-LLVM-Results.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/APE-Magic-Explained.md b/docs/archive/roadmap/phases/phase-9/llvm/APE-Magic-Explained.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/APE-Magic-Explained.md rename to docs/archive/roadmap/phases/phase-9/llvm/APE-Magic-Explained.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/Copilot-Request-LLVM-PoC.md b/docs/archive/roadmap/phases/phase-9/llvm/Copilot-Request-LLVM-PoC.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/Copilot-Request-LLVM-PoC.md rename to docs/archive/roadmap/phases/phase-9/llvm/Copilot-Request-LLVM-PoC.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/Hybrid-Future-Vision.md b/docs/archive/roadmap/phases/phase-9/llvm/Hybrid-Future-Vision.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/Hybrid-Future-Vision.md rename to docs/archive/roadmap/phases/phase-9/llvm/Hybrid-Future-Vision.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/JIT-vs-AOT-With-MIR.md b/docs/archive/roadmap/phases/phase-9/llvm/JIT-vs-AOT-With-MIR.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/JIT-vs-AOT-With-MIR.md rename to docs/archive/roadmap/phases/phase-9/llvm/JIT-vs-AOT-With-MIR.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/Phase-9.78-Implementation-Plan.md b/docs/archive/roadmap/phases/phase-9/llvm/Phase-9.78-Implementation-Plan.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/Phase-9.78-Implementation-Plan.md rename to docs/archive/roadmap/phases/phase-9/llvm/Phase-9.78-Implementation-Plan.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/Practical-Distribution-Strategy.md b/docs/archive/roadmap/phases/phase-9/llvm/Practical-Distribution-Strategy.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/Practical-Distribution-Strategy.md rename to docs/archive/roadmap/phases/phase-9/llvm/Practical-Distribution-Strategy.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/Revolutionary-Windows-Strategy.md b/docs/archive/roadmap/phases/phase-9/llvm/Revolutionary-Windows-Strategy.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/Revolutionary-Windows-Strategy.md rename to docs/archive/roadmap/phases/phase-9/llvm/Revolutionary-Windows-Strategy.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/VM-Native-Speed-Possibility.md b/docs/archive/roadmap/phases/phase-9/llvm/VM-Native-Speed-Possibility.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/VM-Native-Speed-Possibility.md rename to docs/archive/roadmap/phases/phase-9/llvm/VM-Native-Speed-Possibility.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/Windows-Strategy-Summary.md b/docs/archive/roadmap/phases/phase-9/llvm/Windows-Strategy-Summary.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/Windows-Strategy-Summary.md rename to docs/archive/roadmap/phases/phase-9/llvm/Windows-Strategy-Summary.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/issue/001-setup-inkwell-hello-world.md b/docs/archive/roadmap/phases/phase-9/llvm/issue/001-setup-inkwell-hello-world.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/issue/001-setup-inkwell-hello-world.md rename to docs/archive/roadmap/phases/phase-9/llvm/issue/001-setup-inkwell-hello-world.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/issue/GitHub-Issue-Template.md b/docs/archive/roadmap/phases/phase-9/llvm/issue/GitHub-Issue-Template.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/issue/GitHub-Issue-Template.md rename to docs/archive/roadmap/phases/phase-9/llvm/issue/GitHub-Issue-Template.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/issue/MIR-Quick-Reference.md b/docs/archive/roadmap/phases/phase-9/llvm/issue/MIR-Quick-Reference.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/issue/MIR-Quick-Reference.md rename to docs/archive/roadmap/phases/phase-9/llvm/issue/MIR-Quick-Reference.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/issue/Quick-Start-Guide.md b/docs/archive/roadmap/phases/phase-9/llvm/issue/Quick-Start-Guide.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/issue/Quick-Start-Guide.md rename to docs/archive/roadmap/phases/phase-9/llvm/issue/Quick-Start-Guide.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/issue/README.md b/docs/archive/roadmap/phases/phase-9/llvm/issue/README.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/issue/README.md rename to docs/archive/roadmap/phases/phase-9/llvm/issue/README.md diff --git a/docs/development/roadmap/phases/phase-9/llvm/issue/Week1-Roadmap.md b/docs/archive/roadmap/phases/phase-9/llvm/issue/Week1-Roadmap.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/llvm/issue/Week1-Roadmap.md rename to docs/archive/roadmap/phases/phase-9/llvm/issue/Week1-Roadmap.md diff --git a/docs/development/roadmap/phases/phase-9/phase9_51_wasm_jump_http_fixes.md b/docs/archive/roadmap/phases/phase-9/phase9_51_wasm_jump_http_fixes.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase9_51_wasm_jump_http_fixes.md rename to docs/archive/roadmap/phases/phase-9/phase9_51_wasm_jump_http_fixes.md diff --git a/docs/development/roadmap/phases/phase-9/phase9_5_http_server_validation.md b/docs/archive/roadmap/phases/phase-9/phase9_5_http_server_validation.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase9_5_http_server_validation.md rename to docs/archive/roadmap/phases/phase-9/phase9_5_http_server_validation.md diff --git a/docs/development/roadmap/phases/phase-9/phase9_75_socketbox_arc_mutex_redesign.md b/docs/archive/roadmap/phases/phase-9/phase9_75_socketbox_arc_mutex_redesign.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase9_75_socketbox_arc_mutex_redesign.md rename to docs/archive/roadmap/phases/phase-9/phase9_75_socketbox_arc_mutex_redesign.md diff --git a/docs/development/roadmap/phases/phase-9/phase9_75b_remaining_boxes_arc_mutex_redesign.md b/docs/archive/roadmap/phases/phase-9/phase9_75b_remaining_boxes_arc_mutex_redesign.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase9_75b_remaining_boxes_arc_mutex_redesign.md rename to docs/archive/roadmap/phases/phase-9/phase9_75b_remaining_boxes_arc_mutex_redesign.md diff --git a/docs/development/roadmap/phases/phase-9/phase9_75c_remaining_boxes_arc_mutex_final.md b/docs/archive/roadmap/phases/phase-9/phase9_75c_remaining_boxes_arc_mutex_final.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase9_75c_remaining_boxes_arc_mutex_final.md rename to docs/archive/roadmap/phases/phase-9/phase9_75c_remaining_boxes_arc_mutex_final.md diff --git a/docs/development/roadmap/phases/phase-9/phase9_aot_wasm_implementation.md b/docs/archive/roadmap/phases/phase-9/phase9_aot_wasm_implementation.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase9_aot_wasm_implementation.md rename to docs/archive/roadmap/phases/phase-9/phase9_aot_wasm_implementation.md diff --git a/docs/development/roadmap/phases/phase-9/phase9_jit_baseline_planning.md b/docs/archive/roadmap/phases/phase-9/phase9_jit_baseline_planning.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase9_jit_baseline_planning.md rename to docs/archive/roadmap/phases/phase-9/phase9_jit_baseline_planning.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_10_nyir_spec.md b/docs/archive/roadmap/phases/phase-9/phase_9_10_nyir_spec.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_10_nyir_spec.md rename to docs/archive/roadmap/phases/phase-9/phase_9_10_nyir_spec.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_12_universal_frontends.md b/docs/archive/roadmap/phases/phase-9/phase_9_12_universal_frontends.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_12_universal_frontends.md rename to docs/archive/roadmap/phases/phase-9/phase_9_12_universal_frontends.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75c_debugbox_fix.md b/docs/archive/roadmap/phases/phase-9/phase_9_75c_debugbox_fix.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75c_debugbox_fix.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75c_debugbox_fix.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75c_fix_compile_errors.md b/docs/archive/roadmap/phases/phase-9/phase_9_75c_fix_compile_errors.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75c_fix_compile_errors.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75c_fix_compile_errors.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75c_fix_compile_errors_jp.md b/docs/archive/roadmap/phases/phase-9/phase_9_75c_fix_compile_errors_jp.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75c_fix_compile_errors_jp.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75c_fix_compile_errors_jp.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75d_clone_box_share_box_redesign.md b/docs/archive/roadmap/phases/phase-9/phase_9_75d_clone_box_share_box_redesign.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75d_clone_box_share_box_redesign.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75d_clone_box_share_box_redesign.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75e_namespace_using_system.md b/docs/archive/roadmap/phases/phase-9/phase_9_75e_namespace_using_system.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75e_namespace_using_system.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75e_namespace_using_system.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75f_1_filebox_dynamic.md b/docs/archive/roadmap/phases/phase-9/phase_9_75f_1_filebox_dynamic.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75f_1_filebox_dynamic.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75f_1_filebox_dynamic.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75f_2_math_time_dynamic.md b/docs/archive/roadmap/phases/phase-9/phase_9_75f_2_math_time_dynamic.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75f_2_math_time_dynamic.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75f_2_math_time_dynamic.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75f_3_core_types_experiment.md b/docs/archive/roadmap/phases/phase-9/phase_9_75f_3_core_types_experiment.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75f_3_core_types_experiment.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75f_3_core_types_experiment.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75f_dynamic_library_architecture.md b/docs/archive/roadmap/phases/phase-9/phase_9_75f_dynamic_library_architecture.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75f_dynamic_library_architecture.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75f_dynamic_library_architecture.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75g_0_chatgpt_enhanced_final.md b/docs/archive/roadmap/phases/phase-9/phase_9_75g_0_chatgpt_enhanced_final.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75g_0_chatgpt_enhanced_final.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75g_0_chatgpt_enhanced_final.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75g_0_everything_is_box_aligned.md b/docs/archive/roadmap/phases/phase-9/phase_9_75g_0_everything_is_box_aligned.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75g_0_everything_is_box_aligned.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75g_0_everything_is_box_aligned.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75g_0_final_corrected_design.md b/docs/archive/roadmap/phases/phase-9/phase_9_75g_0_final_corrected_design.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75g_0_final_corrected_design.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75g_0_final_corrected_design.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75g_0_revised_type_first_approach.md b/docs/archive/roadmap/phases/phase-9/phase_9_75g_0_revised_type_first_approach.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75g_0_revised_type_first_approach.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75g_0_revised_type_first_approach.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75g_0_simplified_bid_ffi_implementation.md b/docs/archive/roadmap/phases/phase-9/phase_9_75g_0_simplified_bid_ffi_implementation.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75g_0_simplified_bid_ffi_implementation.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75g_0_simplified_bid_ffi_implementation.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75g_bid_ffi_abi_alignment.md b/docs/archive/roadmap/phases/phase-9/phase_9_75g_bid_ffi_abi_alignment.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75g_bid_ffi_abi_alignment.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75g_bid_ffi_abi_alignment.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_75g_bid_integration_architecture.md b/docs/archive/roadmap/phases/phase-9/phase_9_75g_bid_integration_architecture.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_75g_bid_integration_architecture.md rename to docs/archive/roadmap/phases/phase-9/phase_9_75g_bid_integration_architecture.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_77_wasm_emergency.md b/docs/archive/roadmap/phases/phase-9/phase_9_77_wasm_emergency.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_77_wasm_emergency.md rename to docs/archive/roadmap/phases/phase-9/phase_9_77_wasm_emergency.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_77a_utf8_error_fix.md b/docs/archive/roadmap/phases/phase-9/phase_9_77a_utf8_error_fix.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_77a_utf8_error_fix.md rename to docs/archive/roadmap/phases/phase-9/phase_9_77a_utf8_error_fix.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_78_unified_box_factory_architecture.md b/docs/archive/roadmap/phases/phase-9/phase_9_78_unified_box_factory_architecture.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_78_unified_box_factory_architecture.md rename to docs/archive/roadmap/phases/phase-9/phase_9_78_unified_box_factory_architecture.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_78a_vm_plugin_integration.md b/docs/archive/roadmap/phases/phase-9/phase_9_78a_vm_plugin_integration.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_78a_vm_plugin_integration.md rename to docs/archive/roadmap/phases/phase-9/phase_9_78a_vm_plugin_integration.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_78a_vm_plugin_integration_deep_analysis.md b/docs/archive/roadmap/phases/phase-9/phase_9_78a_vm_plugin_integration_deep_analysis.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_78a_vm_plugin_integration_deep_analysis.md rename to docs/archive/roadmap/phases/phase-9/phase_9_78a_vm_plugin_integration_deep_analysis.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_78b_interpreter_architecture_refactoring.md b/docs/archive/roadmap/phases/phase-9/phase_9_78b_interpreter_architecture_refactoring.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_78b_interpreter_architecture_refactoring.md rename to docs/archive/roadmap/phases/phase-9/phase_9_78b_interpreter_architecture_refactoring.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_78c_plugin_delegation_unification.md b/docs/archive/roadmap/phases/phase-9/phase_9_78c_plugin_delegation_unification.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_78c_plugin_delegation_unification.md rename to docs/archive/roadmap/phases/phase-9/phase_9_78c_plugin_delegation_unification.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_78h_mir_pipeline_stabilization.md b/docs/archive/roadmap/phases/phase-9/phase_9_78h_mir_pipeline_stabilization.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_78h_mir_pipeline_stabilization.md rename to docs/archive/roadmap/phases/phase-9/phase_9_78h_mir_pipeline_stabilization.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_79_p2pbox_rebuild.md b/docs/archive/roadmap/phases/phase-9/phase_9_79_p2pbox_rebuild.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_79_p2pbox_rebuild.md rename to docs/archive/roadmap/phases/phase-9/phase_9_79_p2pbox_rebuild.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_79a_unified_box_dispatch_and_p2p_polish.md b/docs/archive/roadmap/phases/phase-9/phase_9_79a_unified_box_dispatch_and_p2p_polish.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_79a_unified_box_dispatch_and_p2p_polish.md rename to docs/archive/roadmap/phases/phase-9/phase_9_79a_unified_box_dispatch_and_p2p_polish.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_79b_1_unified_registry_ids_and_builder_slotting.md b/docs/archive/roadmap/phases/phase-9/phase_9_79b_1_unified_registry_ids_and_builder_slotting.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_79b_1_unified_registry_ids_and_builder_slotting.md rename to docs/archive/roadmap/phases/phase-9/phase_9_79b_1_unified_registry_ids_and_builder_slotting.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_79b_2_vm_vtable_thunks_and_pic.md b/docs/archive/roadmap/phases/phase-9/phase_9_79b_2_vm_vtable_thunks_and_pic.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_79b_2_vm_vtable_thunks_and_pic.md rename to docs/archive/roadmap/phases/phase-9/phase_9_79b_2_vm_vtable_thunks_and_pic.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_79b_3_vm_vtable_thunks_and_pic.md b/docs/archive/roadmap/phases/phase-9/phase_9_79b_3_vm_vtable_thunks_and_pic.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_79b_3_vm_vtable_thunks_and_pic.md rename to docs/archive/roadmap/phases/phase-9/phase_9_79b_3_vm_vtable_thunks_and_pic.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_7_box_ffi_abi_and_externcall.md b/docs/archive/roadmap/phases/phase-9/phase_9_7_box_ffi_abi_and_externcall.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_7_box_ffi_abi_and_externcall.md rename to docs/archive/roadmap/phases/phase-9/phase_9_7_box_ffi_abi_and_externcall.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_8_bid_registry_and_codegen.md b/docs/archive/roadmap/phases/phase-9/phase_9_8_bid_registry_and_codegen.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_8_bid_registry_and_codegen.md rename to docs/archive/roadmap/phases/phase-9/phase_9_8_bid_registry_and_codegen.md diff --git a/docs/development/roadmap/phases/phase-9/phase_9_9_permissions_capability_model.md b/docs/archive/roadmap/phases/phase-9/phase_9_9_permissions_capability_model.md similarity index 100% rename from docs/development/roadmap/phases/phase-9/phase_9_9_permissions_capability_model.md rename to docs/archive/roadmap/phases/phase-9/phase_9_9_permissions_capability_model.md diff --git a/docs/development/proposals/comprehensive-refactoring-discovery-2025-12-05.md b/docs/development/proposals/comprehensive-refactoring-discovery-2025-12-05.md index 6e7491d2..eaeb7487 100644 --- a/docs/development/proposals/comprehensive-refactoring-discovery-2025-12-05.md +++ b/docs/development/proposals/comprehensive-refactoring-discovery-2025-12-05.md @@ -1,5 +1,8 @@ # Comprehensive Rust Code Refactoring Discovery +Status: Active +Scope: Rust コード全体のリファクタリング候補を洗い出した調査結果の現行まとめ(2025-12-05 時点)。 + **Date**: 2025-12-05 **Scope**: Entire `/home/tomoaki/git/hakorune-selfhost/src` directory **Methodology**: Line count + complexity analysis + activity analysis + Phase 188 context diff --git a/docs/development/proposals/concurrency/boxes.md b/docs/development/proposals/concurrency/boxes.md deleted file mode 100644 index 25afaf31..00000000 --- a/docs/development/proposals/concurrency/boxes.md +++ /dev/null @@ -1,77 +0,0 @@ -# Nyash Concurrency — Box Model (Proposal, docs-only) - -Status: design-only during the feature‑pause. No runtime or spec changes. Implement after Mini‑VM baseline is stable. - -Intent -- Bring Go-like CSP (goroutine/channels/select) into Nyash via “Everything is Box”. -- Keep semantics explicit, lifecycle safe (birth/fini), and observable. Phase-in from userland → runtime. - -Scope (Phase‑0: userland MVP) -- RoutineBox: lightweight task wrapper over `nowait` (state, join/cancel, status). -- ChannelBox: bounded/unbounded queue + blocking/non-blocking ops + close semantics. -- SelectBox: multi-channel wait (first-ready) with simple fairness. -- RoutineScopeBox: structured concurrency; children are canceled on scope fini. -- Observability: JSONL trace toggled by `NYASH_CONC_TRACE=1`. - -Non‑Goals (Phase‑0) -- M:N scheduler, OS-level park/unpark, net poller integration (deferred to Phase‑2 runtime work). - -API Sketch (userland) -- RoutineBox - - birth(fn) - - start(): Void - - join(timeout_ms?: Int) -> Bool // true if joined; false on timeout - - cancel(): Void - - status() -> String // ready|running|done|canceled|error -- ChannelBox(capacity: Int=0) - - send(v): Void // blocks if full (Phase‑0: simulated park) - - try_send(v) -> Bool - - receive() -> Any // blocks if empty (Phase‑0: simulated park) - - try_receive() -> (Bool, Any?) - - receive_timeout(ms: Int) -> (Bool, Any?) - - close(): Void // further send fails; recv drains until empty then End -- SelectBox - - birth() - - when(ch: ChannelBox, handler: Fn): Void - - await() -> Bool // returns after one handler runs; false if none ready and no wait policy - - await_timeout(ms: Int) -> Bool -- RoutineScopeBox - - birth() - - spawn(fn) -> RoutineBox - - fini() // cancels pending routines and waits boundedly - -Semantics -- Capacity: - - 0: rendezvous channel (send/recv rendezvous). - - N>0: bounded ring buffer. -- Close: - - close() marks channel as closed. send() after close -> error. receive() returns buffered items; when empty -> (false, End) style result; exact return shape defined per API. -- Blocking: - - Phase‑0 userland uses cooperative wait queues; no busy loops. try_* and timeout variants provided. -- Select fairness: - - If multiple ready, choose random/round‑robin. Starvation avoidance is a design requirement; precise algorithm can evolve. -- Types: - - `TypedChannelBox` is a future extension; Phase‑0 uses runtime tags/guards documented in reference. -- Cancellation: - - RoutineScopeBox cancels children on fini; Channel waits should return (canceled) promptly. - -Phases -- Phase‑0 (userland MVP / PyVM first) - - Implement the 4 boxes above with minimal queues/waits, plus trace hooks. - - Smokes: ping‑pong, bounded producer/consumer, two‑way select, close semantics, scope cancel. -- Phase‑1 (park/unpark abstraction) - - Introduce `WaiterBox`/`CondBox` that map to efficient OS waits where available. Keep same APIs. -- Phase‑2 (runtime integration) - - Scheduler (M:N), GC and net poller integration, fairness and profiling. Keep Box APIs stable. - -Observability -- `NYASH_CONC_TRACE=1` → JSONL events: spawn/join/cancel/send/recv/park/unpark/select/close with routine IDs, channel IDs, timestamps. - -Safety & Diagnostics -- Deadlock hints: trace dependent waits; optional detector (dev only) can dump wait‑for graph. -- API contracts explicitly define error return for misuse (send on closed, double close, etc.). - -Deliverables (docs‑only during the feature‑pause) -- This proposal (boxes & semantics). -- Reference page with blocking/close/select rules (see reference/concurrency/semantics.md). -- Test plan with named smokes and expected outputs. diff --git a/docs/development/proposals/ideas/language/pure-functional-blocks.md b/docs/development/proposals/ideas/language/pure-functional-blocks.md deleted file mode 100644 index a079b434..00000000 --- a/docs/development/proposals/ideas/language/pure-functional-blocks.md +++ /dev/null @@ -1,158 +0,0 @@ -# 純粋関数型[]ブロック vs 通常{}ブロック設計案 - -## 概要 - -Nyashにおける**{}ローカルスコープ**と**[]純粋スコープ**の明確な差別化設計。 -「すべてはBox」哲学の中で、副作用を含む通常処理と純粋関数型処理を共存させる革命的アプローチ。 - -## 基本的な差別化 - -### {}ブロック(既存)- 通常のNyashスコープ -```nyash -{ - local counter = new IntegerBox(0) // Box生成OK - counter.set(counter.get() + 1) // 副作用OK - SomeGlobalBox.modify() // 外部状態変更OK - ChannelBox.send("data") // I/O副作用OK - // 普通のNyash文法、制約なし -} -``` - -### []ブロック(提案)- 純粋関数型スコープ -```nyash -[ - // コンパイラが以下を厳密にチェック: - input.map(x => x * 2) // ✅ 純粋変換のみ - .filter(x => x > 10) // ✅ 副作用なし - .reduce((a, b) => a + b, 0) // ✅ 参照透過性保証 - - // 以下はコンパイルエラー: - // SomeBox.mutate() // ❌ 外部状態変更禁止 - // print("debug") // ❌ I/O副作用禁止 - // local x = 1; x = 2 // ❌ 変数再代入禁止 -] -``` - -## 深い差別化ポイント - -### 1. コンパイラレベルの制約 -- **{}**: 制約なし、通常のNyash文法 -- **[]**: 厳密な純粋性チェック、副作用検出でコンパイルエラー - -### 2. メモリモデル -- **{}**: 新しいBoxの生成・変更可能 -- **[]**: 既存データの変換のみ、新しい状態作成禁止 - -### 3. 並行安全性 -- **{}**: データ競合の可能性あり -- **[]**: 副作用なしなので自動的にthread-safe - -### 4. 最適化 -- **{}**: 通常の最適化 -- **[]**: コンパイラが大胆な最適化可能(純粋性保証されているため) - -### 5. デバッグ性 -- **{}**: 通常のデバッガ -- **[]**: 入力→出力のみ追跡すればOK、デバッグ超簡単 - -## 実用的な使い分け例 - -```nyash -box DataProcessor { - processData(input: ArrayBox) -> ArrayBox { - // 通常の{}スコープ: 準備・後処理 - { - local logger = new LoggerBox() - logger.info("Processing started") - - // 純粋な[]スコープ: コア計算 - local result = [ - input - .filter(x => x > 0) - .map(x => Math.sqrt(x)) - .sort() - ] - - logger.info("Processing completed") - return result - } - } -} -``` - -## []ブロックの真の価値 - -### 1. 数学的証明可能性 -[]内の処理は数学的に証明できる - -### 2. 完全な再現性 -同じ入力→必ず同じ出力 - -### 3. 並列化自動最適化 -コンパイラが自動で並列化可能 - -### 4. ホットスワップ可能 -実行中でも[]部分だけ安全に入れ替え可能 - -## Box化による実装戦略 - -### PureCalculatorBox例 -```nyash -box PureCalculatorBox { - birth() { /* 状態なし、初期化も最小限 */ } - - calculate(input: ArrayBox) -> ArrayBox { - // []ブロックを使って、純粋性を言語レベルで保証 - local result = [ - input.map(x => x * 2).filter(x => x > 10) - ] - return result - } -} -``` - -### コンパイラもBox化 -「[]だけ解析する箱をつくる」アプローチ: -- `PurityCheckerBox`: []ブロックの純粋性を厳密チェック -- `ParserBox`: []専用構文解析 -- `OptimizerBox`: []専用最適化 - -## 哲学的統合 - -### {}ブロックと[]ブロックの共存 -- **{}**: "現実世界とのインターフェース"(副作用、状態管理) -- **[]**: "純粋な計算の核心"(ロジック、変換、計算) - -この差別化により、Nyashは: -- **実用性** ({}での柔軟な状態管理) -- **数学的美しさ** ([]での純粋性) - -という**矛盾する要求を同時に満たす**ことができる。 - -## 「すべてはBox」哲学との整合性 - -これは「すべてはBox」哲学を破るのではなく、**異なる種類のBox(副作用Box vs 純粋Box)を明確に分離**する革命的なアプローチ。 - -- 副作用のあるBoxは{}内で使用 -- 純粋なBoxは[]内で使用 -- それぞれのBoxが適切なスコープで最大限の力を発揮 - -## 実装上の課題と解決策 - -### 課題 -1. コンパイラの複雑性増加 -2. []と{}間のデータやり取り -3. エラーメッセージの分かりやすさ - -### 解決策 -1. Box化されたコンパイラ(PurityCheckerBox等)で複雑性を分離 -2. 明確なデータ変換API([]→{}は常に安全、{}→[]は純粋性チェック) -3. 文脈に応じた専用エラーメッセージ - -## 結論 - -この設計により、Nyashは純粋関数型プログラミングの利点を享受しつつ、実用的な副作用処理も自然に行える、世界初の「ハイブリッド純粋言語」となる可能性がある。 - -**Date**: 2025-09-22 -**Status**: アイデア段階 -**Priority**: Phase 16以降での検討推奨 \ No newline at end of file diff --git a/docs/development/proposals/ideas/tools/cax/README.md b/docs/development/proposals/ideas/tools/cax/README.md deleted file mode 100644 index b2452167..00000000 --- a/docs/development/proposals/ideas/tools/cax/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# CAX (C-ABI Explorer) - Revolutionary Debugging Tool - -**Status**: Post‑Bootstrap Implementation (Core Idea Complete) -**Priority**: High (World-First Tool) -**Origin**: 1-minute inspiration (C ABI dynamic → C ABI Debugger) -**Date**: 2025-09-21 - -## 🌟 Core Concept - -C-ABI境界デバッグのGUIツール。**「ぽいっと付け外し」「視覚的ログ監視」「マクロ自動化」「ホットスワップ」**を実現。 - -### Revolutionary Aspects -- **Nyash箱理論**でC境界を完全トレース -- **Record/Replay**で回帰テスト・CI再現性 -- **GUI Explorer**でプラグイン管理 -- **Type Safety**境界での型検証・所有権チェック - -## 📁 Files Structure - -- `gemini-ipc-implementation.hako` - Geminiの172行実装コード -- `chatgpt-design-spec.md` - ChatGPTの設計仕様 -- `inspiration-process.md` - 1分発想プロセスの記録 -- `technical-roadmap.md` - 実装ロードマップ(2週間MVP) - -## 🎯 Implementation Priority - -**Phase 1** (Post Mini-VM): IPC層 + Timeline GUI -**Phase 2**: Record/Replay + Hot-swap -**Phase 3**: Advanced Analytics + 可視化 - -## 💡 Technical Innovation - -- **境界フック**: PluginHost.Invoke 層で完全インターセプト -- **統一観測**: すべてのBoxで統一されたイベントログ -- **型安全**: TypeBox境界での実時間検証 -- **構造化**: RoutineBox/ChannelBox での並行デバッグ - ---- - -**Note**: このアイデアは、C ABI動的呼び出しからわずか1分で到達した革新的発想の記録です。 diff --git a/docs/development/proposals/ideas/tools/cax/chatgpt-design-spec.md b/docs/development/proposals/ideas/tools/cax/chatgpt-design-spec.md deleted file mode 100644 index ec91ff20..00000000 --- a/docs/development/proposals/ideas/tools/cax/chatgpt-design-spec.md +++ /dev/null @@ -1,145 +0,0 @@ -# CAX Design Specification (ChatGPT Analysis) - -**Generated by**: ChatGPT -**Date**: 2025-09-21 -**Context**: 30分集中設計セッション - -## 🎯 Core Vision - -**Nyash C-ABI Explorer (CAX)** - GUIでC ABI境界を「ぽいっと付け外し」「視覚化」「録って再生」「スクリプトで自動化」 - -## 🏗️ Architecture Design - -### Core + GUI 分離アーキテクチャ -``` -Core (Rust/Nyash): 既存cabi-debuggerフック + IPCサーバ - ↕ JSON-RPC/WebSocket -GUI (Tauri/Electron): Svelte/React/TypeScript フロントエンド -``` - -### データフロー -``` -PluginHost.Invoke → CABIDebugger → IPC → GUI Timeline -C ABI Calls → Real-time Logs → JSON Stream → 可視化 -``` - -## 🎨 UX Design - -### 画面レイアウト (5パネル構成) -``` -┌─────────────┬─────────────────┬─────────────┐ -│ Explorer │ Live Timeline │ Inspector │ -│ (attach/detach) │ (call flow) │ (call details)│ -├─────────────┴─────────────────┴─────────────┤ -│ Record/Replay Controls │ -├─────────────────────────────────────────────┤ -│ Console & Macros (Scripts) │ -└─────────────────────────────────────────────┘ -``` - -### 操作体験 -1. **1クリック Attach**: `map.so` の行をクリック→即時ログ流れる -2. **色分け表示**: 緑=Ok、黄=by-name、赤=Err/timeout、紫=ownership警告 -3. **録画/再生**: ワンボタンでJSONL/TLV保存→プラグイン無しで再現 -4. **ホットスワップ**: `disable→quiesce→reload` をGUIウィザードで - -## 🔧 Technical Features - -### 1. Real-time Monitoring -- **Live Timeline**: Swimlane(プラグイン別/スレッド別) -- **Call Inspector**: 引数/戻り値/実行時間/ソース位置 -- **Filter System**: `outcome:warn plugin:map` 形式 - -### 2. Record/Replay System -```json -// ログ1行例 -{ - "ts": 1737153845.123456, - "plugin": "map.so", - "type_id": 17, - "method": "get/1", - "args": [{"str":"key"}], - "ret": {"str":"value"}, - "outcome": "Ok", - "elapsed_us": 87, - "by_name": false, - "site": {"file":"apps/x.hako","line":42} -} -``` - -### 3. Hot-Swap Management -``` -安全手順: disable → wait(0 inflight) → fini → dlclose → dlopen → init → re-enable -GUI支援: 進捗表示 + state snapshot/restore(任意) -``` - -### 4. Macro Automation -```nyash -// CAX API例 -cax.filter({outcome:'warn'}) -cax.attach("map.so") -cax.replay("trace.tlv") -cax.hotswap("map.so", "/tmp/map_new.so") -``` - -## 📋 Implementation Roadmap - -### Week 1 (MVP Core) -- ✅ IPCサーバ(subscribe/attach/detach) -- ✅ Explorer + Timeline(基本表示) -- ✅ Inspector(引数/戻り値表示) -- ✅ 記録(JSONL形式) - -### Week 2 (Advanced Features) -- ✅ Signature Checker(extern宣言 vs 実装差分) -- ✅ Record/Replay(ファイル形式) -- ✅ 簡易マクロ(フィルタ・基本操作) -- ✅ Hot-swap wizard(dry-run) - -## 🎨 GUI Implementation - -### Technology Stack -- **Frontend**: Tauri + Svelte/React + TypeScript -- **IPC**: JSON-RPC over WebSocket -- **Styling**: TailwindCSS + 可視化ライブラリ - -### Key Components -```typescript -// IPC API例 -interface CaxApi { - subscribe(params: {plugins: string[], level: string}): void - attach(params: {plugin: string}): void - hotswap(params: {plugin: string, path: string}): void - record: { - start(params: {file: string}): void - stop(): void - } - replay(params: {file: string, mode: string}): void -} -``` - -## 🚧 Risk Mitigation - -### Performance -- **オーバーヘッド**: 既定軽量(log sampling、構造化は遅延ダンプ) -- **再入防止**: スレッドローカルで抑止 - -### Safety -- **クラッシュ隔離**: detach≠dlclose(最初は"ロード専用") -- **権限管理**: プロセス境界越えはエージェント方式 - -## 💡 Competitive Advantages - -### vs 既存デバッガ -- **境界特化**: C↔Nyash境界に最適化された可視化 -- **型安全**: TypeBox境界での実時間検証 -- **構造化**: ライフサイクル・所有権の一元観測 - -### Innovation Points -- **Record/Replay**: ABIコール完全再現(回帰テスト革命) -- **GUI Integration**: コマンドライン→GUI操作の体験革新 -- **Hot-Swap**: 無停止デバッグ・プラグイン更新 - ---- - -**Note**: この設計は、C ABI動的呼び出しからの1分発想を30分で具体化したもの。実装の現実性と革新性を両立した世界初級ツールの仕様です。 \ No newline at end of file diff --git a/docs/development/proposals/ideas/tools/cax/gemini-ipc-implementation.hako b/docs/development/proposals/ideas/tools/cax/gemini-ipc-implementation.hako deleted file mode 100644 index 18eba7a0..00000000 --- a/docs/development/proposals/ideas/tools/cax/gemini-ipc-implementation.hako +++ /dev/null @@ -1,165 +0,0 @@ -// CAX IPC Implementation (Gemini Draft) -// Generated by Gemini AI - 2025-09-21 -// 172 lines of production-ready Nyash code - -// IpcServerBox - CAXのIPCサーバーのメインとなるBox -// クライアント(GUI)からの接続を受け付け、CABIDebuggerBoxと連携 -box IpcServerBox { - cabiDebugger: CABIDebuggerBox - clientConnections: MapBox - - birth() { - me.cabiDebugger = new CABIDebuggerBox() - me.clientConnections = new MapBox() - } - - // IPCリスナーを開始するルーチン(メインスレッド) - startIpcListener() { - loop { - // 新しいクライアント接続を待つ - local clientConnection = me.acceptNewClientConnection() - if clientConnection == null { break } - - local clientId = clientConnection.id() - me.clientConnections.set(clientId, clientConnection) - - // 各クライアント用の処理ルーチンを起動 - local commandChannel = new ChannelBox() - local logChannel = new ChannelBox() - - // クライアントコマンド処理用ルーチン - nowait { - me.handleClientCommands(clientConnection, clientId, logChannel) - } - - // デバッガーログをクライアントに転送するルーチン - nowait { - me.forwardDebuggerLogsToClient(clientId, logChannel) - } - - // 接続切断時の清掃 - clientConnection.onClose(() => { - me.clientConnections.remove(clientId) - me.cabiDebugger.removeLogSubscriber(clientId) - }) - } - } - - // クライアントからのコマンドを処理するルーチン - handleClientCommands(clientConnection: ClientConnectionBox, clientId: String, clientChannel: ChannelBox) { - loop { - local command = clientConnection.receiveCommand() // クライアントからコマンドを受信 - if command == null { break } // 接続が切れたらループを抜ける - - when command.method { - "subscribe" => { - local logLevel = command.params.logLevel - me.cabiDebugger.addLogSubscriber(clientId, clientChannel, logLevel) - clientConnection.sendResponse(command.id, new OkBox()) - } - "attach" => { - local pluginId = command.params.pluginId - me.cabiDebugger.attachPlugin(pluginId) - clientConnection.sendResponse(command.id, new OkBox()) - } - // ... その他のコマンド (detach, record.start, replayなど) - else => { - clientConnection.sendResponse(command.id, new ErrorBox("Unknown command")) - } - } - } - } - - // C ABIデバッガーからのログを特定のクライアントに転送するルーチン - forwardDebuggerLogsToClient(clientId: String, clientChannel: ChannelBox) { - loop { - // CABIDebuggerBoxから、このクライアントID宛のログを取得する - // 実際には、CABIDebuggerBoxがログを生成し、購読しているチャネルに送る形になる - local logEntry = me.cabiDebugger.getLogEntryForClient(clientId) - if logEntry == null { break } // ログがなければ待機または終了 - - clientChannel.send(logEntry) // クライアントにログを送信 - } - } - - // 抽象的なクライアント接続を受け付けるメソッド (具体的なIPC実装に依存) - acceptNewClientConnection() -> ClientConnectionBox { - // ここに新しいクライアント接続を受け付ける具体的なロジック - // 例: return listener.accept() - return new ClientConnectionBox("dummy-client-id") // ダミー実装 - } -} - -// CABIDebuggerBox (cabi-debugger.mdで定義された機能を持つBox) -// IpcServerBoxから呼び出されるコアロジック -box CABIDebuggerBox { - // ... 既存のフック、検証、記録機能 ... - - // ログ購読者リスト (クライアントID -> ログ送信チャネル) - // 実際には、ログレベルなどの購読設定も持つ - logSubscribers: MapBox - - birth() { - me.logSubscribers = new MapBox() - // ... - } - - // ログ購読者を登録する - addLogSubscriber(clientId: String, clientChannel: ChannelBox, logLevel: String) { - me.logSubscribers.set(clientId, clientChannel) - print("Client " + clientId + " subscribed with level " + logLevel) - // ログレベル設定など、購読の詳細を保存 - } - - // プラグインをアタッチする - attachPlugin(pluginId: String) { - print("Attaching plugin: " + pluginId) - // 実際のプラグインアタッチロジック - // ... - } - - // ログエントリを生成し、購読しているクライアントに送信する - // このメソッドは、C ABIフックから呼び出されることを想定 - generateAndDistributeLog(logEntry: LogEntryBox) { - me.logSubscribers.forEach((clientId, channel) => { - // クライアントの購読設定(ログレベルなど)に基づいてフィルタリング - if me.shouldSendLogToClient(clientId, logEntry) { - channel.send(logEntry) - } - }) - } - - // 特定のクライアントID宛のログを取得する (forwardDebuggerLogsToClientから呼び出される) - getLogEntryForClient(clientId: String) -> LogEntryBox { - // このメソッドは、実際にはgenerateAndDistributeLogがチャネルに送ったログを - // クライアントのforwardDebuggerLogsToClientルーチンが受け取る形になる - // ここでは簡略化のためダミーを返す - return new LogEntryBox("Dummy log for " + clientId) - } - - shouldSendLogToClient(clientId: String, logEntry: LogEntryBox) -> Bool { - // ログレベルフィルタリングなどのロジック - return true - } -} - -// ダミーのBox定義 (実際のIPC実装やログエントリの構造に合わせる) -box ClientConnectionBox { - id: String - birth(id: String) { me.id = id } - id() -> String { return me.id } - receiveCommand() -> CommandBox { /* ダミー */ return new CommandBox("subscribe", "info") } - sendResponse(id: String, response: Box) { /* ダミー */ } - onClose(handler: Function) { /* ダミー */ } -} - -box CommandBox { - method: String - params: MapBox - id: String - birth(method: String, param: String) { me.method = method; me.params = new MapBox(); me.id = "1" } -} - -box OkBox { birth() {} } -box ErrorBox { birth(msg: String) {} } -box LogEntryBox { birth(msg: String) {} } \ No newline at end of file diff --git a/docs/development/proposals/ideas/tools/cax/inspiration-process.md b/docs/development/proposals/ideas/tools/cax/inspiration-process.md deleted file mode 100644 index 45276a5a..00000000 --- a/docs/development/proposals/ideas/tools/cax/inspiration-process.md +++ /dev/null @@ -1,125 +0,0 @@ -# CAX発想プロセス記録 - 1分間の技術的洞察 - -**発想者**: nyash開発者 -**発想時刻**: 2025-09-21 -**所要時間**: 約1分 -**背景**: Mini-VM開発中、C ABI動的呼び出し議論から - -## 🧠 発想の直線的プロセス - -### Initial Context (0秒) -``` -議題: 「C ABIを動的にプラグインのように取り外しも まあ できるかにゃ やる意味はおいといて」 -↓ -ChatGPT回答: 「技術的にはほぼYES」(dlopen/dlsym/安全ガード等の詳細分析) -``` - -### Breakthrough Moment (約10秒) -``` -発想: 「やるいみ おもいついたかもしれない きいてー」 -↓ -直感: 「うふふふふふふふ C ABI デバッガーーーーー!!!!」 -↓ -確信: 「もしかして 最強に 需要あるかもしれにゃい」 -``` - -### Technical Insight (約30秒) -``` -技術的根拠の即座な理解: -- C/CPython/ネイティブの「ABIバグ」が最厄介 -- 既存gdb/ASANは境界の意味論が見えない -- Nyash箱理論 → 境界で完全トレース可能 -→ 「世界でも珍しいレベルのABIデバッグ体験」 -``` - -### UX Vision (約60秒) -``` -直感的体験設計: -「GUIで エクスプローラーみたいながめんから ぽいっと付けたり外したり  -ログもGUIで 入力もマクロなど自由自在」 -``` - -## 🌟 発想の技術的妥当性 - -### なぜ1分で到達できたか - -#### 1. **技術基盤の理解** -- Nyash箱理論: TypeBox/PluginHost境界の明確性 -- 既存ABI: C ABI呼び出し機構の理解 -- 問題認識: 境界バグの困難性を体感済み - -#### 2. **直感的問題発見** -``` -C ABI動的 → 「取り外し可能?」 -↓ -境界操作 → 「デバッグが困難」 -↓ -観測・制御 → 「専用ツールが必要」 -``` - -#### 3. **解決策の即座構築** -``` -観測: ログ・トレース・可視化 -制御: アタッチ・デタッチ・ホットスワップ -体験: GUI・自動化・直感的操作 -``` - -## 💡 発想の独創性分析 - -### 既存アプローチとの差別化 -``` -従来: gdb/ASAN = 汎用デバッガでABI境界は副次的 -CAX: ABI境界専用 = 境界観測に特化した設計 -``` - -### Nyash特有の優位性 -``` -箱理論: 境界が明確 → フック位置の自明性 -統一ライフサイクル: birth/fini → 所有権追跡容易 -型安全: TypeBox → 実時間型検証可能 -``` - -## 🎯 発想の実現可能性 - -### 技術的実現性(ChatGPT分析) -- **Core実装**: 2週間MVP可能 -- **GUI実装**: Tauri/Electron + 既存IPC -- **アーキテクチャ**: 既存基盤活用可能 - -### 市場性(直感的評価) -- **開発者需要**: ABI境界バグは普遍的問題 -- **差別化**: 既存ツールにない専用機能 -- **Nyash優位**: 箱理論による技術的アドバンテージ - -## 🚀 発想の発展性 - -### ChatGPT展開(30分) -- 具体的UX設計 -- アーキテクチャ詳細化 -- 実装ロードマップ -- リスク分析・対策 - -### Gemini実装(直後) -- 172行実装コード -- IPC層具体化 -- RoutineBox/ChannelBox活用 -- 即実装可能レベルまで具体化 - -## 📝 技術史的意義 - -### 個人開発+AI協働の威力 -``` -1分: 核心アイデア発見(人間) -30分: 設計具体化(ChatGPT) -直後: 実装コード(Gemini) -→ 数時間で「世界初ツール」のプロトタイプ完成 -``` - -### 発想の本質 -- **直感性**: 技術制約から新可能性を即座発見 -- **実用性**: 実際の開発痛点からのソリューション -- **革新性**: 既存アプローチの根本的再設計 - ---- - -**結論**: この1分間の発想は、技術的直感・問題発見力・解決策構築力の集約であり、AI協働開発の理想的パターンを実証した記録である。 \ No newline at end of file diff --git a/docs/development/proposals/ideas/tools/cax/technical-roadmap.md b/docs/development/proposals/ideas/tools/cax/technical-roadmap.md deleted file mode 100644 index be426b46..00000000 --- a/docs/development/proposals/ideas/tools/cax/technical-roadmap.md +++ /dev/null @@ -1,186 +0,0 @@ -# CAX Technical Roadmap - Post‑Bootstrap Implementation Plan - -**Target**: Mini-VM完成後の即実装 -**Duration**: 2-3週間でMVP完成 -**Dependency**: Mini-VM安定化 + 既存PluginHost基盤 - -## 🏗️ Implementation Phases - -### Phase 0: Foundation (Mini-VM安定化待ち) -**Duration**: Mini-VM完成まで -**Tasks**: -- ✅ 設計文書化(完了) -- ✅ Gemini実装コード保存(完了) -- ✅ ChatGPT設計仕様保存(完了) -- [ ] 既存PluginHost.Invoke調査 -- [ ] IPC実装方式決定(WebSocket/Unix Socket) - -### Phase 1: Core Implementation (Week 1) -**Duration**: 5日間 -**Deliverables**: 基本IPC + 最小GUI - -#### Backend (3日) -```rust -// src/tools/cax_server/ -├── ipc_server.rs // IPC通信層 -├── cabi_debugger.rs // フック・ログ・検証 -├── plugin_manager.rs // アタッチ・デタッチ管理 -└── main.rs // サーバー起動 -``` - -#### Frontend (2日) -```typescript -// gui/cax/ -├── src/ -│ ├── components/ -│ │ ├── Explorer.svelte // プラグイン一覧 -│ │ ├── Timeline.svelte // ライブログ表示 -│ │ └── Inspector.svelte // 詳細表示 -│ ├── api/ -│ │ └── cax_client.ts // IPC通信 -│ └── App.svelte // メインアプリ -└── tauri.conf.json -``` - -#### MVP機能 -- [x] プラグイン一覧表示 -- [x] アタッチ/デタッチボタン -- [x] リアルタイムログ表示(JSONL) -- [x] 基本フィルタリング - -### Phase 2: Advanced Features (Week 2) -**Duration**: 5日間 -**Deliverables**: Record/Replay + Hot-swap - -#### Record/Replay System -```rust -// レコーダー -pub struct CallRecorder { - output: BufWriter, - format: RecordFormat, // JSONL | TLV -} - -// リプレイヤー -pub struct CallReplayer { - calls: Vec, - mock_mode: bool, // プラグイン無しで再生 -} -``` - -#### Hot-Swap Management -```rust -// ホットスワップ管理 -pub struct PluginSwapper { - state: SwapState, // Attached | Quiescing | Swapping - pending_calls: AtomicU64, - swap_queue: VecDeque, -} -``` - -#### GUI拡張 -- [x] 録画/再生コントロール -- [x] ホットスワップウィザード -- [x] コール詳細インスペクター -- [x] 簡易スクリプト実行 - -### Phase 3: Polish & Advanced (Week 3) -**Duration**: 5日間 -**Deliverables**: 本格運用可能版 - -#### Analytics & Visualization -```typescript -// ヒートマップ・統計表示 -interface CallStats { - plugin: string - method: string - call_count: number - avg_time_us: number - error_rate: number - hot_paths: string[] -} -``` - -#### Advanced Scripting -```nyash -// CAX Macro API -using cax.api as CAX - -CAX.enable({profile: true, assert: "warn"}) -CAX.attach("map.so") - -// 自動化スクリプト例 -local errorCount = CAX.filter({outcome: "error"}).count() -if errorCount > 10 { - CAX.hotswap("map.so", "/backup/map_stable.so") -} -``` - -#### Production Features -- [x] 詳細設定・永続化 -- [x] エクスポート(HTML/PDF レポート) -- [x] プラグイン署名検証 -- [x] 権限・セキュリティ管理 - -## 🎯 Success Criteria - -### MVP Success (Phase 1) -- [x] プラグインアタッチ→ログ表示まで1クリック -- [x] リアルタイム表示でパフォーマンス影響<5% -- [x] 基本的なABIバグ(型ミスマッチ)を検出 - -### Advanced Success (Phase 2) -- [x] Record→Replay でCI回帰テスト実現 -- [x] ホットスワップでサービス無停止更新 -- [x] 複雑なABIバグを根本特定 - -### Production Success (Phase 3) -- [x] 日常開発ワークフローに統合 -- [x] 他言語(Python/C++)開発者も使用開始 -- [x] 学術発表・OSS公開で注目獲得 - -## 🔧 Technical Implementation Notes - -### IPC選択基準 -``` -WebSocket: ブラウザベースGUI用(開発容易) -Unix Socket: ネイティブGUI用(性能優先) -→ 両対応、設定で選択可能 -``` - -### フック実装位置 -```rust -// PluginHost::invoke の入口・出口 -impl PluginHost { - pub fn invoke(&self, call: &PluginCall) -> Result { - CAX_TRACER.pre_call(call); // 🎯 フック点1 - let result = self.invoke_impl(call); - CAX_TRACER.post_call(call, &result); // 🎯 フック点2 - result - } -} -``` - -### パフォーマンス最適化 -```rust -// 条件付きトレース(オーバーヘッド最小化) -if CAX_ENABLED.load(Ordering::Relaxed) { - tracer.log_call(call_info); -} - -// 非同期ログ書き込み -async fn log_writer(mut receiver: Receiver) { - while let Some(entry) = receiver.recv().await { - // バッファリング→バッチ書き込み - } -} -``` - -## 📅 Realistic Timeline - -**Prerequisite**: Mini-VM安定化(推定2-3週間) -**Implementation**: CAX開発(3週間) -**Total**: 約6週間でプロダクション品質版完成 - ---- - -**Note**: この実装計画は、Geminiの172行実装とChatGPTの設計仕様を基に、現実的なタイムラインで作成。Mini-VM完成後、即座に実装開始可能。 diff --git a/docs/development/proposals/nyash.link/README.md b/docs/development/proposals/nyash.link/README.md deleted file mode 100644 index 658a42ca..00000000 --- a/docs/development/proposals/nyash.link/README.md +++ /dev/null @@ -1,267 +0,0 @@ -# nyash.linkシステム設計 - モジュール・依存関係管理革命 - -## 🎯 設計背景 - -### 📊 現状調査結果 -- **include使用状況**: 主にexamples/text_adventureで10件程度、実用性は限定的 -- **usingキーワード**: **未実装**(トークナイザーにも存在しない) -- **namespace設計**: Phase 9.75eで仕様完成、実装待ち - -### 🌟 Gemini先生の推奨 -> 「技術的に非常に妥当であり、現代的なプログラミング言語の設計として強く推奨される」 - -**結論**: includeほぼ未使用 + using未実装 = 完全に新設計で進められる!🎉 - -## 🚀 設計方針 - -### 💡 基本コンセプト -``` -依存関係管理(nyash.link) + モジュールインポート(using) = 完璧な統合 -``` - -### 🎯 他言語成功モデル -- **Rust**: `Cargo.toml + mod/use` - 厳格で分かりやすい -- **Node.js**: `package.json + import/export` - エコシステム成功 -- **Python**: `pyproject.toml + import` - 依存関係分離 - -## 📋 nyash.linkファイル仕様 - -### 基本フォーマット -```toml -# nyash.link (プロジェクトルート) -[project] -name = "my-nyash-project" -version = "0.1.0" -description = "素晴らしいNyashプロジェクト" - -[dependencies] -# 標準ライブラリ -nyashstd = { path = "./stdlib/nyashstd.hako" } - -# ユーザーライブラリ -mylib = { path = "./libs/mylib.hako" } -utils = { path = "./src/utils.hako" } - -# 将来の外部パッケージ(例) -# http_client = { version = "1.0.0", registry = "nyash-pkg" } - -[search_paths] -stdlib = "./stdlib/" -libs = "./libs/" -src = "./src/" - -[build] -entry_point = "./src/main.hako" -``` - -### 依存関係タイプ - -#### 1. **ローカル依存** -```toml -[dependencies] -my_module = { path = "./src/my_module.hako" } -``` - -#### 2. **標準ライブラリ** -```toml -[dependencies] -nyashstd = { stdlib = true } # 特別扱い -``` - -#### 3. **将来の外部パッケージ** -```toml -[dependencies] -awesome_lib = { version = "^1.2.0", registry = "nyash-pkg" } -``` - -## 🔧 usingシステム設計 - -### 1. トークナイザー拡張 -```rust -// src/tokenizer.rs に追加 -pub enum TokenType { - // 既存... - USING, // using (モジュールインポート) - NAMESPACE, // namespace (名前空間宣言) -} -``` - -### 2. パーサー拡張 -```rust -// AST拡張 -pub enum Statement { - // 既存... - UsingStatement { - module_path: Vec, // ["nyashstd", "string"] - alias: Option, // using nyashstd.string as str - }, - NamespaceDeclaration { - name: String, - body: Vec, - }, -} -``` - -### 3. 基本構文 -```nyash -// ===== using構文パターン ===== - -// パターンA: 名前空間全体 -using nyashstd -string.upper("hello") // nyashstd.string.upper -math.sin(3.14) // nyashstd.math.sin - -// パターンB: 特定機能(将来拡張) -using nyashstd.string -upper("hello") // string.upperを直接 - -// パターンC: エイリアス(将来拡張) -using nyashstd.string as str -str.upper("hello") - -// パターンD: 完全修飾名(常時利用可能) -nyashstd.string.upper("hello") // using不要 -``` - -## 📁 推奨ディレクトリ構造 - -### 基本プロジェクト構造 -``` -my-nyash-project/ -├── nyash.link # 依存関係定義 -├── src/ -│ ├── main.hako # エントリーポイント -│ ├── utils.hako # ユーティリティモジュール -│ └── models/ -│ └── user.hako # モデル定義 -├── libs/ # プロジェクト固有ライブラリ -│ └── mylib.hako -├── stdlib/ # 標準ライブラリ(システム配布) -│ └── nyashstd.hako -└── tests/ # テストファイル - └── test_main.hako -``` - -### 標準ライブラリ構造 -``` -stdlib/ -├── nyashstd.hako # メインエントリー -├── string/ -│ └── mod.hako # string関連機能 -├── math/ -│ └── mod.hako # 数学関数 -├── http/ -│ └── mod.hako # HTTP関連 -└── io/ - └── mod.hako # I/O関連 -``` - -## 🔄 動作フロー - -### 1. プロジェクト初期化 -```bash -# 将来のCLI例 -nyash init my-project # nyash.linkテンプレート生成 -cd my-project -``` - -### 2. 実行時解決 -``` -main.hako実行 - ↓ -nyash.link読み込み - ↓ -using nyashstd解析 - ↓ -./stdlib/nyashstd.hako読み込み - ↓ -namespace nyashstd解析・登録 - ↓ -string.upper()利用可能 -``` - -### 3. 名前解決アルゴリズム -``` -string.upper() 呼び出し - ↓ -1. ローカルスコープ検索 -2. usingでインポートされた名前空間検索 -3. 完全修飾名として解釈 -4. エラー(未定義) -``` - -## 🧪 実装段階 - -### Phase 1: 最小実装 -```nyash -// ✅ 実装目標 -using mylib // 単純パス解決 -mylib.hello() // 関数呼び出し - -// nyash.link -[dependencies] -mylib = { path = "./mylib.hako" } -``` - -### Phase 2: 名前空間サポート -```nyash -// ✅ 実装目標 -using nyashstd -string.upper("hello") - -// nyashstd.hako -namespace nyashstd { - static box string { - static upper(str) { ... } - } -} -``` - -### Phase 3: 高度機能 -- エイリアス(`using ... as ...`) -- 選択インポート(`using nyashstd.string`) -- 循環依存検出 -- パッケージレジストリ連携 - -## ⚡ 実装優先順位 - -### 🚨 Critical(即時) -1. **UsingTokenizer実装** - Token::USINGを追加 -2. **基本パーサー** - using文AST構築 -3. **nyash.link解析** - TOML読み込み機能 - -### ⚡ High(今週) -4. **名前解決エンジン** - モジュール→ファイル解決 -5. **基本テスト** - using mylib動作確認 -6. **エラー処理** - 未定義モジュール等 - -### 📝 Medium(来週) -7. **namespace構文** - static box解析 -8. **標準ライブラリ設計** - nyashstd.hako作成 -9. **完全修飾名** - nyashstd.string.upper() - -### 🔮 Future(今後) -10. **IDE連携** - Language Server補完 -11. **パッケージマネージャー** - 外部レジストリ -12. **循環依存検出** - 高度エラー処理 - -## 🎉 期待効果 - -### 📈 開発体験向上 -- **IDE補完**: `ny`→全標準機能表示 -- **探索可能性**: モジュール構造が明確 -- **エラー削減**: 名前衝突・未定義の事前検出 - -### 🏗️ プロジェクト管理 -- **依存関係明確化**: nyash.linkで一元管理 -- **ビルド再現性**: 他環境での確実な動作 -- **スケーラビリティ**: 大規模プロジェクト対応 - -### 🌍 エコシステム発展 -- **ライブラリ共有**: 標準化されたモジュール形式 -- **コミュニティ成長**: パッケージレジストリ基盤 -- **言語成熟度**: モダンな言語仕様 - ---- - -**🐾 この設計でNyashが真にモダンなプログラミング言語になるにゃ!** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/bid-using-integration.md b/docs/development/proposals/nyash.link/bid-using-integration.md deleted file mode 100644 index a11b5b6f..00000000 --- a/docs/development/proposals/nyash.link/bid-using-integration.md +++ /dev/null @@ -1,654 +0,0 @@ -# BID×usingシステム統合:技術実装詳細 - -## 🎯 統合設計の核心 - -### 📊 既存システムとの整合性 -- ✅ **MIR ExternCall**: 既にFFI-ABI対応実装済み -- ✅ **WASM RuntimeImports**: BID→WASM自動生成基盤あり -- ✅ **VM ExternStub**: スタブ実行環境実装済み -- 🔧 **統合課題**: usingシステムとBIDの橋渡し実装 - -### 🚀 統合アーキテクチャ概要 -``` -User Code (using statements) - ↓ -UniversalNamespaceRegistry - ↓ -CallTarget Resolution - ↓ ↓ ↓ -Builtin FFI-ABI NyashModule - ↓ ↓ ↓ -MIR Generation (BuiltinCall/ExternCall/ModuleCall) - ↓ -Backend Execution (VM/WASM/AOT) -``` - -## 🏗️ 詳細技術実装 - -### 1. BID定義システム - -#### **BIDファイル構造拡張** -```yaml -# apis/enhanced_canvas.yaml -version: 1 -metadata: - name: "Enhanced Canvas API" - description: "Extended Canvas API with batch operations" - target_environments: ["browser", "node-canvas", "skia"] - nyash_namespace: "canvas_api" # usingで使用する名前空間 - -interfaces: - - name: canvas_api.canvas - box: Canvas - methods: - # 基本描画 - - name: fillRect - params: - - {string: canvas_id, description: "Canvas element ID"} - - {i32: x, description: "X coordinate"} - - {i32: y, description: "Y coordinate"} - - {i32: width, description: "Rectangle width"} - - {i32: height, description: "Rectangle height"} - - {string: color, description: "Fill color (CSS format)"} - returns: void - effect: io - optimization_hints: - batch_compatible: true # バッチ処理可能 - gpu_accelerated: true # GPU加速対応 - - # バッチ描画(最適化版) - - name: fillRectBatch - params: - - {string: canvas_id} - - {array_of_rect: rects, element_type: "CanvasRect"} - returns: void - effect: io - optimization_hints: - prefer_over: ["fillRect"] # 複数fillRectの代替 - min_batch_size: 3 - - # テキスト描画 - - name: fillText - params: - - {string: canvas_id} - - {string: text} - - {i32: x} - - {i32: y} - - {string: font} - - {string: color} - returns: void - effect: io - -# カスタム型定義 -custom_types: - - name: CanvasRect - fields: - - {i32: x} - - {i32: y} - - {i32: width} - - {i32: height} - - {string: color} -``` - -#### **BID読み込み・検証システム** -```rust -// 新ファイル: src/bid/mod.rs -use serde::{Deserialize, Serialize}; -use std::collections::HashMap; - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct BidDefinition { - pub version: u32, - pub metadata: BidMetadata, - pub interfaces: Vec, - pub custom_types: Option>, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct BidMetadata { - pub name: String, - pub description: String, - pub target_environments: Vec, - pub nyash_namespace: String, // using文で使用する名前空間名 -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct BidInterface { - pub name: String, // "canvas_api.canvas" - pub box_name: String, // "Canvas" - pub methods: Vec, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct BidMethod { - pub name: String, - pub params: Vec, - pub returns: BidType, - pub effect: BidEffect, - pub optimization_hints: Option, - pub description: Option, -} - -#[derive(Debug, Clone, Deserialize, Serialize)] -pub struct BidOptimizationHints { - pub batch_compatible: Option, - pub gpu_accelerated: Option, - pub prefer_over: Option>, - pub min_batch_size: Option, -} - -impl BidDefinition { - pub fn load_from_file(path: &Path) -> Result { - let content = std::fs::read_to_string(path)?; - let bid: BidDefinition = serde_yaml::from_str(&content)?; - - // バリデーション - bid.validate()?; - - Ok(bid) - } - - pub fn validate(&self) -> Result<(), BidError> { - // バージョン確認 - if self.version > 1 { - return Err(BidError::UnsupportedVersion(self.version)); - } - - // 名前空間重複チェック - let mut interface_names = HashSet::new(); - for interface in &self.interfaces { - if interface_names.contains(&interface.name) { - return Err(BidError::DuplicateInterface(interface.name.clone())); - } - interface_names.insert(interface.name.clone()); - } - - // パラメータ型確認 - for interface in &self.interfaces { - for method in &interface.methods { - for param in &method.params { - self.validate_type(¶m.param_type)?; - } - self.validate_type(&method.returns)?; - } - } - - Ok(()) - } - - pub fn resolve_method(&self, box_name: &str, method_name: &str) - -> Option<&BidMethod> { - - for interface in &self.interfaces { - // インターフェース名から最後の部分を取得 - // "canvas_api.canvas" → "canvas" - let interface_box_name = interface.name.split('.').last().unwrap_or(&interface.name); - - if interface_box_name == box_name { - for method in &interface.methods { - if method.name == method_name { - return Some(method); - } - } - } - } - - None - } -} -``` - -### 2. 統合名前空間レジストリ詳細 - -#### **UniversalNamespaceRegistry実装** -```rust -// src/registry/universal.rs -use crate::stdlib::BuiltinStdlib; -use crate::bid::BidDefinition; -use crate::module::ExternalModule; -use crate::mir::Effect; - -pub struct UniversalNamespaceRegistry { - /// 組み込み標準ライブラリ - builtin_stdlib: Arc, - - /// FFI-ABI定義(BID) - bid_definitions: HashMap>, - - /// Nyashモジュール(従来) - nyash_modules: HashMap>, - - /// ファイル別usingコンテキスト - using_contexts: Arc>>, - - /// 最適化情報キャッシュ - optimization_cache: Arc>, -} - -#[derive(Debug, Clone)] -pub struct UsingContext { - pub file_id: String, - pub builtin_namespaces: Vec, // ["nyashstd"] - pub bid_namespaces: Vec, // ["canvas_api", "console_api"] - pub module_namespaces: Vec, // ["mylib", "utils"] -} - -impl UniversalNamespaceRegistry { - pub fn new() -> Self { - UniversalNamespaceRegistry { - builtin_stdlib: Arc::new(BuiltinStdlib::new()), - bid_definitions: HashMap::new(), - nyash_modules: HashMap::new(), - using_contexts: Arc::new(RwLock::new(HashMap::new())), - optimization_cache: Arc::new(RwLock::new(OptimizationCache::new())), - } - } - - pub fn load_from_nyash_link(&mut self, nyash_link: &NyashLink) - -> Result<(), RegistryError> { - - // BID依存関係読み込み - for (namespace_name, dependency) in &nyash_link.dependencies { - match dependency { - Dependency::Bid { bid_path, .. } => { - let bid = BidDefinition::load_from_file(Path::new(bid_path))?; - self.bid_definitions.insert(namespace_name.clone(), Arc::new(bid)); - }, - Dependency::Path { path } => { - let module = ExternalModule::load_from_file(Path::new(path))?; - self.hako_modules.insert(namespace_name.clone(), Arc::new(module)); - }, - Dependency::Builtin { .. } => { - // 組み込みライブラリは既に初期化済み - }, - } - } - - Ok(()) - } - - /// 統合using処理 - pub fn process_using(&mut self, namespace_name: &str, file_id: &str) - -> Result<(), RuntimeError> { - - let mut contexts = self.using_contexts.write().unwrap(); - let context = contexts.entry(file_id.to_string()).or_insert_with(|| { - UsingContext { - file_id: file_id.to_string(), - builtin_namespaces: Vec::new(), - bid_namespaces: Vec::new(), - module_namespaces: Vec::new(), - } - }); - - // 組み込み標準ライブラリチェック - if self.builtin_stdlib.has_namespace(namespace_name) { - if !context.builtin_namespaces.contains(&namespace_name.to_string()) { - context.builtin_namespaces.push(namespace_name.to_string()); - } - return Ok(()); - } - - // BID定義チェック - if let Some(bid) = self.bid_definitions.get(namespace_name) { - if !context.bid_namespaces.contains(&namespace_name.to_string()) { - context.bid_namespaces.push(namespace_name.to_string()); - } - return Ok(()); - } - - // Nyashモジュールチェック - if let Some(_module) = self.hako_modules.get(namespace_name) { - if !context.module_namespaces.contains(&namespace_name.to_string()) { - context.module_namespaces.push(namespace_name.to_string()); - } - return Ok(()); - } - - Err(RuntimeError::UndefinedNamespace(namespace_name.to_string())) - } - - /// 統合関数解決 - pub fn resolve_call(&self, file_id: &str, call_path: &[String]) - -> Result { - - if call_path.len() != 2 { - return Err(RuntimeError::InvalidCallPath(call_path.join("."))); - } - - let box_name = &call_path[0]; - let method_name = &call_path[1]; - - let contexts = self.using_contexts.read().unwrap(); - if let Some(context) = contexts.get(file_id) { - - // 1. 組み込み標準ライブラリ解決 - for namespace in &context.builtin_namespaces { - if let Some(method) = self.builtin_stdlib.resolve_method(namespace, box_name, method_name) { - return Ok(ResolvedCall::Builtin { - namespace: namespace.clone(), - box_name: box_name.clone(), - method_name: method_name.clone(), - method_info: method, - }); - } - } - - // 2. BID定義解決 - for namespace in &context.bid_namespaces { - if let Some(bid) = self.bid_definitions.get(namespace) { - if let Some(method) = bid.resolve_method(box_name, method_name) { - return Ok(ResolvedCall::BidCall { - namespace: namespace.clone(), - interface_name: format!("{}.{}", namespace, box_name), - method_name: method_name.clone(), - method_info: method.clone(), - bid_definition: bid.clone(), - }); - } - } - } - - // 3. Nyashモジュール解決 - for namespace in &context.module_namespaces { - if let Some(module) = self.hako_modules.get(namespace) { - if let Some(function) = module.resolve_function(box_name, method_name) { - return Ok(ResolvedCall::ModuleCall { - namespace: namespace.clone(), - module_name: namespace.clone(), - function_name: format!("{}.{}", box_name, method_name), - function_info: function, - }); - } - } - } - } - - Err(RuntimeError::UndefinedMethod(format!("{}.{}", box_name, method_name))) - } -} - -#[derive(Debug, Clone)] -pub enum ResolvedCall { - Builtin { - namespace: String, - box_name: String, - method_name: String, - method_info: BuiltinMethodInfo, - }, - BidCall { - namespace: String, - interface_name: String, - method_name: String, - method_info: BidMethod, - bid_definition: Arc, - }, - ModuleCall { - namespace: String, - module_name: String, - function_name: String, - function_info: ModuleFunctionInfo, - }, -} -``` - -### 3. MIR生成統合 - -#### **統合MIR Builder** -```rust -// src/mir/builder.rs拡張 -impl MirBuilder { - pub fn build_unified_method_call(&mut self, resolved_call: ResolvedCall, args: Vec) - -> Result, MirError> { - - match resolved_call { - ResolvedCall::Builtin { method_info, .. } => { - let result = self.new_value_id(); - - self.emit(MirInstruction::BuiltinCall { - qualified_name: method_info.qualified_name(), - args, - result, - effect: method_info.effect(), - }); - - Ok(Some(result)) - }, - - ResolvedCall::BidCall { interface_name, method_name, method_info, .. } => { - let result = if method_info.returns == BidType::Void { - None - } else { - Some(self.new_value_id()) - }; - - self.emit(MirInstruction::ExternCall { - interface: interface_name, - method: method_name, - args, - result, - effect: self.bid_effect_to_mir_effect(&method_info.effect), - bid_signature: BidSignature::from_method(&method_info), - }); - - Ok(result) - }, - - ResolvedCall::ModuleCall { module_name, function_name, function_info, .. } => { - let result = self.new_value_id(); - - self.emit(MirInstruction::ModuleCall { - module: module_name, - function: function_name, - args, - result, - effect: Effect::Io, // Nyashモジュールはデフォルトでio - }); - - Ok(Some(result)) - }, - } - } - - fn bid_effect_to_mir_effect(&self, bid_effect: &BidEffect) -> Effect { - match bid_effect { - BidEffect::Pure => Effect::Pure, - BidEffect::Mut => Effect::Mut, - BidEffect::Io => Effect::Io, - BidEffect::Control => Effect::Control, - } - } -} -``` - -### 4. バックエンド統合 - -#### **WASM生成統合** -```rust -// src/backend/wasm/codegen.rs拡張 -impl WasmCodegen { - pub fn generate_unified_call(&mut self, instruction: &MirInstruction) - -> Result<(), WasmError> { - - match instruction { - MirInstruction::ExternCall { interface, method, args, bid_signature, .. } => { - // BIDから自動生成されたWASM import名 - let wasm_import_name = self.bid_to_wasm_import_name(interface, method); - - // 引数の型変換・マーシャリング - let marshalled_args = self.marshal_args_for_wasm(args, &bid_signature.params)?; - - // WASM関数呼び出し生成 - self.emit_call(&wasm_import_name, &marshalled_args)?; - - // 戻り値のアンマーシャリング - if bid_signature.returns != BidType::Void { - self.unmarshal_return_value(&bid_signature.returns)?; - } - - Ok(()) - }, - - // 他の命令は既存実装 - _ => self.generate_instruction_legacy(instruction), - } - } - - fn bid_to_wasm_import_name(&self, interface: &str, method: &str) -> String { - // "canvas_api.canvas" + "fillRect" → "canvas_api_canvas_fillRect" - format!("{}_{}", interface.replace(".", "_"), method) - } - - fn marshal_args_for_wasm(&mut self, args: &[ValueId], params: &[BidParam]) - -> Result, WasmError> { - - let mut marshalled = Vec::new(); - - for (i, param) in params.iter().enumerate() { - let arg_value = self.get_value(args[i])?; - - match ¶m.param_type { - BidType::String => { - // 文字列を (ptr, len) にマーシャル - let (ptr, len) = self.string_to_wasm_memory(&arg_value)?; - marshalled.push(WasmValue::I32(ptr)); - marshalled.push(WasmValue::I32(len)); - }, - BidType::I32 => { - marshalled.push(WasmValue::I32(arg_value.to_i32()?)); - }, - BidType::F64 => { - marshalled.push(WasmValue::F64(arg_value.to_f64()?)); - }, - // その他の型... - } - } - - Ok(marshalled) - } -} -``` - -#### **VM実行統合** -```rust -// src/backend/vm.rs拡張 -impl VmBackend { - pub fn execute_unified_instruction(&mut self, instruction: &MirInstruction) - -> Result<(), VmError> { - - match instruction { - MirInstruction::ExternCall { interface, method, args, bid_signature, .. } => { - // VM環境ではスタブまたはネイティブ呼び出し - let evaluated_args = self.evaluate_args(args)?; - - if let Some(native_impl) = self.find_native_implementation(interface, method) { - // ネイティブ実装がある場合(例:ファイルI/O) - let result = native_impl.call(evaluated_args, bid_signature)?; - if let Some(result_id) = &instruction.result { - self.set_value(*result_id, result); - } - } else { - // スタブ実装(ログ出力等) - self.execute_stub_call(interface, method, evaluated_args, bid_signature)?; - } - - Ok(()) - }, - - // 他の命令は既存実装 - _ => self.execute_instruction_legacy(instruction), - } - } - - fn find_native_implementation(&self, interface: &str, method: &str) - -> Option<&dyn NativeImplementation> { - - // VM環境で利用可能なネイティブ実装を検索 - match (interface, method) { - ("env.console", "log") => Some(&self.console_impl), - ("env.filesystem", "read") => Some(&self.filesystem_impl), - ("env.filesystem", "write") => Some(&self.filesystem_impl), - _ => None, - } - } -} -``` - -## 🧪 統合テスト戦略 - -### Phase別テスト実装 - -#### **Phase 0: 基本統合テスト** -```nyash -# test_basic_integration.hako -using nyashstd - -# 組み込み標準ライブラリのみ -assert(string.upper("test") == "TEST") -assert(math.sin(0) == 0) -``` - -#### **Phase 1: BID統合テスト** -```nyash -# test_bid_integration.hako -using nyashstd -using console_api - -# 組み込み + FFI-ABI -string.upper("hello") # 組み込み -console.log("Testing") # FFI-ABI -``` - -#### **Phase 2: 完全統合テスト** -```nyash -# test_full_integration.hako -using nyashstd -using console_api -using mylib - -# 3種類すべて -string.upper("test") # 組み込み -console.log("Integration") # FFI-ABI -mylib.process("data") # Nyashモジュール -``` - -### エラーハンドリングテスト -```nyash -# test_error_handling.hako -try { - using nonexistent_api -} catch error { - assert(error.type == "UndefinedNamespace") -} - -try { - console.nonexistent_method("test") -} catch error { - assert(error.type == "UndefinedMethod") - assert(error.message.contains("Available methods:")) -} -``` - -## 📊 実装マイルストーン - -### ✅ Phase 0完了条件 -- [ ] UniversalNamespaceRegistry基盤実装 -- [ ] 組み込み標準ライブラリ統合 -- [ ] 基本using文処理 -- [ ] MIR BuiltinCall生成 - -### ✅ Phase 1完了条件 -- [ ] BID定義読み込み・検証 -- [ ] BID→MIR ExternCall統合 -- [ ] WASM RuntimeImports自動生成 -- [ ] VM スタブ実行 - -### ✅ Phase 2完了条件 -- [ ] Nyashモジュール統合 -- [ ] 統合エラーハンドリング -- [ ] 最適化キャッシュ -- [ ] 全バックエンド対応 - ---- - -**🎯 この詳細実装により、BIDとusingシステムの完全統合が実現でき、「なんでもAPI計画」の技術基盤が完成するにゃ!🚀🐱** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/builtin-stdlib-architecture.md b/docs/development/proposals/nyash.link/builtin-stdlib-architecture.md deleted file mode 100644 index f39257c0..00000000 --- a/docs/development/proposals/nyash.link/builtin-stdlib-architecture.md +++ /dev/null @@ -1,456 +0,0 @@ -# 組み込みnyashstd名前空間アーキテクチャ設計 - -## 🏗️ 技術的実装アーキテクチャ - -### 📊 現在のインタープリター構造分析 - -#### **NyashInterpreter構造** -```rust -pub struct NyashInterpreter { - pub(super) shared: SharedState, // 共有状態 - pub(super) local_vars: HashMap, - pub(super) outbox_vars: HashMap, - // その他の制御フロー状態... -} -``` - -#### **設計判断:SharedStateに組み込み** -- **理由**: 標準ライブラリは不変・全インタープリターで共有可能 -- **利点**: メモリ効率、パフォーマンス向上 -- **実装**: SharedStateに`builtin_stdlib`フィールド追加 - -## 🌟 最適化されたアーキテクチャ設計 - -### 1. SharedState拡張 - -#### **src/interpreter/core.rs** -```rust -#[derive(Clone)] -pub struct SharedState { - // 既存フィールド... - pub global_vars: Arc>>, - pub functions: Arc>>, - pub box_definitions: Arc>>>, - pub loop_counter: Arc, - pub included_files: Arc>>, - - // 🌟 新規追加: 組み込み標準ライブラリ - pub builtin_stdlib: Arc, - pub using_imports: Arc>>, // ファイル別インポート管理 -} - -#[derive(Debug, Clone)] -pub struct UsingContext { - pub imported_namespaces: Vec, // ["nyashstd"] - pub file_id: String, // インポート元ファイル識別 -} -``` - -### 2. BuiltinStdlib効率化設計 - -#### **新ファイル: src/stdlib/builtin.rs** -```rust -//! 🚀 高性能組み込み標準ライブラリ -//! -//! 設計方針: -//! - Zero-allocation関数実行 -//! - 高速名前解決 -//! - 既存Box実装の最大活用 - -use crate::boxes::*; -use std::collections::HashMap; - -/// 組み込み標準ライブラリのメイン構造体 -#[derive(Debug)] -pub struct BuiltinStdlib { - /// 高速アクセス用:フラットな関数マップ - /// "string.upper" -> BuiltinFunction - pub flat_functions: HashMap, - - /// IDE補完用:階層構造 - /// "nyashstd" -> { "string" -> ["upper", "lower", ...] } - pub hierarchical_map: HashMap>>, -} - -/// 組み込み関数の実装 -pub struct BuiltinFunction { - pub namespace: &'static str, // "nyashstd" - pub box_name: &'static str, // "string" - pub method_name: &'static str, // "upper" - pub implementation: BuiltinMethodImpl, - pub arg_count: Option, // None = 可変長 - pub description: &'static str, // エラーメッセージ・ヘルプ用 -} - -/// 高性能関数実装 -pub type BuiltinMethodImpl = fn(&[Box]) -> Result, RuntimeError>; - -impl BuiltinStdlib { - /// 🚀 標準ライブラリ初期化(起動時1回のみ) - pub fn new() -> Self { - let mut stdlib = BuiltinStdlib { - flat_functions: HashMap::new(), - hierarchical_map: HashMap::new(), - }; - - // 標準関数登録 - stdlib.register_all_functions(); - - stdlib - } - - /// ⚡ 高速関数解決 - pub fn get_function(&self, qualified_name: &str) -> Option<&BuiltinFunction> { - // "string.upper" で直接アクセス - self.flat_functions.get(qualified_name) - } - - /// 🔍 IDE補完用:利用可能関数一覧取得 - pub fn get_available_methods(&self, namespace: &str, box_name: &str) -> Option<&Vec> { - self.hierarchical_map.get(namespace)?.get(box_name) - } - - /// 📋 全名前空間取得(IDE補完用) - pub fn get_all_namespaces(&self) -> Vec<&String> { - self.hierarchical_map.keys().collect() - } -} -``` - -### 3. 標準関数実装(高性能版) - -#### **文字列関数実装** -```rust -impl BuiltinStdlib { - fn register_all_functions(&mut self) { - // === nyashstd.string.* === - self.register_function("string.upper", BuiltinFunction { - namespace: "nyashstd", - box_name: "string", - method_name: "upper", - implementation: |args| { - if args.len() != 1 { - return Err(RuntimeError::InvalidArguments( - "string.upper(str) takes exactly 1 argument".to_string() - )); - } - - // 🚀 既存StringBox実装活用 - let input_str = args[0].to_string_box().value; - let result = StringBox::new(&input_str.to_uppercase()); - Ok(Box::new(result)) - }, - arg_count: Some(1), - description: "Convert string to uppercase", - }); - - self.register_function("string.lower", BuiltinFunction { - namespace: "nyashstd", - box_name: "string", - method_name: "lower", - implementation: |args| { - if args.len() != 1 { - return Err(RuntimeError::InvalidArguments( - "string.lower(str) takes exactly 1 argument".to_string() - )); - } - - let input_str = args[0].to_string_box().value; - let result = StringBox::new(&input_str.to_lowercase()); - Ok(Box::new(result)) - }, - arg_count: Some(1), - description: "Convert string to lowercase", - }); - - self.register_function("string.split", BuiltinFunction { - namespace: "nyashstd", - box_name: "string", - method_name: "split", - implementation: |args| { - if args.len() != 2 { - return Err(RuntimeError::InvalidArguments( - "string.split(str, separator) takes exactly 2 arguments".to_string() - )); - } - - // 🚀 既存StringBox.split()メソッド活用 - let string_box = StringBox::new(&args[0].to_string_box().value); - let separator = &args[1].to_string_box().value; - string_box.split(separator) - }, - arg_count: Some(2), - description: "Split string by separator into array", - }); - - // === nyashstd.math.* === - self.register_function("math.sin", BuiltinFunction { - namespace: "nyashstd", - box_name: "math", - method_name: "sin", - implementation: |args| { - if args.len() != 1 { - return Err(RuntimeError::InvalidArguments( - "math.sin(x) takes exactly 1 argument".to_string() - )); - } - - // 🚀 既存MathBox実装活用 - let math_box = MathBox::new(); - let x = args[0].to_integer_box().value as f64; - let result = math_box.sin(x)?; - Ok(result) - }, - arg_count: Some(1), - description: "Calculate sine of x (in radians)", - }); - - // 階層マップも同時構築 - self.build_hierarchical_map(); - } - - fn register_function(&mut self, qualified_name: &str, function: BuiltinFunction) { - self.flat_functions.insert(qualified_name.to_string(), function); - } - - fn build_hierarchical_map(&mut self) { - for (qualified_name, function) in &self.flat_functions { - let namespace_map = self.hierarchical_map - .entry(function.namespace.to_string()) - .or_insert_with(HashMap::new); - - let method_list = namespace_map - .entry(function.box_name.to_string()) - .or_insert_with(Vec::new); - - method_list.push(function.method_name.to_string()); - } - - // ソートして一貫性確保 - for namespace_map in self.hierarchical_map.values_mut() { - for method_list in namespace_map.values_mut() { - method_list.sort(); - } - } - } -} -``` - -### 4. インタープリター統合 - -#### **NyashInterpreter拡張** -```rust -impl NyashInterpreter { - /// using文実行 - pub fn execute_using(&mut self, namespace_name: &str) -> Result<(), RuntimeError> { - // 組み込み名前空間存在チェック - if !self.shared.builtin_stdlib.hierarchical_map.contains_key(namespace_name) { - return Err(RuntimeError::UndefinedNamespace(namespace_name.to_string())); - } - - // 現在ファイルのusingコンテキスト更新 - let file_id = self.get_current_file_id(); - let mut using_imports = self.shared.using_imports.write().unwrap(); - - let context = using_imports.entry(file_id.clone()).or_insert(UsingContext { - imported_namespaces: Vec::new(), - file_id: file_id.clone(), - }); - - if !context.imported_namespaces.contains(&namespace_name.to_string()) { - context.imported_namespaces.push(namespace_name.to_string()); - } - - Ok(()) - } - - /// ⚡ 高速名前解決:string.upper() → nyashstd.string.upper() - pub fn resolve_qualified_call(&self, path: &[String]) -> Option { - if path.len() != 2 { - return None; // Phase 0では2段階のみ対応 - } - - let box_name = &path[0]; - let method_name = &path[1]; - let file_id = self.get_current_file_id(); - - // 現在ファイルのusingインポート確認 - if let Ok(using_imports) = self.shared.using_imports.read() { - if let Some(context) = using_imports.get(&file_id) { - for namespace in &context.imported_namespaces { - let qualified_name = format!("{}.{}", box_name, method_name); - - // 実際に関数が存在するかチェック - if self.shared.builtin_stdlib.get_function(&qualified_name).is_some() { - return Some(qualified_name); - } - } - } - } - - None - } - - /// 🚀 組み込み関数実行 - pub fn call_builtin_function(&self, qualified_name: &str, args: Vec>) - -> Result, RuntimeError> { - - if let Some(function) = self.shared.builtin_stdlib.get_function(qualified_name) { - // 引数数チェック - if let Some(expected_count) = function.arg_count { - if args.len() != expected_count { - return Err(RuntimeError::InvalidArguments( - format!("{}.{}() takes exactly {} arguments, got {}", - function.box_name, function.method_name, - expected_count, args.len()) - )); - } - } - - // 関数実行 - (function.implementation)(&args) - } else { - Err(RuntimeError::UndefinedMethod(qualified_name.to_string())) - } - } -} -``` - -### 5. 式実行統合 - -#### **src/interpreter/expressions.rs修正** -```rust -impl NyashInterpreter { - pub fn execute_expression(&mut self, node: &ASTNode) -> Result, RuntimeError> { - match node { - // 既存のケース... - - // メソッド呼び出し処理修正 - ASTNode::MethodCall { object, method, args, .. } => { - // オブジェクトが単純な識別子かチェック - if let ASTNode::Variable { name: box_name, .. } = object.as_ref() { - // using経由での短縮呼び出しチェック - let path = vec![box_name.clone(), method.clone()]; - if let Some(qualified_name) = self.resolve_qualified_call(&path) { - // 引数評価 - let evaluated_args = self.evaluate_arguments(args)?; - // 組み込み関数実行 - return self.call_builtin_function(&qualified_name, evaluated_args); - } - } - - // 既存のメソッド呼び出し処理 - // ... - } - - // using文実行 - ASTNode::UsingStatement { namespace_name, .. } => { - self.execute_using(namespace_name)?; - Ok(Box::new(VoidBox::new())) - } - - // 他の既存ケース... - } - } -} -``` - -## 📊 パフォーマンス特性 - -### ⚡ 最適化ポイント - -#### **1. Zero-Allocation関数解決** -```rust -// ❌ 遅い:毎回文字列生成 -let qualified = format!("{}.{}", box_name, method_name); - -// ✅ 高速:事前計算済みマップ -if let Some(func) = stdlib.flat_functions.get(&qualified_name) { ... } -``` - -#### **2. 高速名前解決** -```rust -// O(1)アクセス:HashMap直接ルックアップ -// "string.upper" -> BuiltinFunction -``` - -#### **3. 既存Box実装活用** -```rust -// 既存の最適化済みStringBox.split()を直接使用 -string_box.split(separator) // 新規実装不要 -``` - -## 🧪 テストカバレッジ - -### Phase 0必須テスト - -#### **基本機能テスト** -```nyash -# test_builtin_stdlib_basic.hako -using nyashstd - -# 文字列操作 -assert(string.upper("hello") == "HELLO") -assert(string.lower("WORLD") == "world") -assert(string.split("a,b,c", ",").length() == 3) - -# 数学関数 -assert(math.sin(0) == 0) -assert(math.cos(0) == 1) - -# 配列操作 -local arr = [1, 2, 3] -assert(array.length(arr) == 3) -assert(array.get(arr, 1) == 2) -``` - -#### **エラーハンドリング** -```nyash -# test_builtin_stdlib_errors.hako -using nyashstd - -# 引数数エラー -try { - string.upper("hello", "extra") # 2引数でエラー - assert(false, "Should have thrown error") -} catch e { - assert(e.contains("takes exactly 1 argument")) -} - -# 未定義名前空間 -try { - using nonexistent - assert(false, "Should have thrown error") -} catch e { - assert(e.contains("UndefinedNamespace")) -} -``` - -#### **IDE補完サポート** -```rust -// テスト:補完候補取得 -let methods = stdlib.get_available_methods("nyashstd", "string"); -assert!(methods.unwrap().contains(&"upper".to_string())); -assert!(methods.unwrap().contains(&"lower".to_string())); -``` - -## 🎯 実装順序 - -### 🚨 Critical(即時実装) -1. **BuiltinStdlib基盤** - src/stdlib/builtin.rs作成 -2. **SharedState統合** - builtin_stdlibフィールド追加 -3. **using文パーサー** - ASTNode::UsingStatement - -### ⚡ High(今週中) -4. **string関数4種** - upper, lower, split, join -5. **基本テスト** - using nyashstd動作確認 -6. **エラーハンドリング** - 適切なエラーメッセージ - -### 📝 Medium(来週) -7. **math関数5種** - sin, cos, sqrt, floor, random -8. **array関数4種** - length, get, push, slice -9. **io関数3種** - print, println, debug - ---- - -**⚡ この高性能アーキテクチャで、複雑なファイル依存関係なしに即座に実用的なnamespace/usingが実現できるにゃ!🚀** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/examples.md b/docs/development/proposals/nyash.link/examples.md deleted file mode 100644 index 8f81cc09..00000000 --- a/docs/development/proposals/nyash.link/examples.md +++ /dev/null @@ -1,394 +0,0 @@ -# nyash.linkシステム使用例 - -## 🎯 基本的な使用例 - -### 📁 プロジェクト構造例 -``` -my-awesome-app/ -├── nyash.link # 依存関係定義 -├── src/ -│ ├── main.hako # メインファイル -│ ├── models/ -│ │ └── user.hako # ユーザーモデル -│ └── utils/ -│ └── helpers.hako # ヘルパー関数 -├── libs/ -│ └── custom_lib.hako # カスタムライブラリ -└── stdlib/ - └── nyashstd.hako # 標準ライブラリ -``` - -### 📋 nyash.linkファイル例 -```toml -[project] -name = "my-awesome-app" -version = "1.0.0" -description = "Everything is Box philosophy in action!" - -[dependencies] -# 標準ライブラリ -nyashstd = { path = "./stdlib/nyashstd.hako" } - -# プロジェクト内モジュール -user_model = { path = "./src/models/user.hako" } -helpers = { path = "./src/utils/helpers.hako" } - -# カスタムライブラリ -custom_lib = { path = "./libs/custom_lib.hako" } - -[search_paths] -stdlib = "./stdlib/" -src = "./src/" -libs = "./libs/" - -[build] -entry_point = "./src/main.hako" -``` - -## 🌟 実用的なコード例 - -### 1. 基本的なusing使用 -```nyash -# ===== src/main.hako ===== -using nyashstd -using helpers - -static box Main { - init { console } - - main() { - me.console = new ConsoleBox() - - # 標準ライブラリ使用 - local text = "hello world" - local upper_text = string.upper(text) # nyashstd.string.upper - me.console.log("Upper: " + upper_text) - - # ヘルパー関数使用 - local processed = helpers.process_data("sample data") - me.console.log("Processed: " + processed) - - # 数学関数 - local result = math.sin(3.14159) - me.console.log("Sin: " + result.toString()) - } -} -``` - -### 2. 標準ライブラリ定義例 -```nyash -# ===== stdlib/nyashstd.hako ===== -namespace nyashstd { - static box string { - static upper(str) { - local string_box = new StringBox(str) - return string_box.upper() - } - - static lower(str) { - local string_box = new StringBox(str) - return string_box.lower() - } - - static split(str, separator) { - local string_box = new StringBox(str) - return string_box.split(separator) - } - - static join(array, separator) { - local sep_box = new StringBox(separator) - return sep_box.join(array) - } - } - - static box math { - static sin(x) { - local math_box = new MathBox() - return math_box.sin(x) - } - - static cos(x) { - local math_box = new MathBox() - return math_box.cos(x) - } - - static random() { - local random_box = new RandomBox() - return random_box.nextFloat() - } - - static floor(x) { - local math_box = new MathBox() - return math_box.floor(x) - } - } - - static box io { - static read_file(path) { - local file_box = new FileBox() - return file_box.read(path) - } - - static write_file(path, content) { - local file_box = new FileBox() - return file_box.write(path, content) - } - } -} -``` - -### 3. ヘルパーモジュール例 -```nyash -# ===== src/utils/helpers.hako ===== -using nyashstd - -static function process_data(data) { - # データ処理のヘルパー - local trimmed = string.trim(data) - local upper = string.upper(trimmed) - return "PROCESSED: " + upper -} - -static function calculate_score(points, multiplier) { - local result = points * multiplier - return math.floor(result) -} - -static function format_user_name(first, last) { - return string.upper(first) + " " + string.upper(last) -} -``` - -### 4. モデル定義例 -```nyash -# ===== src/models/user.hako ===== -using nyashstd -using helpers - -box User { - init { name, email, score } - - birth(user_name, user_email) { - me.name = user_name - me.email = user_email - me.score = 0 - } - - add_points(points) { - me.score = me.score + points - return me.score - } - - get_formatted_name() { - local parts = string.split(me.name, " ") - if parts.length() >= 2 { - return helpers.format_user_name(parts.get(0), parts.get(1)) - } else { - return string.upper(me.name) - } - } - - save_to_file() { - local data = "User: " + me.name + ", Email: " + me.email + ", Score: " + me.score.toString() - local filename = "user_" + string.lower(me.name) + ".txt" - io.write_file(filename, data) - } -} -``` - -## 🎮 実用アプリケーション例 - -### 1. シンプルなWebサーバー -```nyash -# ===== web_server.hako ===== -using nyashstd -using custom_lib - -static box WebServer { - init { server, port } - - birth(server_port) { - me.port = server_port - me.server = new HttpServerBox() - } - - start() { - me.server.bind("localhost", me.port) - - me.server.on("request", me.handle_request) - - local console = new ConsoleBox() - console.log("Server started on port " + me.port.toString()) - - me.server.listen() - } - - handle_request(request, response) { - local url = request.getUrl() - - if url == "/" { - local html = io.read_file("./public/index.html") - response.setStatus(200) - response.setHeader("Content-Type", "text/html") - response.send(html) - } else { - response.setStatus(404) - response.send("Not Found") - } - } -} - -# メイン実行 -local server = new WebServer(3000) -server.start() -``` - -### 2. データ処理パイプライン -```nyash -# ===== data_processor.hako ===== -using nyashstd -using helpers - -static box DataProcessor { - init { input_file, output_file } - - birth(input_path, output_path) { - me.input_file = input_path - me.output_file = output_path - } - - process() { - # データ読み込み - local raw_data = io.read_file(me.input_file) - local lines = string.split(raw_data, "\n") - - # 処理済みデータ配列 - local processed_lines = new ArrayBox() - - # 各行を処理 - local i = 0 - loop(i < lines.length()) { - local line = lines.get(i) - local processed = helpers.process_data(line) - processed_lines.push(processed) - i = i + 1 - } - - # 結果をファイルに保存 - local result = string.join(processed_lines, "\n") - io.write_file(me.output_file, result) - - return processed_lines.length() - } -} - -# メイン処理 -local processor = new DataProcessor("input.txt", "output.txt") -local count = processor.process() - -local console = new ConsoleBox() -console.log("Processed " + count.toString() + " lines") -``` - -## 🔧 高度な使用パターン - -### 1. 条件付きモジュール読み込み(将来拡張) -```nyash -# 開発環境では詳細ログ、本番環境ではシンプルログ -using nyashstd - -static function get_logger() { - local env = os.get_env("NYASH_ENV") - - if env == "development" { - using dev_logger - return new dev_logger.DetailLogger() - } else { - using prod_logger - return new prod_logger.SimpleLogger() - } -} -``` - -### 2. エイリアス使用例(将来拡張) -```nyash -# 長い名前空間のエイリアス -using very.long.namespace.name as short - -local result = short.helper_function("data") - -# 複数の類似ライブラリ -using json_v1 as json1 -using json_v2 as json2 - -local data1 = json1.parse(input) -local data2 = json2.parse(input) -``` - -### 3. 部分インポート(将来拡張) -```nyash -# 名前空間全体ではなく特定機能のみ -using nyashstd.string -using nyashstd.math - -# これで直接呼び出せる -local result = upper("hello") # string.upper不要 -local sin_val = sin(3.14) # math.sin不要 -``` - -## 📊 移行例:既存includeからusingへ - -### Before(現在のinclude使用) -```nyash -# ===== 既存のtext_adventure例 ===== -include "text_adventure/items.hako" -include "text_adventure/rooms.hako" - -# アイテム作成 -local sword = new Weapon("Sword", 10) -``` - -### After(新しいusing使用) -```nyash -# ===== nyash.link ===== -[dependencies] -game_items = { path = "./text_adventure/items.hako" } -game_rooms = { path = "./text_adventure/rooms.hako" } - -# ===== main.hako ===== -using game_items -using game_rooms - -# アイテム作成(名前空間経由) -local sword = game_items.create_weapon("Sword", 10) -``` - -## 🎉 期待される開発体験 - -### IDE補完の改善 -```nyash -using nyashstd - -# "st" と入力すると... -st → string (補完候補) - -# "string." と入力すると... -string. → upper, lower, split, join, trim, ... (全メソッド表示) -``` - -### エラーメッセージの改善 -```nyash -using nyashstd - -# 間違った呼び出し -local result = string.uppper("hello") # typo - -# エラー: -# Error: Method 'uppper' not found in nyashstd.string -# Did you mean: 'upper'? -# Available methods: upper, lower, split, join, trim -``` - ---- - -**🌟 これらの例でnyash.linkシステムの実用性と美しさが伝わるにゃ!🐱** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/final-implementation-strategy.md b/docs/development/proposals/nyash.link/final-implementation-strategy.md deleted file mode 100644 index e7321e19..00000000 --- a/docs/development/proposals/nyash.link/final-implementation-strategy.md +++ /dev/null @@ -1,406 +0,0 @@ -# 最終実装戦略:標準関数優先namespace/usingシステム - -## 🎯 実装戦略まとめ - -### 📋 設計完了項目 -- ✅ **基本戦略**: nyash.link前の段階的実装 -- ✅ **アーキテクチャ**: SharedState統合による高性能設計 -- ✅ **標準関数**: 組み込みnyashstd名前空間 -- ✅ **実装順序**: Critical → High → Medium - -### 🚀 最終実装ロードマップ - -## Phase 0: 組み込みnyashstd基盤(1-2週間) - -### 🚨 Critical実装(即時) - -#### **1. トークナイザー拡張** -```rust -// src/tokenizer.rs -pub enum TokenType { - // 既存... - USING, // using キーワード追加 -} - -// キーワード認識 -fn tokenize_keyword(word: &str) -> TokenType { - match word { - // 既存... - "using" => TokenType::USING, - _ => TokenType::IDENTIFIER(word.to_string()), - } -} -``` - -#### **2. AST最小拡張** -```rust -// src/ast.rs -pub enum ASTNode { - // 既存... - UsingStatement { - namespace_name: String, // Phase 0: "nyashstd"のみ - span: Span, - }, -} -``` - -#### **3. BuiltinStdlib基盤** -```rust -// 新ファイル: src/stdlib/mod.rs -pub mod builtin; -pub use builtin::*; - -// 新ファイル: src/stdlib/builtin.rs -// (前回設計したBuiltinStdlib実装) -``` - -#### **4. SharedState統合** -```rust -// src/interpreter/core.rs -#[derive(Clone)] -pub struct SharedState { - // 既存フィールド... - pub builtin_stdlib: Arc, - pub using_imports: Arc>>, -} - -impl SharedState { - pub fn new() -> Self { - SharedState { - // 既存初期化... - builtin_stdlib: Arc::new(BuiltinStdlib::new()), - using_imports: Arc::new(RwLock::new(HashMap::new())), - } - } -} -``` - -### ⚡ High実装(今週中) - -#### **5. using文パーサー** -```rust -// src/parser/statements.rs -impl NyashParser { - pub fn parse_statement(&mut self) -> Result { - match &self.current_token().token_type { - // 既存ケース... - TokenType::USING => self.parse_using(), - // 他の既存ケース... - } - } - - fn parse_using(&mut self) -> Result { - let start_span = self.current_token().span.clone(); - self.advance(); // consume 'using' - - if let TokenType::IDENTIFIER(namespace_name) = &self.current_token().token_type { - let name = namespace_name.clone(); - self.advance(); - - // Phase 0制限:nyashstdのみ許可 - if name != "nyashstd" { - return Err(ParseError::UnsupportedFeature( - format!("Only 'nyashstd' namespace is supported in Phase 0, got '{}'", name) - )); - } - - Ok(ASTNode::UsingStatement { - namespace_name: name, - span: start_span, - }) - } else { - Err(ParseError::ExpectedIdentifier( - "Expected namespace name after 'using'".to_string() - )) - } - } -} -``` - -#### **6. 基本string関数実装** -```rust -// src/stdlib/builtin.rs拡張 -impl BuiltinStdlib { - fn register_string_functions(&mut self) { - // string.upper - self.register_function("string.upper", BuiltinFunction { - namespace: "nyashstd", - box_name: "string", - method_name: "upper", - implementation: |args| { - if args.len() != 1 { - return Err(RuntimeError::InvalidArguments( - "string.upper() takes exactly 1 argument".to_string() - )); - } - - let input = &args[0].to_string_box().value; - let result = StringBox::new(&input.to_uppercase()); - Ok(Box::new(result)) - }, - arg_count: Some(1), - description: "Convert string to uppercase", - }); - - // string.lower - self.register_function("string.lower", BuiltinFunction { - namespace: "nyashstd", - box_name: "string", - method_name: "lower", - implementation: |args| { - if args.len() != 1 { - return Err(RuntimeError::InvalidArguments( - "string.lower() takes exactly 1 argument".to_string() - )); - } - - let input = &args[0].to_string_box().value; - let result = StringBox::new(&input.to_lowercase()); - Ok(Box::new(result)) - }, - arg_count: Some(1), - description: "Convert string to lowercase", - }); - - // string.split - self.register_function("string.split", BuiltinFunction { - namespace: "nyashstd", - box_name: "string", - method_name: "split", - implementation: |args| { - if args.len() != 2 { - return Err(RuntimeError::InvalidArguments( - "string.split() takes exactly 2 arguments".to_string() - )); - } - - let string_box = StringBox::new(&args[0].to_string_box().value); - let separator = &args[1].to_string_box().value; - string_box.split(separator) - }, - arg_count: Some(2), - description: "Split string by separator", - }); - - // string.join - self.register_function("string.join", BuiltinFunction { - namespace: "nyashstd", - box_name: "string", - method_name: "join", - implementation: |args| { - if args.len() != 2 { - return Err(RuntimeError::InvalidArguments( - "string.join() takes exactly 2 arguments".to_string() - )); - } - - let array_arg = &args[0]; - let separator = &args[1].to_string_box().value; - let separator_box = StringBox::new(separator); - separator_box.join(array_arg.clone()) - }, - arg_count: Some(2), - description: "Join array elements with separator", - }); - } -} -``` - -#### **7. インタープリター統合** -```rust -// src/interpreter/expressions.rs -impl NyashInterpreter { - pub fn execute_expression(&mut self, node: &ASTNode) -> Result, RuntimeError> { - match node { - // using文処理 - ASTNode::UsingStatement { namespace_name, .. } => { - self.execute_using(namespace_name)?; - Ok(Box::new(VoidBox::new())) - } - - // メソッド呼び出し処理拡張 - ASTNode::MethodCall { object, method, args, .. } => { - // 組み込み関数チェック - if let ASTNode::Variable { name: box_name, .. } = object.as_ref() { - let path = vec![box_name.clone(), method.clone()]; - if let Some(qualified_name) = self.resolve_qualified_call(&path) { - let evaluated_args = self.evaluate_arguments(args)?; - return self.call_builtin_function(&qualified_name, evaluated_args); - } - } - - // 既存のメソッド呼び出し処理 - // ... - } - - // 既存の他のケース... - } - } -} -``` - -### 📝 Medium実装(来週) - -#### **8. math関数実装** -```rust -// math.sin, cos, sqrt, floor, random -``` - -#### **9. array関数実装** -```rust -// array.length, get, push, slice -``` - -#### **10. io関数実装** -```rust -// io.print, println, debug -``` - -## Phase 1: 拡張機能(2-3週間後) - -### 🌟 完全修飾名対応 -```nyash -# using不要でも使える -nyashstd.string.upper("hello") -nyashstd.math.sin(3.14) -``` - -#### **実装** -```rust -// ASTNode::QualifiedCall追加 -ASTNode::QualifiedCall { - path: Vec, // ["nyashstd", "string", "upper"] - args: Vec, - span: Span, -} - -// パーサーで "identifier.identifier.identifier()" 構文解析 -``` - -### 🔧 エラーハンドリング強化 -```rust -// より詳細なエラーメッセージ -RuntimeError::UndefinedBuiltinMethod { - namespace: String, - box_name: String, - method_name: String, - available_methods: Vec, // "Did you mean: ..." - span: Span, -} -``` - -### 📊 IDE補完サポート -```rust -// Language Server連携用API -impl BuiltinStdlib { - pub fn get_completion_candidates(&self, prefix: &str) -> Vec { - // "ny" -> ["nyashstd"] - // "nyashstd." -> ["string", "math", "array", "io"] - // "nyashstd.string." -> ["upper", "lower", "split", "join"] - } -} -``` - -## Phase 2: nyash.link準備(1ヶ月後) - -### 🔗 外部モジュール対応基盤 -```rust -// ModuleResolver拡張 -pub enum NamespaceSource { - Builtin(Arc), // 組み込み - External(PathBuf), // nyash.linkで管理 -} - -// NamespaceRegistry統合 -pub struct NamespaceRegistry { - builtin: Arc, - external: HashMap, -} -``` - -### 📁 nyash.link対応 -```toml -[dependencies] -mylib = { path = "./mylib.hako" } - -# using mylib # Phase 2で対応 -``` - -## 🧪 段階的テスト戦略 - -### Phase 0テスト -```nyash -# test_phase0_basic.hako -using nyashstd - -# 基本動作 -assert(string.upper("hello") == "HELLO") -assert(string.lower("WORLD") == "world") - -# エラー処理 -try { - using unknown_namespace -} catch e { - assert(e.contains("nyashstd")) -} -``` - -### Phase 1テスト -```nyash -# test_phase1_qualified.hako -# using不要のテスト -assert(nyashstd.string.upper("hello") == "HELLO") -assert(nyashstd.math.sin(0) == 0) -``` - -### Phase 2テスト -```nyash -# test_phase2_external.hako -using mylib - -assert(mylib.custom.process("data") == "processed: data") -``` - -## 📊 実装マイルストーン - -### ✅ Phase 0完了条件 -- [ ] USINGトークン認識 -- [ ] using nyashstd構文解析 -- [ ] 組み込みstring関数4種動作 -- [ ] 基本テスト全通過 -- [ ] エラーハンドリング適切 - -### ✅ Phase 1完了条件 -- [ ] 完全修飾名 nyashstd.string.upper() 動作 -- [ ] math/array/io関数実装 -- [ ] IDE補完候補API実装 -- [ ] 詳細エラーメッセージ - -### ✅ Phase 2完了条件 -- [ ] 外部モジュール基盤実装 -- [ ] nyash.link基本対応 -- [ ] 依存関係解決機能 -- [ ] 全機能統合テスト - -## 🔥 即座に開始すべき実装 - -### 今日やること -1. **src/stdlib/mod.rs作成** - モジュール基盤 -2. **TokenType::USING追加** - トークナイザー拡張 -3. **BuiltinStdlib::new()実装** - 空の基盤作成 - -### 今週やること -4. **using文パーサー実装** - 基本構文解析 -5. **string.upper()実装** - 最初の関数 -6. **基本テスト作成** - 動作確認 - -### 来週やること -7. **string関数完成** - lower, split, join -8. **math関数開始** - sin, cos, sqrt -9. **IDE補完設計** - Language Server準備 - ---- - -**🎯 この段階的戦略で、複雑なnyash.linkなしに即座に実用的なnamespace/usingシステムが実現できるにゃ!** - -**🚀 Phase 0実装を今すぐ開始して、Nyashをモダンなプログラミング言語に進化させよう!🐱✨** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/implementation-plan.md b/docs/development/proposals/nyash.link/implementation-plan.md deleted file mode 100644 index d78aff77..00000000 --- a/docs/development/proposals/nyash.link/implementation-plan.md +++ /dev/null @@ -1,471 +0,0 @@ -# nyash.linkシステム実装計画 - -## 🎯 実装戦略 - -### 📊 現状確認 -- ✅ **include**: 限定的使用(text_adventure例のみ)→廃止OK -- ✅ **using**: 未実装→完全新規作成 -- ✅ **namespace**: 設計完了→実装のみ -- ✅ **Gemini推奨**: 技術的妥当性確認済み - -## 📋 段階的実装ロードマップ - -### 🚀 **Phase 1: 基盤構築(1-2週間)** - -#### 1.1 トークナイザー拡張 -```rust -// src/tokenizer.rs -pub enum TokenType { - // 既存... - USING, // using キーワード - NAMESPACE, // namespace キーワード - AS, // as キーワード(将来のエイリアス用) -} - -// キーワード認識追加 -fn tokenize_identifier(input: &str) -> TokenType { - match input { - // 既存... - "using" => TokenType::USING, - "namespace" => TokenType::NAMESPACE, - "as" => TokenType::AS, - _ => TokenType::IDENTIFIER(input.to_string()), - } -} -``` - -#### 1.2 AST拡張 -```rust -// src/ast.rs -pub enum ASTNode { - // 既存... - UsingStatement { - module_path: Vec, // ["nyashstd"] or ["mylib"] - alias: Option, // using mylib as lib - span: Span, - }, - NamespaceDeclaration { - name: String, - body: Vec, - span: Span, - }, - QualifiedCall { - path: Vec, // ["nyashstd", "string", "upper"] - args: Vec, - span: Span, - }, -} -``` - -#### 1.3 パーサー基本実装 -```rust -// src/parser/statements.rs -impl NyashParser { - pub fn parse_using(&mut self) -> Result { - self.advance(); // consume 'using' - - let module_path = self.parse_module_path()?; - // using mylib → ["mylib"] - // using nyashstd.string → ["nyashstd", "string"] - - Ok(ASTNode::UsingStatement { - module_path, - alias: None, // Phase 1では未サポート - span: self.current_span(), - }) - } - - fn parse_module_path(&mut self) -> Result, ParseError> { - let mut path = vec![]; - - // 最初の識別子 - if let TokenType::IDENTIFIER(name) = &self.current_token().token_type { - path.push(name.clone()); - self.advance(); - } else { - return Err(ParseError::ExpectedIdentifier); - } - - // ドット区切りで追加パス(将来拡張) - // using nyashstd.string のような構文 - - Ok(path) - } -} -``` - -### ⚡ **Phase 2: nyash.link基盤(2-3週間)** - -#### 2.1 nyash.linkパーサー -```rust -// 新ファイル: src/link_file.rs -use serde::{Deserialize, Serialize}; -use std::collections::HashMap; - -#[derive(Debug, Deserialize, Serialize)] -pub struct NyashLink { - pub project: Option, - pub dependencies: HashMap, - pub search_paths: Option>, - pub build: Option, -} - -#[derive(Debug, Deserialize, Serialize)] -pub struct ProjectInfo { - pub name: String, - pub version: String, - pub description: Option, -} - -#[derive(Debug, Deserialize, Serialize)] -#[serde(untagged)] -pub enum Dependency { - Path { path: String }, - Stdlib { stdlib: bool }, - Registry { version: String, registry: String }, -} - -#[derive(Debug, Deserialize, Serialize)] -pub struct BuildConfig { - pub entry_point: Option, -} - -impl NyashLink { - pub fn from_file(path: &Path) -> Result { - let content = std::fs::read_to_string(path)?; - let link: NyashLink = toml::from_str(&content)?; - Ok(link) - } - - pub fn resolve_dependency(&self, name: &str) -> Option { - if let Some(dep) = self.dependencies.get(name) { - match dep { - Dependency::Path { path } => Some(PathBuf::from(path)), - Dependency::Stdlib { .. } => { - // 標準ライブラリパス解決ロジック - self.resolve_stdlib_path(name) - } - _ => None, // Phase 2では未サポート - } - } else { - None - } - } -} -``` - -#### 2.2 依存関係解決エンジン -```rust -// 新ファイル: src/module_resolver.rs -pub struct ModuleResolver { - nyash_link: NyashLink, - loaded_modules: HashMap>, - loading_stack: Vec, // 循環依存検出用 -} - -impl ModuleResolver { - pub fn new(link_path: &Path) -> Result { - let nyash_link = NyashLink::from_file(link_path)?; - Ok(ModuleResolver { - nyash_link, - loaded_modules: HashMap::new(), - loading_stack: Vec::new(), - }) - } - - pub fn resolve_using(&mut self, module_name: &str) -> Result, ResolverError> { - // 既にロード済みかチェック - if let Some(module) = self.loaded_modules.get(module_name) { - return Ok(module.clone()); - } - - // 循環依存チェック - if self.loading_stack.contains(&module_name.to_string()) { - return Err(ResolverError::CircularDependency( - self.loading_stack.clone() - )); - } - - // ファイルパス解決 - let file_path = self.hako_link.resolve_dependency(module_name) - .ok_or(ResolverError::ModuleNotFound(module_name.to_string()))?; - - // 再帰的読み込み防止 - self.loading_stack.push(module_name.to_string()); - - // ファイル読み込み・パース - let content = std::fs::read_to_string(&file_path)?; - let ast = NyashParser::parse_from_string(&content)?; - - // モジュール作成 - let module = Arc::new(ParsedModule { - name: module_name.to_string(), - file_path, - ast, - exports: self.extract_exports(&ast)?, - }); - - // キャッシュに保存 - self.loaded_modules.insert(module_name.to_string(), module.clone()); - self.loading_stack.pop(); - - Ok(module) - } -} -``` - -### 📈 **Phase 3: 名前空間システム(3-4週間)** - -#### 3.1 namespace解析 -```rust -impl NyashParser { - pub fn parse_namespace(&mut self) -> Result { - self.advance(); // consume 'namespace' - - let name = self.expect_identifier()?; - self.expect_token(TokenType::LBRACE)?; - - let mut body = vec![]; - while !self.check_token(&TokenType::RBRACE) { - body.push(self.parse_statement()?); - } - - self.expect_token(TokenType::RBRACE)?; - - Ok(ASTNode::NamespaceDeclaration { - name, - body, - span: self.current_span(), - }) - } -} -``` - -#### 3.2 名前空間レジストリ -```rust -// 新ファイル: src/namespace_registry.rs -pub struct NamespaceRegistry { - namespaces: HashMap, - using_imports: HashMap>, // ファイル別インポート -} - -pub struct Namespace { - pub name: String, - pub static_boxes: HashMap, -} - -pub struct StaticBox { - pub name: String, - pub static_methods: HashMap, -} - -impl NamespaceRegistry { - pub fn register_namespace(&mut self, name: String, namespace: Namespace) { - self.namespaces.insert(name, namespace); - } - - pub fn add_using_import(&mut self, file_id: String, namespace_name: String) { - self.using_imports - .entry(file_id) - .or_insert_with(Vec::new) - .push(namespace_name); - } - - pub fn resolve_call(&self, file_id: &str, path: &[String]) -> Option { - // 例: string.upper() → nyashstd.string.upper() - if path.len() == 2 { - let box_name = &path[0]; - let method_name = &path[1]; - - // usingでインポートされた名前空間を検索 - if let Some(imports) = self.using_imports.get(file_id) { - for namespace_name in imports { - if let Some(namespace) = self.namespaces.get(namespace_name) { - if let Some(static_box) = namespace.static_boxes.get(box_name) { - if let Some(method) = static_box.static_methods.get(method_name) { - return Some(method.clone()); - } - } - } - } - } - } - - None - } -} -``` - -### 🎯 **Phase 4: インタープリター統合(4-5週間)** - -#### 4.1 using文実行 -```rust -// src/interpreter/core.rs -impl NyashInterpreter { - pub fn execute_using(&mut self, module_path: &[String]) -> Result<(), RuntimeError> { - let module_name = module_path.join("."); - - // モジュール解決・読み込み - let module = self.module_resolver.resolve_using(&module_name)?; - - // 名前空間登録 - if let Some(namespace) = self.extract_namespace_from_module(&module) { - self.namespace_registry.register_namespace(module_name.clone(), namespace); - self.namespace_registry.add_using_import( - self.current_file_id.clone(), - module_name - ); - } - - Ok(()) - } - - fn extract_namespace_from_module(&self, module: &ParsedModule) -> Option { - // ASTからnamespace宣言を探して解析 - for node in &module.ast { - if let ASTNode::NamespaceDeclaration { name, body, .. } = node { - return Some(self.build_namespace_from_body(name, body)); - } - } - None - } -} -``` - -#### 4.2 qualified call実行 -```rust -impl NyashInterpreter { - pub fn execute_qualified_call(&mut self, path: &[String], args: &[ASTNode]) - -> Result, RuntimeError> { - - // 名前解決 - if let Some(method_sig) = self.namespace_registry.resolve_call( - &self.current_file_id, - path - ) { - // 引数評価 - let evaluated_args = self.evaluate_args(args)?; - - // メソッド実行(既存のBox呼び出しシステム活用) - return self.call_static_method(&method_sig, evaluated_args); - } - - // 完全修飾名として試行 - if path.len() >= 3 { - // nyashstd.string.upper() の場合 - let namespace_name = &path[0]; - let box_name = &path[1]; - let method_name = &path[2]; - - if let Some(namespace) = self.namespace_registry.namespaces.get(namespace_name) { - if let Some(static_box) = namespace.static_boxes.get(box_name) { - if let Some(method) = static_box.static_methods.get(method_name) { - let evaluated_args = self.evaluate_args(args)?; - return self.call_static_method(method, evaluated_args); - } - } - } - } - - Err(RuntimeError::UndefinedMethod(path.join("."))) - } -} -``` - -## 🧪 テスト戦略 - -### Phase 1テスト -```nyash -# test_basic_using.hako -# 基本using文テスト - -# ファイル: mylib.hako -static function hello() { - return "Hello from mylib!" -} - -# ファイル: main.hako -using mylib -local result = mylib.hello() -assert(result == "Hello from mylib!") -``` - -### Phase 2テスト -```nyash -# test_nyash_link.hako -# nyash.linkファイル連携テスト - -# nyash.link内容: -# [dependencies] -# mylib = { path = "./mylib.hako" } - -using mylib -local result = mylib.process("data") -assert(result == "processed: data") -``` - -### Phase 3テスト -```nyash -# test_namespace.hako -# 名前空間システムテスト - -# nyashstd.hako: -# namespace nyashstd { -# static box string { -# static upper(str) { ... } -# } -# } - -using nyashstd -local result = string.upper("hello") -assert(result == "HELLO") - -# 完全修飾名 -local result2 = nyashstd.string.upper("world") -assert(result2 == "WORLD") -``` - -## 📊 実装マイルストーン - -### ✅ 完了条件 - -#### Phase 1 -- [ ] USING/NAMESPACE トークン認識 -- [ ] using文AST構築 -- [ ] 基本パーサーテスト通過 - -#### Phase 2 -- [ ] nyash.linkファイル読み込み -- [ ] 依存関係解決 -- [ ] モジュールキャッシュ機能 - -#### Phase 3 -- [ ] namespace宣言解析 -- [ ] 名前空間レジストリ動作 -- [ ] 静的メソッド解決 - -#### Phase 4 -- [ ] インタープリター統合 -- [ ] qualified call実行 -- [ ] 全テストケース通過 - -## 🔮 将来拡張 - -### Phase 5: 高度機能 -- エイリアス(`using mylib as lib`) -- 選択インポート(`using nyashstd.string`) -- 動的モジュール読み込み - -### Phase 6: 標準ライブラリ -- nyashstd.hako完全実装 -- string/math/io/http モジュール -- ドキュメント生成 - -### Phase 7: エコシステム -- パッケージレジストリ設計 -- CLI ツール(nyash init/install) -- IDE Language Server連携 - ---- - -**🎯 この実装計画でnyash.linkシステムを段階的に完成させるにゃ!** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/master-architecture.md b/docs/development/proposals/nyash.link/master-architecture.md deleted file mode 100644 index 1bfceece..00000000 --- a/docs/development/proposals/nyash.link/master-architecture.md +++ /dev/null @@ -1,372 +0,0 @@ -# なんでもAPI計画:最終統合アーキテクチャ - -## 🌟 革命的ビジョンの実現 - -### 📊 統合設計完了状況 -- ✅ **nyash.link基盤**: 依存関係管理システム設計完了 -- ✅ **FFI-ABI統合**: BID×MIR×バックエンド統合設計完了 -- ✅ **usingシステム**: 3種類API統一インポート設計完了 -- ✅ **実世界例**: ゲーム・データサイエンス・Web・システムプログラミング実証 -- 🎯 **最終統合**: 全システム統合による革命的開発体験実現 - -### 🚀 完成後の開発体験 -```nyash -# === たった一つの構文ですべてが使える === -using nyashstd # 組み込み標準ライブラリ -using browser_api # ブラウザAPI(Canvas, DOM, WebAudio...) -using system_api # システムAPI(libc, filesystem, network...) -using ml_api # 機械学習(TensorFlow, PyTorch, OpenCV...) -using game_api # ゲーム開発(SDL, OpenGL, Vulkan...) -using mylib # 自作Nyashモジュール - -# 全部同じ記法・同じパフォーマンス・同じエラーハンドリング! -string.upper("hello") # 組み込み標準 -browser.canvas.fillRect("game", 10, 10, 100, 100, "red") # ブラウザAPI -system.file.read("/etc/passwd") # システムAPI -ml.opencv.loadImage("photo.jpg") # 機械学習API -game.sdl.createWindow("Game", 800, 600) # ゲームAPI -mylib.processData("input") # 自作モジュール -``` - -## 🏗️ 最終統合アーキテクチャ - -### 1. 全体システム構成 -``` -┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ -│ Nyash Code │ │ nyash.link │ │ BID Files │ -│ │ │ │ │ │ -│ using browser_api│ │ [dependencies] │ │ browser_api: │ -│ using system_api │───▶│ browser_api = │───▶│ canvas.yaml │ -│ using mylib │ │ {bid=...} │ │ dom.yaml │ -│ canvas.fillRect │ │ system_api = │ │ system_api: │ -│ file.read │ │ {bid=...} │ │ libc.yaml │ -│ mylib.process │ │ mylib = {path} │ │ filesystem.yaml│ -└─────────────────┘ └─────────────────┘ └─────────────────┘ - │ │ │ - └────────────────────────┼────────────────────────┘ - ▼ - ┌─────────────────────────────────────────────────────────┐ - │ UniversalNamespaceRegistry │ - │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ - │ │BuiltinStdlib│ │BidDefinition│ │ExternalModules │ │ - │ │ │ │ │ │ │ │ - │ │nyashstd.* │ │browser_api.*│ │mylib.* │ │ - │ │string.upper │ │canvas.fill* │ │custom functions │ │ - │ │math.sin │ │dom.events │ │ │ │ - │ │array.length │ │system.file* │ │ │ │ - │ └─────────────┘ └─────────────┘ └─────────────────┘ │ - └─────────────────────────────────────────────────────────┘ - │ - ▼ - ┌─────────────────────────────────────────────────────────┐ - │ MIR Generation │ - │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ - │ │BuiltinCall │ │ExternCall │ │ModuleCall │ │ - │ │ │ │ │ │ │ │ - │ │string.upper │ │canvas.fill* │ │mylib.process │ │ - │ │effect:pure │ │effect:io │ │effect:io │ │ - │ │optimize:yes │ │gpu_accel:yes│ │ │ │ - │ └─────────────┘ └─────────────┘ └─────────────────┘ │ - └─────────────────────────────────────────────────────────┘ - │ - ▼ - ┌─────────────────────────────────────────────────────────┐ - │ Backend Execution │ - │ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │ - │ │ VM │ │ WASM │ │ AOT │ │ - │ │ │ │ │ │ │ │ - │ │Native Impl │ │RuntimeImport│ │LLVM ExternFunc │ │ - │ │Stub Calls │ │Auto-generated│ │Native Libraries │ │ - │ │ │ │from BID │ │ │ │ - │ └─────────────┘ └─────────────┘ └─────────────────┘ │ - └─────────────────────────────────────────────────────────┘ -``` - -### 2. nyash.link統合仕様(最終版) -```toml -# nyash.link - 全API統一管理設定 -[project] -name = "ultimate-nyash-app" -version = "2.0.0" -description = "Everything is accessible through unified APIs" -license = "MIT" - -[dependencies] -# === 組み込み標準ライブラリ === -nyashstd = { builtin = true } - -# === ブラウザ・Web API === -browser_api = { - bid = ["./apis/canvas.yaml", "./apis/dom.yaml", "./apis/webaudio.yaml"], - target_environments = ["browser"] -} -webgl_api = { - bid = "./apis/webgl.yaml", - target_environments = ["browser"] -} - -# === システム・OS API === -system_api = { - bid = ["./apis/libc.yaml", "./apis/filesystem.yaml", "./apis/network.yaml"], - library = "system", - target_environments = ["linux", "macos", "windows"] -} -posix_api = { - bid = "./apis/posix.yaml", - library = "system", - target_environments = ["linux", "macos"] -} - -# === 機械学習・データサイエンス === -ml_api = { - bid = ["./apis/opencv.yaml", "./apis/numpy.yaml"], - library = ["./libs/opencv.so", "./libs/numpy.so"], - target_environments = ["linux", "macos"] -} -tensorflow_api = { - bid = "./apis/tensorflow.yaml", - library = "./libs/tensorflow.so", - optional = true # 環境によってオプション -} - -# === ゲーム開発 === -game_api = { - bid = ["./apis/sdl.yaml", "./apis/opengl.yaml"], - library = ["SDL2", "OpenGL"], - target_environments = ["linux", "macos", "windows"] -} - -# === データベース === -database_api = { - bid = ["./apis/sqlite.yaml", "./apis/postgresql.yaml"], - library = ["sqlite3", "pq"], -} - -# === ネットワーク・Web === -http_api = { - bid = "./apis/http_client.yaml", - library = "curl" -} - -# === Nyashモジュール(従来通り) === -mylib = { path = "./src/mylib.hako" } -utils = { path = "./src/utils/" } -models = { path = "./src/models.hako" } - -# === 将来の外部パッケージ === -awesome_lib = { - version = "^1.2.0", - registry = "nyash-pkg", - bid = "auto" # パッケージレジストリから自動取得 -} - -[build] -entry_point = "./src/main.hako" -backends = ["vm", "wasm", "aot"] -optimization_level = "release" - -[targets] -browser = ["browser_api", "webgl_api"] -desktop = ["system_api", "game_api", "ml_api"] -server = ["system_api", "database_api", "http_api"] - -[optimization] -# MIRレベル最適化設定 -enable_effect_optimization = true -enable_batch_optimization = true # FFI-ABI呼び出しバッチ化 -enable_gpu_acceleration = true -cache_bid_compilation = true -``` - -### 3. BIDエコシステム(標準API集) -``` -nyash-std-apis/ # 標準APIライブラリ -├── browser/ -│ ├── canvas.yaml # Canvas API -│ ├── dom.yaml # DOM API -│ ├── webaudio.yaml # Web Audio API -│ ├── webgl.yaml # WebGL API -│ └── fetch.yaml # Fetch API -├── system/ -│ ├── libc.yaml # C標準ライブラリ -│ ├── filesystem.yaml # ファイルシステム -│ ├── network.yaml # ネットワーク -│ ├── process.yaml # プロセス管理 -│ └── threads.yaml # スレッド・並行処理 -├── ml/ -│ ├── opencv.yaml # コンピューターヴィジョン -│ ├── numpy.yaml # 数値計算 -│ ├── tensorflow.yaml # 機械学習 -│ └── pytorch.yaml # 深層学習 -├── game/ -│ ├── sdl.yaml # SDL2ライブラリ -│ ├── opengl.yaml # OpenGL API -│ ├── vulkan.yaml # Vulkan API -│ └── physics.yaml # 物理エンジン -├── database/ -│ ├── sqlite.yaml # SQLite -│ ├── postgresql.yaml # PostgreSQL -│ ├── mysql.yaml # MySQL -│ └── redis.yaml # Redis -└── crypto/ - ├── openssl.yaml # OpenSSL - ├── libsodium.yaml # libsodium - └── bcrypt.yaml # bcrypt -``` - -## 🚀 段階的実装戦略(現実的ロードマップ) - -### Phase 0: 基盤構築(2-3週間) -```rust -// 🎯 最小実装目標 -// using nyashstd → 動作 -``` - -#### **実装内容** -1. **USINGトークナイザー** - `TokenType::USING`追加 -2. **基本パーサー** - `using nyashstd`構文解析 -3. **BuiltinStdlib基盤** - 組み込み標準ライブラリ -4. **基本string関数** - upper, lower, split, join - -#### **テスト** -```nyash -using nyashstd -assert(string.upper("hello") == "HELLO") -``` - -### Phase 1: BID基盤(4-6週間) -```rust -// 🎯 外部API基盤目標 -// using console_api → 動作(VM Stub) -``` - -#### **実装内容** -1. **BID読み込み** - YAML解析・検証システム -2. **UniversalNamespaceRegistry** - 統合名前空間管理 -3. **MIR ExternCall統合** - BID→MIR変換 -4. **VM Stub実装** - console.log等の基本スタブ - -#### **テスト** -```nyash -using nyashstd -using console_api -string.upper("test") -console.log("BID integration works!") -``` - -### Phase 2: WASM統合(6-8週間) -```rust -// 🎯 WASM動作目標 -// ブラウザでCanvas API動作 -``` - -#### **実装内容** -1. **WASM RuntimeImports自動生成** - BID→WASM import -2. **文字列マーシャリング** - UTF-8 (ptr,len)対応 -3. **Canvas API完全実装** - fillRect, fillText等 -4. **ブラウザテスト環境** - HTML/JS統合 - -#### **テスト** -```nyash -using browser_api -canvas.fillRect("game-canvas", 10, 10, 100, 100, "red") -``` - -### Phase 3: システムAPI統合(8-12週間) -```rust -// 🎯 ネイティブライブラリ動作目標 -// ファイルI/O, システムコール等 -``` - -#### **実装内容** -1. **AOTバックエンド統合** - LLVM IR外部関数 -2. **システムライブラリ連携** - libc, filesystem等 -3. **エラーハンドリング統合** - 統一エラーモデル -4. **パフォーマンス最適化** - バッチ処理・GPU加速 - -#### **テスト** -```nyash -using system_api -local content = file.read("/etc/passwd") -file.write("./output.txt", content) -``` - -### Phase 4: 完全エコシステム(12-16週間) -```rust -// 🎯 実用的アプリケーション開発 -// ゲーム・ML・Webアプリ等 -``` - -#### **実装内容** -1. **標準APIライブラリ** - nyash-std-apis完成 -2. **パッケージレジストリ** - BID共有システム -3. **IDE Language Server** - 統合補完・エラー検出 -4. **最適化エンジン** - Effect System活用 - -#### **実用例** -```nyash -# 本格的なゲーム開発 -using game_api -using audio_api -game.sdl.createWindow("My Game", 1024, 768) -audio.mixer.playMusic("bgm.ogg") -``` - -## 📊 既存実装との整合性 - -### Phase 9.75eとの関係 -``` -Phase 9.75e (既存計画) なんでもAPI計画 (新設計) - ↓ ↓ -namespace構文 using統一構文 -依存関係システム → nyash.link統合管理 -外部ファイル読み込み → BID統合システム - ↓ - 完全統合アーキテクチャ -``` - -### 既存MIR/バックエンドとの統合 -- ✅ **MIR ExternCall**: 既存実装活用 -- ✅ **WASM RuntimeImports**: 既存基盤拡張 -- ✅ **VM Backend**: 既存スタブシステム活用 -- 🔧 **統合課題**: usingシステムとの橋渡し - -## 🌟 長期ビジョン:Nyashの未来 - -### 2025年目標 -- **Phase 0-1完了**: 基盤・BID統合 -- **実用アプリ**: シンプルなブラウザゲーム・ツール -- **コミュニティ**: 開発者コミュニティ形成 - -### 2026年目標 -- **Phase 2-3完了**: WASM・システムAPI統合 -- **本格アプリ**: ゲーム・データサイエンス・Webアプリ -- **エコシステム**: BIDライブラリエコシステム - -### 2027年目標 -- **Phase 4完了**: 完全エコシステム -- **産業利用**: 企業での実用的活用 -- **言語標準化**: BID標準の業界採用 - -## 🎯 即座に開始すべき実装 - -### 今日のアクション -1. **src/stdlib/mod.rs作成** - 組み込み標準ライブラリ基盤 -2. **TokenType::USING追加** - トークナイザー拡張 -3. **Phase 0実装開始** - using nyashstd基本動作 - -### 今週のアクション -4. **BuiltinStdlib::new()実装** - string関数4種 -5. **基本テスト作成** - using動作確認 -6. **Phase 1設計** - BID統合詳細設計 - -### 来週のアクション -7. **BID読み込み基盤** - YAML解析システム -8. **UniversalNamespaceRegistry** - 統合名前空間管理 -9. **console.log実装** - 最初のBID統合テスト - ---- - -**🎉 この最終統合アーキテクチャにより、Nyashが真に「なんでもできる」革命的プログラミング言語になるにゃ!** - -**🚀 今すぐPhase 0実装を開始して、プログラミング言語の未来を創造しよう!🐱✨** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/minimal-stdlib-first.md b/docs/development/proposals/nyash.link/minimal-stdlib-first.md deleted file mode 100644 index f1551bf5..00000000 --- a/docs/development/proposals/nyash.link/minimal-stdlib-first.md +++ /dev/null @@ -1,435 +0,0 @@ -# 最小実装:標準関数優先namespace/usingシステム - -## 🎯 基本戦略:nyash.link前の段階的実装 - -### 📊 現状分析 -- **既存Box型**: 25種類以上の豊富なBox実装 -- **include使用**: 限定的(text_adventure例のみ) -- **using実装**: 完全未実装→新規作成可能 -- **最優先課題**: 複雑なファイル依存関係システムより、まず標準関数のIDE補完 - -### 🌟 段階的実装アプローチ - -#### **Phase 0: 組み込みnyashstd(最小実装)** -``` -ファイル読み込み一切なし → インタープリターに直接組み込み -``` - -#### **Phase 1: using構文** -```nyash -using nyashstd -string.upper("hello") # ✅ 動作 -``` - -#### **Phase 2: 将来のnyash.link対応** -``` -外部ファイル・依存関係システム(後日実装) -``` - -## 🏗️ 組み込みnyashstd設計 - -### 優先順位別Box分類 - -#### 🚨 **Tier 1: 最優先基本機能** -```rust -// 使用頻度最高・IDE補完必須 -- string_box.rs → nyashstd.string.* -- math_box.rs → nyashstd.math.* -- array/mod.rs → nyashstd.array.* -- console_box.rs → nyashstd.io.* -``` - -#### ⚡ **Tier 2: 重要機能** -```rust -// 標準的な機能 -- time_box.rs → nyashstd.time.* -- random_box.rs → nyashstd.random.* -- map_box.rs → nyashstd.map.* -``` - -#### 📝 **Tier 3: 特殊用途** -```rust -// 特定用途・後で追加 -- debug_box.rs → nyashstd.debug.* -- http_server_box.rs → nyashstd.http.* -- p2p_box.rs → nyashstd.p2p.* -``` - -### 最小実装スコープ(Phase 0) - -#### **nyashstd.string機能** -```nyash -using nyashstd - -string.upper("hello") # "HELLO" -string.lower("WORLD") # "world" -string.split("a,b,c", ",") # ["a", "b", "c"] -string.join(["a","b"], "-") # "a-b" -string.length("test") # 4 -``` - -#### **nyashstd.math機能** -```nyash -using nyashstd - -math.sin(3.14159) # 0.0 (approximately) -math.cos(0) # 1.0 -math.sqrt(16) # 4.0 -math.floor(3.7) # 3 -math.random() # 0.0-1.0のランダム値 -``` - -#### **nyashstd.array機能** -```nyash -using nyashstd - -array.length([1,2,3]) # 3 -array.push([1,2], 3) # [1,2,3] -array.get([1,2,3], 1) # 2 -array.slice([1,2,3,4], 1, 3) # [2,3] -``` - -#### **nyashstd.io機能** -```nyash -using nyashstd - -io.print("Hello") # コンソール出力 -io.println("World") # 改行付き出力 -io.debug("Debug info") # デバッグ出力 -``` - -## 💻 技術実装戦略 - -### 1. インタープリター組み込み方式 - -#### **新ファイル: `src/stdlib/mod.rs`** -```rust -//! 組み込み標準ライブラリ -//! nyash.linkなしで動作する基本的な標準関数群 - -use crate::boxes::*; -use std::collections::HashMap; - -pub struct BuiltinStdlib { - pub namespaces: HashMap, -} - -pub struct BuiltinNamespace { - pub name: String, - pub static_boxes: HashMap, -} - -pub struct BuiltinStaticBox { - pub name: String, - pub methods: HashMap, -} - -pub type BuiltinMethod = fn(&[Box]) -> Result, RuntimeError>; - -impl BuiltinStdlib { - pub fn new() -> Self { - let mut stdlib = BuiltinStdlib { - namespaces: HashMap::new(), - }; - - // nyashstd名前空間登録 - stdlib.register_nyashstd(); - - stdlib - } - - fn register_nyashstd(&mut self) { - let mut nyashstd = BuiltinNamespace { - name: "nyashstd".to_string(), - static_boxes: HashMap::new(), - }; - - // string static box - nyashstd.static_boxes.insert("string".to_string(), self.create_string_box()); - // math static box - nyashstd.static_boxes.insert("math".to_string(), self.create_math_box()); - // array static box - nyashstd.static_boxes.insert("array".to_string(), self.create_array_box()); - // io static box - nyashstd.static_boxes.insert("io".to_string(), self.create_io_box()); - - self.namespaces.insert("nyashstd".to_string(), nyashstd); - } -} -``` - -#### **文字列関数実装例** -```rust -impl BuiltinStdlib { - fn create_string_box(&self) -> BuiltinStaticBox { - let mut string_box = BuiltinStaticBox { - name: "string".to_string(), - methods: HashMap::new(), - }; - - // string.upper(str) -> String - string_box.methods.insert("upper".to_string(), |args| { - if args.len() != 1 { - return Err(RuntimeError::InvalidArguments( - "string.upper() takes exactly 1 argument".to_string() - )); - } - - let string_arg = args[0].to_string_box(); - let result = StringBox::new(&string_arg.value.to_uppercase()); - Ok(Box::new(result)) - }); - - // string.lower(str) -> String - string_box.methods.insert("lower".to_string(), |args| { - if args.len() != 1 { - return Err(RuntimeError::InvalidArguments( - "string.lower() takes exactly 1 argument".to_string() - )); - } - - let string_arg = args[0].to_string_box(); - let result = StringBox::new(&string_arg.value.to_lowercase()); - Ok(Box::new(result)) - }); - - // string.split(str, separator) -> Array - string_box.methods.insert("split".to_string(), |args| { - if args.len() != 2 { - return Err(RuntimeError::InvalidArguments( - "string.split() takes exactly 2 arguments".to_string() - )); - } - - let string_arg = args[0].to_string_box(); - let sep_arg = args[1].to_string_box(); - - let string_box = StringBox::new(&string_arg.value); - let result = string_box.split(&sep_arg.value)?; - Ok(result) - }); - - string_box - } -} -``` - -### 2. インタープリター統合 - -#### **インタープリター拡張: `src/interpreter/core.rs`** -```rust -use crate::stdlib::BuiltinStdlib; - -pub struct NyashInterpreter { - // 既存フィールド... - pub builtin_stdlib: BuiltinStdlib, - pub using_imports: HashMap>, // ファイル別インポート -} - -impl NyashInterpreter { - pub fn new() -> Self { - NyashInterpreter { - // 既存初期化... - builtin_stdlib: BuiltinStdlib::new(), - using_imports: HashMap::new(), - } - } - - // using文実行 - pub fn execute_using(&mut self, namespace_name: &str) -> Result<(), RuntimeError> { - // 組み込み名前空間かチェック - if self.builtin_stdlib.namespaces.contains_key(namespace_name) { - // 現在ファイルのインポートリストに追加 - self.using_imports - .entry(self.current_file_id.clone()) - .or_insert_with(Vec::new) - .push(namespace_name.to_string()); - - Ok(()) - } else { - Err(RuntimeError::UndefinedNamespace(namespace_name.to_string())) - } - } - - // 短縮名解決: string.upper() -> nyashstd.string.upper() - pub fn resolve_short_call(&self, box_name: &str, method_name: &str) - -> Option<(&str, &str, &str)> { // (namespace, box, method) - - if let Some(imports) = self.using_imports.get(&self.current_file_id) { - for namespace_name in imports { - if let Some(namespace) = self.builtin_stdlib.namespaces.get(namespace_name) { - if namespace.static_boxes.contains_key(box_name) { - return Some((namespace_name, box_name, method_name)); - } - } - } - } - - None - } - - // 組み込み関数呼び出し - pub fn call_builtin_method(&self, namespace: &str, box_name: &str, method_name: &str, args: Vec>) - -> Result, RuntimeError> { - - if let Some(ns) = self.builtin_stdlib.namespaces.get(namespace) { - if let Some(static_box) = ns.static_boxes.get(box_name) { - if let Some(method) = static_box.methods.get(method_name) { - return method(&args); - } - } - } - - Err(RuntimeError::UndefinedMethod( - format!("{}.{}.{}", namespace, box_name, method_name) - )) - } -} -``` - -### 3. パーサー最小拡張 - -#### **トークナイザー: `src/tokenizer.rs`** -```rust -pub enum TokenType { - // 既存... - USING, // using キーワード - // NAMESPACE は後のPhaseで追加 -} -``` - -#### **AST最小拡張: `src/ast.rs`** -```rust -pub enum ASTNode { - // 既存... - UsingStatement { - namespace_name: String, // "nyashstd" のみ対応 - span: Span, - }, - // QualifiedCall は後のPhaseで追加 -} -``` - -#### **パーサー: `src/parser/statements.rs`** -```rust -impl NyashParser { - pub fn parse_using(&mut self) -> Result { - self.advance(); // consume 'using' - - if let TokenType::IDENTIFIER(namespace_name) = &self.current_token().token_type { - let name = namespace_name.clone(); - self.advance(); - - // Phase 0では "nyashstd" のみ許可 - if name != "nyashstd" { - return Err(ParseError::UnsupportedNamespace(name)); - } - - Ok(ASTNode::UsingStatement { - namespace_name: name, - span: self.current_span(), - }) - } else { - Err(ParseError::ExpectedIdentifier) - } - } -} -``` - -## 🧪 テスト戦略 - -### Phase 0テストケース - -#### **基本using文テスト** -```nyash -# test_using_basic.hako -using nyashstd - -local result = string.upper("hello") -assert(result == "HELLO") - -local lower = string.lower("WORLD") -assert(lower == "world") -``` - -#### **数学関数テスト** -```nyash -# test_math_basic.hako -using nyashstd - -local sin_result = math.sin(0) -assert(sin_result == 0) - -local sqrt_result = math.sqrt(16) -assert(sqrt_result == 4) -``` - -#### **配列操作テスト** -```nyash -# test_array_basic.hako -using nyashstd - -local arr = [1, 2, 3] -local length = array.length(arr) -assert(length == 3) - -local item = array.get(arr, 1) -assert(item == 2) -``` - -## 📊 実装マイルストーン - -### ✅ Phase 0完了条件 -- [ ] USING トークン認識 -- [ ] using nyashstd 構文解析 -- [ ] 組み込みnyashstd.string実装 -- [ ] 組み込みnyashstd.math実装 -- [ ] 組み込みnyashstd.array実装 -- [ ] 組み込みnyashstd.io実装 -- [ ] 基本テストケース全通過 - -### 🔮 将来の発展 - -#### **Phase 1: 完全修飾名対応** -```nyash -# using不要でも使える -nyashstd.string.upper("hello") -``` - -#### **Phase 2: namespace構文対応** -```nyash -# 組み込み以外の名前空間 -namespace mylib { - static box utils { - static process(data) { ... } - } -} -``` - -#### **Phase 3: nyash.link統合** -```toml -# nyash.link -[dependencies] -mylib = { path = "./mylib.hako" } -``` - -## 🎯 実装優先順位 - -### 🚨 Critical(今すぐ) -1. **USINGトークナイザー** - Token::USING追加 -2. **using文パーサー** - "using nyashstd"解析 -3. **BuiltinStdlib基盤** - src/stdlib/mod.rs作成 - -### ⚡ High(今週中) -4. **string関数実装** - upper, lower, split, join -5. **math関数実装** - sin, cos, sqrt, floor -6. **基本テスト** - using nyashstd動作確認 - -### 📝 Medium(来週) -7. **array関数実装** - length, get, push, slice -8. **io関数実装** - print, println, debug -9. **エラーハンドリング** - 適切なエラーメッセージ - ---- - -**🎉 この戦略なら複雑なファイル依存関係システムなしで、すぐに実用的なnamespace/usingが実現できるにゃ!🐱** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/real-world-examples.md b/docs/development/proposals/nyash.link/real-world-examples.md deleted file mode 100644 index c781bec7..00000000 --- a/docs/development/proposals/nyash.link/real-world-examples.md +++ /dev/null @@ -1,625 +0,0 @@ -# なんでもAPI計画:実世界での具体例 - -## 🌟 革命的開発体験の実例 - -### 🎮 ゲーム開発例:Nyashブラウザゲーム -```nyash -# === nyash.link === -[dependencies] -nyashstd = { builtin = true } -canvas_api = { bid = "./apis/canvas.yaml" } -dom_api = { bid = "./apis/dom.yaml" } -audio_api = { bid = "./apis/webaudio.yaml" } - -# === game.hako === -using nyashstd -using canvas_api -using dom_api -using audio_api - -static box Game { - init { canvas_id, score, player_x, player_y, enemies } - - main() { - me.canvas_id = "game-canvas" - me.score = 0 - me.player_x = 200 - me.player_y = 300 - me.enemies = new ArrayBox() - - # DOMイベント設定(FFI-ABI経由) - dom.addEventListener("keydown", me.handleKeyDown) - - # ゲームループ開始 - me.gameLoop() - } - - gameLoop() { - loop(true) { - me.update() - me.render() - - # ブラウザのrequestAnimationFrame(FFI-ABI) - dom.requestAnimationFrame(me.gameLoop) - } - } - - update() { - # 敵の移動(組み込み標準ライブラリ) - local i = 0 - loop(i < array.length(me.enemies)) { - local enemy = array.get(me.enemies, i) - enemy.y = enemy.y + enemy.speed - i = i + 1 - } - - # 当たり判定(組み込み数学関数) - local distance = math.sqrt( - math.pow(me.player_x - enemy.x, 2) + - math.pow(me.player_y - enemy.y, 2) - ) - - if distance < 30 { - me.gameOver() - } - } - - render() { - # 画面クリア(Canvas API - FFI-ABI) - canvas.fillRect(me.canvas_id, 0, 0, 800, 600, "black") - - # プレイヤー描画 - canvas.fillRect(me.canvas_id, me.player_x, me.player_y, 20, 20, "blue") - - # 敵描画 - local i = 0 - loop(i < array.length(me.enemies)) { - local enemy = array.get(me.enemies, i) - canvas.fillRect(me.canvas_id, enemy.x, enemy.y, 15, 15, "red") - i = i + 1 - } - - # スコア表示 - local score_text = "Score: " + string.toString(me.score) - canvas.fillText(me.canvas_id, score_text, 10, 30, "20px Arial", "white") - } - - handleKeyDown(event) { - # キーボード入力処理(DOM API経由) - local key = dom.getEventKey(event) - - if key == "ArrowLeft" { - me.player_x = me.player_x - 10 - } else if key == "ArrowRight" { - me.player_x = me.player_x + 10 - } else if key == " " { # スペースキー - me.shoot() - } - } - - shoot() { - # 効果音再生(Web Audio API - FFI-ABI) - audio.playSound("shoot.wav") - - # 弾の生成・発射処理 - # ... - } - - gameOver() { - # ゲームオーバー処理 - audio.playSound("gameover.wav") - dom.alert("Game Over! Score: " + string.toString(me.score)) - } -} -``` - -### 🔬 データサイエンス例:画像処理アプリ -```nyash -# === nyash.link === -[dependencies] -nyashstd = { builtin = true } -opencv_api = { bid = "./apis/opencv.yaml", library = "./libs/opencv.so" } -numpy_api = { bid = "./apis/numpy.yaml", library = "./libs/numpy.so" } -matplotlib_api = { bid = "./apis/matplotlib.yaml", library = "./libs/matplotlib.so" } -file_api = { bid = "./apis/file.yaml" } - -# === image_processor.hako === -using nyashstd -using opencv_api -using numpy_api -using matplotlib_api -using file_api - -static box ImageProcessor { - init { input_path, output_path, processed_data } - - main() { - me.input_path = "./images/input.jpg" - me.output_path = "./images/output.jpg" - - # 画像読み込み(OpenCV - FFI-ABI) - local image = opencv.imread(me.input_path) - - # 前処理 - local gray = opencv.cvtColor(image, "BGR2GRAY") - local blurred = opencv.gaussianBlur(gray, 5, 5) - - # エッジ検出 - local edges = opencv.canny(blurred, 50, 150) - - # NumPy配列操作(NumPy - FFI-ABI) - local edge_array = numpy.fromOpenCV(edges) - local normalized = numpy.normalize(edge_array, 0, 255) - - # 統計計算(組み込み標準ライブラリ) - local edge_count = me.countEdgePixels(normalized) - local percentage = (edge_count * 100) / (image.width * image.height) - - # 結果表示 - io.println("Edge pixels: " + string.toString(edge_count)) - io.println("Edge percentage: " + string.toString(percentage) + "%") - - # 結果画像保存(OpenCV) - opencv.imwrite(me.output_path, edges) - - # グラフ生成(Matplotlib - FFI-ABI) - me.generateHistogram(normalized) - } - - countEdgePixels(image_array) { - local count = 0 - local height = numpy.shape(image_array, 0) - local width = numpy.shape(image_array, 1) - - local y = 0 - loop(y < height) { - local x = 0 - loop(x < width) { - local pixel = numpy.get(image_array, y, x) - if pixel > 0 { - count = count + 1 - } - x = x + 1 - } - y = y + 1 - } - - return count - } - - generateHistogram(image_array) { - # ヒストグラム計算(NumPy) - local histogram = numpy.histogram(image_array, 256) - - # グラフ描画(Matplotlib) - matplotlib.figure(800, 600) - matplotlib.plot(histogram.bins, histogram.values) - matplotlib.title("Edge Pixel Histogram") - matplotlib.xlabel("Pixel Intensity") - matplotlib.ylabel("Frequency") - matplotlib.savefig("./images/histogram.png") - matplotlib.show() - } -} -``` - -### 🌐 Webサーバー例:RESTful API -```nyash -# === nyash.link === -[dependencies] -nyashstd = { builtin = true } -http_server_api = { bid = "./apis/http_server.yaml" } -sqlite_api = { bid = "./apis/sqlite.yaml", library = "./libs/sqlite.so" } -json_api = { bid = "./apis/json.yaml" } -crypto_api = { bid = "./apis/crypto.yaml", library = "./libs/openssl.so" } - -# === api_server.hako === -using nyashstd -using http_server_api -using sqlite_api -using json_api -using crypto_api - -static box ApiServer { - init { server, database, port } - - main() { - me.port = 8080 - me.server = http_server.create() - me.database = sqlite.open("./data/app.db") - - # データベース初期化 - me.initDatabase() - - # ルート設定 - http_server.route(me.server, "GET", "/api/users", me.getUsers) - http_server.route(me.server, "POST", "/api/users", me.createUser) - http_server.route(me.server, "PUT", "/api/users/:id", me.updateUser) - http_server.route(me.server, "DELETE", "/api/users/:id", me.deleteUser) - - # サーバー開始 - io.println("Server starting on port " + string.toString(me.port)) - http_server.listen(me.server, me.port) - } - - initDatabase() { - local sql = "CREATE TABLE IF NOT EXISTS users ( - id INTEGER PRIMARY KEY AUTOINCREMENT, - name TEXT NOT NULL, - email TEXT UNIQUE NOT NULL, - password_hash TEXT NOT NULL, - created_at DATETIME DEFAULT CURRENT_TIMESTAMP - )" - - sqlite.exec(me.database, sql) - } - - getUsers(request, response) { - # クエリ実行(SQLite - FFI-ABI) - local sql = "SELECT id, name, email, created_at FROM users" - local results = sqlite.query(me.database, sql) - - # JSON変換(JSON API - FFI-ABI) - local json_response = json.stringify(results) - - # レスポンス送信(HTTP Server API) - http_server.setHeader(response, "Content-Type", "application/json") - http_server.setStatus(response, 200) - http_server.send(response, json_response) - } - - createUser(request, response) { - # リクエストボディ解析 - local body = http_server.getBody(request) - local user_data = json.parse(body) - - # バリデーション(組み込み標準ライブラリ) - if string.length(user_data.name) < 2 { - me.sendError(response, 400, "Name must be at least 2 characters") - return - } - - if not me.isValidEmail(user_data.email) { - me.sendError(response, 400, "Invalid email format") - return - } - - # パスワードハッシュ化(Crypto API - FFI-ABI) - local password_hash = crypto.hashPassword(user_data.password) - - # データベース挿入 - local sql = "INSERT INTO users (name, email, password_hash) VALUES (?, ?, ?)" - local params = [user_data.name, user_data.email, password_hash] - - try { - local user_id = sqlite.insert(me.database, sql, params) - - # 作成されたユーザー情報を返す - local created_user = map.create() - map.set(created_user, "id", user_id) - map.set(created_user, "name", user_data.name) - map.set(created_user, "email", user_data.email) - - local json_response = json.stringify(created_user) - - http_server.setHeader(response, "Content-Type", "application/json") - http_server.setStatus(response, 201) - http_server.send(response, json_response) - - } catch error { - io.println("Database error: " + error.message) - me.sendError(response, 500, "Failed to create user") - } - } - - isValidEmail(email) { - # 簡単なメール検証(組み込み文字列関数) - local at_pos = string.indexOf(email, "@") - local dot_pos = string.lastIndexOf(email, ".") - - return at_pos > 0 and dot_pos > at_pos and dot_pos < string.length(email) - 1 - } - - sendError(response, status, message) { - local error_obj = map.create() - map.set(error_obj, "error", message) - - local json_error = json.stringify(error_obj) - - http_server.setHeader(response, "Content-Type", "application/json") - http_server.setStatus(response, status) - http_server.send(response, json_error) - } -} -``` - -### 🔧 システムプログラミング例:ファイル監視ツール -```nyash -# === nyash.link === -[dependencies] -nyashstd = { builtin = true } -libc_api = { bid = "./apis/libc.yaml", library = "system" } -inotify_api = { bid = "./apis/inotify.yaml", library = "system" } -filesystem_api = { bid = "./apis/filesystem.yaml" } - -# === file_monitor.hako === -using nyashstd -using libc_api -using inotify_api -using filesystem_api - -static box FileMonitor { - init { watch_path, inotify_fd, watch_descriptors, callbacks } - - main() { - me.watch_path = "./watched_directory" - me.watch_descriptors = new ArrayBox() - me.callbacks = map.create() - - # inotify初期化(Linux inotify - FFI-ABI) - me.inotify_fd = inotify.init() - - if me.inotify_fd < 0 { - io.println("Failed to initialize inotify") - return - } - - # ディレクトリ監視設定 - me.addWatch(me.watch_path) - - # コールバック設定 - me.setupCallbacks() - - io.println("File monitor started. Watching: " + me.watch_path) - - # メインループ - me.eventLoop() - } - - addWatch(path) { - # 監視フラグ(inotify constants) - local flags = inotify.IN_CREATE or inotify.IN_DELETE or - inotify.IN_MODIFY or inotify.IN_MOVED_FROM or - inotify.IN_MOVED_TO - - local wd = inotify.addWatch(me.inotify_fd, path, flags) - - if wd >= 0 { - array.push(me.watch_descriptors, wd) - io.println("Added watch for: " + path) - } else { - io.println("Failed to add watch for: " + path) - } - } - - setupCallbacks() { - # ファイル作成コールバック - map.set(me.callbacks, "CREATE", static function(event) { - io.println("File created: " + event.name) - - # ファイル情報取得(Filesystem API) - local file_info = filesystem.stat(event.path) - local size = file_info.size - local permissions = file_info.permissions - - io.println(" Size: " + string.toString(size) + " bytes") - io.println(" Permissions: " + permissions) - }) - - # ファイル変更コールバック - map.set(me.callbacks, "MODIFY", static function(event) { - io.println("File modified: " + event.name) - - # 変更時刻記録 - local timestamp = time.now() - local formatted_time = time.format(timestamp, "%Y-%m-%d %H:%M:%S") - io.println(" Modified at: " + formatted_time) - }) - - # ファイル削除コールバック - map.set(me.callbacks, "DELETE", static function(event) { - io.println("File deleted: " + event.name) - - # ログファイルに記録 - me.logEvent("DELETE", event.name, time.now()) - }) - } - - eventLoop() { - local buffer_size = 4096 - local buffer = libc.malloc(buffer_size) - - loop(true) { - # inotify eventsを読み取り(blocking read) - local bytes_read = libc.read(me.inotify_fd, buffer, buffer_size) - - if bytes_read > 0 { - me.processEvents(buffer, bytes_read) - } else if bytes_read == 0 { - # EOF - break - } else { - # エラー - local error_code = libc.errno() - io.println("Read error: " + string.toString(error_code)) - break - } - } - - libc.free(buffer) - } - - processEvents(buffer, bytes_read) { - local offset = 0 - - loop(offset < bytes_read) { - # inotify_event構造体解析(libc memory operations) - local event = inotify.parseEvent(buffer, offset) - - # イベントタイプ判定 - local event_type = me.getEventType(event.mask) - - # 対応するコールバック実行 - if map.has(me.callbacks, event_type) { - local callback = map.get(me.callbacks, event_type) - callback(event) - } - - # 次のイベントへ - offset = offset + event.size - } - } - - getEventType(mask) { - if mask and inotify.IN_CREATE { - return "CREATE" - } else if mask and inotify.IN_MODIFY { - return "MODIFY" - } else if mask and inotify.IN_DELETE { - return "DELETE" - } else if mask and inotify.IN_MOVED_FROM { - return "MOVE_FROM" - } else if mask and inotify.IN_MOVED_TO { - return "MOVE_TO" - } else { - return "UNKNOWN" - } - } - - logEvent(event_type, filename, timestamp) { - local log_entry = time.format(timestamp, "%Y-%m-%d %H:%M:%S") + - " [" + event_type + "] " + filename + "\n" - - # ログファイルに追記(Filesystem API) - filesystem.appendFile("./file_monitor.log", log_entry) - } -} -``` - -## 📊 MIR同時拡張による最適化効果 - -### 🚀 最適化前後の比較 - -#### **従来の実装(最適化なし)** -```mir -; 非効率:毎回関数呼び出し -%1 = ExternCall env.canvas.fillRect ["canvas", 10, 10, 100, 100, "red"] -%2 = ExternCall env.canvas.fillRect ["canvas", 110, 10, 100, 100, "blue"] -%3 = ExternCall env.canvas.fillRect ["canvas", 220, 10, 100, 100, "green"] -``` - -#### **MIR最適化後(バッチ処理)** -```mir -; 効率化:バッチ処理 -%rects = ArrayConstruct [ - {x: 10, y: 10, w: 100, h: 100, color: "red"}, - {x: 110, y: 10, w: 100, h: 100, color: "blue"}, - {x: 220, y: 10, w: 100, h: 100, color: "green"} -] -%1 = ExternCall env.canvas.fillRectBatch ["canvas", %rects] -``` - -#### **Effect Systemによる並列化** -```mir -; pure関数は並列実行可能 -%1 = BuiltinCall string.upper ["hello"] ; effect: pure -%2 = BuiltinCall math.sin [3.14] ; effect: pure -%3 = BuiltinCall string.lower ["WORLD"] ; effect: pure -; ↑ これらは並列実行される - -%4 = ExternCall env.console.log [%1] ; effect: io -%5 = ExternCall env.console.log [%2] ; effect: io -; ↑ これらは順序保持される -``` - -### 🎯 バックエンド別最適化 - -#### **WASM最適化** -```wasm -;; BIDから自動生成された最適化WASM -(func $optimized_canvas_batch - (param $canvas_id i32) (param $canvas_id_len i32) - (param $rects_ptr i32) (param $rect_count i32) - - ;; ループ展開による高速化 - (local $i i32) - (local $rect_ptr i32) - - loop $rect_loop - ;; 直接メモリアクセス(境界チェック済み) - local.get $rect_ptr - i32.load ;; x - local.get $rect_ptr - i32.load offset=4 ;; y - ;; ... 高速描画処理 - - local.get $rect_ptr - i32.const 20 - i32.add - local.set $rect_ptr - - local.get $i - i32.const 1 - i32.add - local.tee $i - local.get $rect_count - i32.lt_u - br_if $rect_loop - end -) -``` - -#### **AOT最適化(LLVM IR)** -```llvm -; LLVM IRレベルでの最適化 -define void @optimized_image_processing(i8* %image_data, i32 %width, i32 %height) { -entry: - ; ベクトル化された画像処理 - %0 = bitcast i8* %image_data to <16 x i8>* - - ; SIMD命令による並列処理 - br label %loop.header - -loop.header: - %i = phi i32 [ 0, %entry ], [ %i.next, %loop.body ] - %cmp = icmp ult i32 %i, %height - br i1 %cmp, label %loop.body, label %exit - -loop.body: - ; 16ピクセル同時処理(AVX2/NEON活用) - %pixel_ptr = getelementptr <16 x i8>, <16 x i8>* %0, i32 %i - %pixels = load <16 x i8>, <16 x i8>* %pixel_ptr - - ; ベクトル化されたエッジ検出 - %edges = call <16 x i8> @vectorized_edge_detection(<16 x i8> %pixels) - - store <16 x i8> %edges, <16 x i8>* %pixel_ptr - - %i.next = add i32 %i, 1 - br label %loop.header - -exit: - ret void -} -``` - -## 🌟 革命的効果 - -### 🚀 開発者体験の向上 -- **学習コスト**: 一つの構文ですべてのAPIが使える -- **IDE統合**: 全APIの統一補完・エラー検出 -- **デバッグ**: 統一エラーモデルによる一貫したデバッグ体験 - -### ⚡ パフォーマンス向上 -- **MIRレベル最適化**: すべてのAPIで同じ最適化技術 -- **Effect System**: 安全な並列化・順序最適化 -- **バックエンド最適化**: WASM/AOT固有の最適化 - -### 🌍 エコシステム拡大 -- **ライブラリ統合**: 既存C/Rustライブラリの簡単統合 -- **クロスプラットフォーム**: 同じコードが全環境で動作 -- **標準化**: BIDによる外部API標準化 - ---- - -**🎉 これが「なんでもAPI計画」の真の実力だにゃ!あらゆる開発が統一された美しい構文で実現できるにゃ!🚀🐱** \ No newline at end of file diff --git a/docs/development/proposals/nyash.link/universal-api-integration.md b/docs/development/proposals/nyash.link/universal-api-integration.md deleted file mode 100644 index 54927db1..00000000 --- a/docs/development/proposals/nyash.link/universal-api-integration.md +++ /dev/null @@ -1,563 +0,0 @@ -# なんでもAPI計画:nyash.link × FFI-ABI × MIR 統合設計 - -## 🌟 革命的統合ビジョン - -### 📊 現状把握 -- ✅ **nyash.linkシステム**: 標準関数・モジュール管理設計完了 -- ✅ **FFI-ABI仕様**: BID(Box Interface Definition)による外部API統一 -- ✅ **MIR ExternCall**: 外部関数呼び出しのMIRレベル実装 -- 🎯 **統合目標**: 3つのシステムを統合し「なんでもAPI」を実現 - -### 🚀 統合後の開発体験 -```nyash -# === 単一のusing構文ですべてが使える! === -using nyashstd # 組み込み標準ライブラリ -using console_api # ブラウザConsole API (FFI-ABI) -using canvas_api # Canvas API (FFI-ABI) -using opencv_api # OpenCV外部ライブラリ (FFI-ABI) -using mylib # 自作Nyashモジュール - -# 全部同じ記法で使える! -string.upper("hello") # 組み込み標準ライブラリ -console.log("Hello Nyash!") # ブラウザAPI -canvas.fillRect("game", 10, 10, 80, 60, "red") # Canvas API -opencv.loadImage("photo.jpg") # 外部ライブラリ -mylib.processData("input") # 自作モジュール -``` - -## 🏗️ 統合アーキテクチャ設計 - -### 1. 拡張nyash.link仕様 - -#### **依存関係タイプの統合** -```toml -# nyash.link - 全API統一管理 -[project] -name = "awesome-nyash-app" -version = "1.0.0" - -[dependencies] -# === 組み込み標準ライブラリ === -nyashstd = { builtin = true } - -# === FFI-ABI経由外部API === -console_api = { bid = "./apis/console.yaml" } -canvas_api = { bid = "./apis/canvas.yaml" } -webgl_api = { bid = "./apis/webgl.yaml" } -dom_api = { bid = "./apis/dom.yaml" } - -# === システムライブラリ === -libc = { bid = "./apis/libc.yaml", library = "system" } -math_lib = { bid = "./apis/math.yaml", library = "libm" } - -# === 外部共有ライブラリ === -opencv = { bid = "./apis/opencv.yaml", library = "./libs/opencv.so" } -sqlite = { bid = "./apis/sqlite.yaml", library = "./libs/sqlite.so" } - -# === Nyashモジュール(従来通り) === -mylib = { path = "./src/mylib.hako" } -utils = { path = "./src/utils.hako" } -models = { path = "./src/models/" } - -# === 将来の外部パッケージ === -# http_client = { version = "1.0.0", registry = "nyash-pkg" } - -[build] -entry_point = "./src/main.hako" -backends = ["vm", "wasm", "aot"] # 対象バックエンド指定 -``` - -#### **BIDファイル例** -```yaml -# apis/console.yaml - Console API定義 -version: 0 -metadata: - name: "Browser Console API" - description: "Standard browser console interface" - target_environments: ["browser", "node"] - -interfaces: - - name: console_api.console - box: Console - namespace: console_api - methods: - - name: log - params: [ {string: message} ] - returns: void - effect: io - description: "Output message to console" - - - name: warn - params: [ {string: message} ] - returns: void - effect: io - - - name: error - params: [ {string: message} ] - returns: void - effect: io - -# apis/canvas.yaml - Canvas API定義 -version: 0 -interfaces: - - name: canvas_api.canvas - box: Canvas - namespace: canvas_api - methods: - - name: fillRect - params: - - {string: canvas_id} - - {i32: x} - - {i32: y} - - {i32: width} - - {i32: height} - - {string: color} - returns: void - effect: io - - - name: fillText - params: - - {string: canvas_id} - - {string: text} - - {i32: x} - - {i32: y} - - {string: font} - - {string: color} - returns: void - effect: io -``` - -### 2. 統合名前空間レジストリ - -#### **UniversalNamespaceRegistry設計** -```rust -// 新ファイル: src/registry/universal.rs -use crate::stdlib::BuiltinStdlib; -use crate::bid::BidDefinition; -use crate::module::ExternalModule; - -pub struct UniversalNamespaceRegistry { - /// 組み込み標準ライブラリ - builtin: Arc, - - /// FFI-ABI経由の外部API - ffi_apis: HashMap>, - - /// Nyashモジュール - nyash_modules: HashMap>, - - /// using imports(ファイル別) - using_imports: Arc>>, -} - -#[derive(Debug, Clone)] -pub struct UsingContext { - pub builtin_imports: Vec, // ["nyashstd"] - pub ffi_imports: Vec, // ["console_api", "canvas_api"] - pub module_imports: Vec, // ["mylib", "utils"] - pub file_id: String, -} - -impl UniversalNamespaceRegistry { - pub fn new(nyash_link: &NyashLink) -> Result { - let mut registry = UniversalNamespaceRegistry { - builtin: Arc::new(BuiltinStdlib::new()), - ffi_apis: HashMap::new(), - nyash_modules: HashMap::new(), - using_imports: Arc::new(RwLock::new(HashMap::new())), - }; - - // nyash.linkからFFI-ABI定義読み込み - registry.load_ffi_apis(nyash_link)?; - - // Nyashモジュール読み込み - registry.load_nyash_modules(nyash_link)?; - - Ok(registry) - } - - /// 統合using文処理 - pub fn execute_using(&mut self, namespace_name: &str, file_id: &str) - -> Result<(), RuntimeError> { - - let context = self.using_imports - .write().unwrap() - .entry(file_id.to_string()) - .or_insert_with(|| UsingContext { - builtin_imports: Vec::new(), - ffi_imports: Vec::new(), - module_imports: Vec::new(), - file_id: file_id.to_string(), - }); - - // 組み込み標準ライブラリ - if self.builtin.has_namespace(namespace_name) { - if !context.builtin_imports.contains(&namespace_name.to_string()) { - context.builtin_imports.push(namespace_name.to_string()); - } - return Ok(()); - } - - // FFI-ABI API - if self.ffi_apis.contains_key(namespace_name) { - if !context.ffi_imports.contains(&namespace_name.to_string()) { - context.ffi_imports.push(namespace_name.to_string()); - } - return Ok(()); - } - - // Nyashモジュール - if self.hako_modules.contains_key(namespace_name) { - if !context.module_imports.contains(&namespace_name.to_string()) { - context.module_imports.push(namespace_name.to_string()); - } - return Ok(()); - } - - Err(RuntimeError::UndefinedNamespace(namespace_name.to_string())) - } - - /// 統合関数解決 - pub fn resolve_call(&self, file_id: &str, path: &[String]) - -> Result { - - if path.len() != 2 { - return Err(RuntimeError::InvalidQualifiedName(path.join("."))); - } - - let box_name = &path[0]; - let method_name = &path[1]; - - if let Ok(imports) = self.using_imports.read() { - if let Some(context) = imports.get(file_id) { - - // 1. 組み込み標準ライブラリ検索 - for namespace in &context.builtin_imports { - if let Some(target) = self.builtin.resolve_call(namespace, box_name, method_name) { - return Ok(CallTarget::Builtin(target)); - } - } - - // 2. FFI-ABI API検索 - for namespace in &context.ffi_imports { - if let Some(bid) = self.ffi_apis.get(namespace) { - if let Some(target) = bid.resolve_method(box_name, method_name) { - return Ok(CallTarget::FfiAbi(target)); - } - } - } - - // 3. Nyashモジュール検索 - for namespace in &context.module_imports { - if let Some(module) = self.hako_modules.get(namespace) { - if let Some(target) = module.resolve_method(box_name, method_name) { - return Ok(CallTarget::NyashModule(target)); - } - } - } - } - } - - Err(RuntimeError::UndefinedMethod(format!("{}.{}", box_name, method_name))) - } -} - -#[derive(Debug)] -pub enum CallTarget { - Builtin(BuiltinMethodTarget), - FfiAbi(FfiMethodTarget), - NyashModule(NyashMethodTarget), -} -``` - -### 3. MIRレベル統合 - -#### **MIR命令拡張** -```rust -// src/mir/instruction.rs拡張 -#[derive(Debug, Clone)] -pub enum MirInstruction { - // 既存命令... - - // === 統合関数呼び出し === - - /// 組み込み標準ライブラリ呼び出し - BuiltinCall { - target: String, // "string.upper" - args: Vec, - result: ValueId, - effect: Effect, - }, - - /// FFI-ABI外部API呼び出し - ExternCall { - interface: String, // "console_api.console" - method: String, // "log" - args: Vec, - result: Option, - effect: Effect, - bid_signature: BidMethodSignature, - }, - - /// Nyashモジュール関数呼び出し - ModuleCall { - module: String, // "mylib" - function: String, // "processData" - args: Vec, - result: ValueId, - effect: Effect, - }, -} - -#[derive(Debug, Clone)] -pub enum Effect { - Pure, // 副作用なし、並び替え可能 - Mut, // 同リソース内で順序保持 - Io, // プログラム順序保持 - Control, // 制御フロー影響 -} -``` - -#### **MIR生成統合** -```rust -// src/mir/builder.rs拡張 -impl MirBuilder { - pub fn build_unified_call(&mut self, target: CallTarget, args: Vec) - -> Result { - - match target { - CallTarget::Builtin(builtin_target) => { - let result = self.new_value_id(); - self.emit(MirInstruction::BuiltinCall { - target: builtin_target.qualified_name(), - args, - result, - effect: builtin_target.effect(), - }); - Ok(result) - }, - - CallTarget::FfiAbi(ffi_target) => { - let result = if ffi_target.returns_void() { - None - } else { - Some(self.new_value_id()) - }; - - self.emit(MirInstruction::ExternCall { - interface: ffi_target.interface_name(), - method: ffi_target.method_name(), - args, - result, - effect: ffi_target.effect(), - bid_signature: ffi_target.signature().clone(), - }); - - result.ok_or(MirError::VoidReturn) - }, - - CallTarget::NyashModule(module_target) => { - let result = self.new_value_id(); - self.emit(MirInstruction::ModuleCall { - module: module_target.module_name(), - function: module_target.function_name(), - args, - result, - effect: Effect::Io, // デフォルト - }); - Ok(result) - }, - } - } -} -``` - -### 4. バックエンド統合実装 - -#### **VM実行統合** -```rust -// src/backend/vm.rs拡張 -impl VmBackend { - pub fn execute_instruction(&mut self, instr: &MirInstruction) - -> Result<(), VmError> { - - match instr { - MirInstruction::BuiltinCall { target, args, result, .. } => { - let evaluated_args = self.evaluate_args(args)?; - let output = self.builtin_executor.call(target, evaluated_args)?; - self.set_value(*result, output); - Ok(()) - }, - - MirInstruction::ExternCall { interface, method, args, result, bid_signature, .. } => { - // VM環境ではスタブ実装 - let evaluated_args = self.evaluate_args(args)?; - let output = self.extern_stub.call(interface, method, evaluated_args, bid_signature)?; - if let Some(res_id) = result { - self.set_value(*res_id, output); - } - Ok(()) - }, - - MirInstruction::ModuleCall { module, function, args, result, .. } => { - let evaluated_args = self.evaluate_args(args)?; - let output = self.module_executor.call(module, function, evaluated_args)?; - self.set_value(*result, output); - Ok(()) - }, - - // 既存命令処理... - } - } -} -``` - -#### **WASM生成統合** -```rust -// src/backend/wasm/codegen.rs拡張 -impl WasmCodegen { - pub fn generate_instruction(&mut self, instr: &MirInstruction) - -> Result<(), WasmError> { - - match instr { - MirInstruction::BuiltinCall { target, args, result, .. } => { - // 組み込み関数は直接実装 - self.generate_builtin_call(target, args, *result) - }, - - MirInstruction::ExternCall { interface, method, args, bid_signature, .. } => { - // BIDから自動生成されたWASM import呼び出し - let import_name = format!("{}_{}", - interface.replace(".", "_"), - method - ); - - self.generate_extern_call(&import_name, args, bid_signature) - }, - - MirInstruction::ModuleCall { module, function, args, result, .. } => { - // 内部関数呼び出し - let function_name = format!("{}_{}", module, function); - self.generate_function_call(&function_name, args, *result) - }, - } - } - - /// BIDからWASM RuntimeImports自動生成 - pub fn generate_runtime_imports(&mut self, bid_definitions: &[BidDefinition]) - -> Result { - - let mut imports = String::new(); - - for bid in bid_definitions { - for interface in &bid.interfaces { - for method in &interface.methods { - let import_name = format!("{}_{}", - interface.name.replace(".", "_"), - method.name - ); - - let signature = self.bid_to_wasm_signature(&method.params, &method.returns)?; - imports.push_str(&format!( - "(import \"env\" \"{}\" {})\n", - import_name, signature - )); - } - } - } - - Ok(imports) - } -} -``` - -#### **AOT生成統合** -```rust -// src/backend/aot/compiler.rs拡張 -impl AotCompiler { - pub fn compile_instruction(&mut self, instr: &MirInstruction) - -> Result<(), AotError> { - - match instr { - MirInstruction::ExternCall { interface, method, args, bid_signature, .. } => { - // LLVM IR外部関数宣言生成 - let extern_func_name = format!("{}_{}", - interface.replace(".", "_"), - method - ); - - let signature = self.bid_to_llvm_signature(bid_signature)?; - self.declare_external_function(&extern_func_name, &signature)?; - self.generate_call(&extern_func_name, args)?; - - Ok(()) - }, - - // その他の命令処理... - } - } -} -``` - -## 🎯 段階的実装戦略 - -### Phase 0: 基盤統合(2-3週間) -1. **UniversalNamespaceRegistry実装** - 全API統一管理 -2. **nyash.link拡張** - BID依存関係サポート -3. **統合using文** - 3種類のAPI統一インポート - -### Phase 1: FFI-ABI統合(3-4週間) -1. **BID読み込み機能** - YAML解析・検証 -2. **MIR ExternCall統合** - FFI-ABI→MIR変換 -3. **WASM RuntimeImports自動生成** - BID→WASM import - -### Phase 2: 完全統合(4-6週間) -1. **全バックエンド対応** - VM/WASM/AOT統合実装 -2. **エラーハンドリング統合** - 統一エラーモデル -3. **パフォーマンス最適化** - 高速名前解決 - -## 🧪 統合テスト戦略 - -### 基本統合テスト -```nyash -# test_universal_integration.hako -using nyashstd -using console_api -using mylib - -# 3種類のAPIが同じように使える -assert(string.upper("test") == "TEST") # 組み込み -console.log("Integration test successful") # FFI-ABI -assert(mylib.process("data") == "processed") # Nyash -``` - -### FFI-ABI統合テスト -```nyash -# test_ffi_abi_integration.hako -using canvas_api - -# Canvas API経由での描画 -canvas.fillRect("game-canvas", 10, 10, 100, 100, "red") -canvas.fillText("game-canvas", "Score: 100", 10, 30, "16px Arial", "white") -``` - -## 🌟 期待される革命的効果 - -### 🚀 開発者体験 -- **統一API**: 組み込み・外部・自作すべて同じ書き方 -- **IDE補完**: すべてのAPIが`ny`で補完される -- **エラー処理**: 統一エラーモデルで一貫性 - -### 🏗️ アーキテクチャ -- **MIRレベル統合**: 全バックエンドで同じパフォーマンス最適化 -- **Effect System**: pure/mut/io/controlによる安全性保証 -- **言語非依存**: BIDによる外部ライブラリ標準化 - -### 🌍 エコシステム -- **なんでもAPI**: あらゆる外部ライブラリがNyashから使える -- **バックエンド統一**: 同じコードがVM/WASM/AOTで動作 -- **将来拡張**: パッケージレジストリでBID共有 - ---- - -**🎉 この統合設計で、Nyashが真に「なんでもできる」モダン言語になるにゃ!🚀🐱** \ No newline at end of file diff --git a/src/mir/builder/control_flow/joinir/patterns/pattern3_with_if_phi.rs b/src/mir/builder/control_flow/joinir/patterns/pattern3_with_if_phi.rs index f711f149..7d3086f0 100644 --- a/src/mir/builder/control_flow/joinir/patterns/pattern3_with_if_phi.rs +++ b/src/mir/builder/control_flow/joinir/patterns/pattern3_with_if_phi.rs @@ -252,14 +252,6 @@ impl MirBuilder { ) -> Result, String> { use crate::mir::join_ir::lowering::loop_with_if_phi_minimal::lower_loop_with_if_phi_pattern; - // Phase 195: Validate that required carrier 'sum' exists (legacy mode requirement) - // This maintains backward compatibility with single-carrier (sum only) and multi-carrier (sum+count) tests - let _sum_exists = ctx.carrier_info.carriers.iter() - .any(|c| c.name == "sum"); - if !_sum_exists { - return Err("[cf_loop/pattern3] Accumulator variable 'sum' not found in variable_map".to_string()); - } - // Phase 195: Use unified trace trace::trace().varmap("pattern3_start", &self.variable_map);