Add comprehensive inquiry document for Select instruction conversion strategy. This document outlines the architectural challenge and requests ChatGPT guidance on: 1. Clean conversion strategy (Select → Branch + Then/Else + Phi) 2. Block creation and management patterns 3. ValueId continuity across conversion boundaries 4. Code organization approach (where should conversion logic live?) 5. Performance and optimization implications 6. Testing strategy for Select expansion 7. Future extensibility for complex patterns ## Context - Phase 188-Impl-3 implementation is COMPLETE ✅ - All JoinIR lowering for Pattern 3 is functional - All infrastructure is in place (routing, boundary mapping, etc.) - BLOCKER: Select instruction cannot be converted to MIR yet The inquiry provides: - Executive summary of current status - Technical challenge explanation with example conversions - 7 detailed questions for architectural guidance - References to existing similar code patterns in codebase - Test case details and success criteria - Proposed Phase 189 implementation phases ## Status - Phase 188-Impl-1 (Pattern 1): ✅ COMPLETE - loop_min_while.hako working - Phase 188-Impl-2 (Pattern 2): ✅ COMPLETE - joinir_min_loop.hako working - Phase 188-Impl-3 (Pattern 3): 🔄 INFRASTRUCTURE COMPLETE - awaiting Phase 189 for MIR bridge - Phase 189: This inquiry document provides foundation for implementation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
📚 Nyash Documentation
🚀 はじめに(導線)
- 現在のタスクと進行状況: ../CURRENT_TASK.md
- コア概念の速習: reference/architecture/nyash_core_concepts.md
- 設計ブループリント(文字列/文字コード): development/design/blueprints/strings-utf8-byte.md
📂 ドキュメント構造(指針)
📖 reference/ - 正式な技術仕様
- language/ - 言語仕様(構文、型システム、Box仕様)
- architecture/ - システムアーキテクチャ(MIR、VM、実行バックエンド)
- api/ - ビルトインBoxのAPI仕様
- plugin-system/ - プラグインシステム、BID-FFI仕様
- 🆕🔥 TypeBox ABI統合 + セルフホスティング - ABIすらBoxとして扱う革命的設計!
- まずはこちら:
reference/boxes-system/plugin_lifecycle.md(PluginBoxV2のライフサイクル、singleton、nyash.tomlの要点)
📚 guides/ - 利用者向けガイド
- getting-started.md - はじめに(統一版)
- tutorials/ - ステップバイステップのチュートリアル
- examples/ - 実践的なサンプルコード
- wasm-guide/ - WebAssemblyビルドガイド
🧩 how-to/ - 目的別ハウツー
- 手順重視の短いガイド(前提→コマンド→検証)
🔧 development/ - 開発者向け
- current/ - 現在進行中のタスク(CURRENT_TASK.md等)
- roadmap/ - 開発計画
- phases/ - Phase 8~12の詳細計画
- phase-12/ - 🆕🔥 TypeBox統合ABI + Nyash ABI C実装(セルフホスティング実現!)
- native-plan/ - ネイティブビルド計画
- proposals/ - RFC、新機能提案
🔌 Net Plugin(HTTP/TCP)
- 使い方と仕様:
reference/plugin-system/net-plugin.md
🗄️ archive/ - アーカイブ
- consultations/ - AI相談記録(gemini/chatgpt/codex)
- decisions/ - 過去の設計決定
- build-logs/ - ビルドログ、ベンチマーク結果
- old-versions/ - 古いドキュメント
📌 Docs マップ(トップレベルとステータス)
新しくドキュメントを書くときや、どこに置くか迷ったときはこの表を基準にする。
| パス | 用途 | 主な対象 | ステータス |
|---|---|---|---|
reference/ |
言語仕様・正式なリファレンス | 利用者 / 実装者 | Active / SSOT |
guides/ |
チュートリアル・長めの読み物 | 利用者 / 新規開発者 | Active |
how-to/ |
手順書・レシピ集 | 日常開発 | Active |
quick-reference/ |
コマンドやオプションの早見表 | 日常参照 | Active |
development/ |
Rust 実装側の設計・ロードマップ | コア開発者 | Active(Rust層) |
private/ |
将来の整理待ちのメモ・長文案 | コア開発者 | Draft / Incubator |
design/ |
公開可能な安定寄り設計ノート | 実装者 | Active(安定設計) |
architecture/ |
全体アーキテクチャの俯瞰図 | 実装者 / 設計者 | Active |
abi/ |
Nyash/Hakorune ABI 関連 | 実装者 | Active |
specs/ |
古めの仕様・実験的仕様 | 実装者 | Legacy(必要に応じ参照) |
checklists/ |
レビュー・設計チェックリスト | 実装者 | Active |
tools/ |
ドキュメント生成・補助スクリプト | 実装者 | Active |
updates/ |
リリースノート・変更履歴 | 利用者 / 実装者 | Active |
releases/ |
リリース関連ドキュメント | 利用者 | Active |
archive/ |
旧ドキュメント・歴史資料 | 研究・考古学用 | Archived(正本ではない) |
assets/ |
画像などの共有アセット | すべて | Support |
ENV_VARS.md |
環境変数リファレンス | 実装者 / 運用者 | Active(集約先) |
運用ルール(提案):
- 新規仕様/設計: まずは
private/に置き、安定したらreference/ordesign/へ昇格する。 - Rust 実装寄りの話:
development/配下に置く(セルフホスト側はprivate/roadmap等)。 - 古い資料・置き換え済み: 内容を変えずに
archive/以下へ移動し、先頭に「Archived / 新しい場所」の一行メモを書く。 - ユーザー向けに見せたいもの:
guides/,how-to/,quick-reference/,releases/を優先する。
🎯 クイックアクセス
すぐ始める
- guides/getting-started.md
- guides/language-guide.md
- guides/p2p-guide.md
技術リファレンス
- reference/language/LANGUAGE_REFERENCE_2025.md
- reference/language/EBNF.md(演算子: ! 採用 / do-while 非採用)
- reference/language/strings.md(UTF‑8/Byte 二本柱)
- reference/architecture/TECHNICAL_ARCHITECTURE_2025.md
- reference/architecture/execution-backends.md
- reference/runtime/gc.md
- reference/plugin-system/
- tools/cli-options.md(CLI早見表)
デザイン/ガイド
- guides/language-core-and-sugar.md(コア最小+糖衣)
- guides/loopform.md(ループ正規化)
- guides/scopebox.md(開発時の可視化)
- guides/dev-local-alias.md(開発向け: 行頭 @name = expr → local 宣言糖衣)
- guides/box-patterns.md(Boxパターン集:Ownership/Lease/Cancel/Capability/Affinity/Observable)
- guides/box-design-checklist.md(Box 設計チェックリスト)
- proposals/concurrency/boxes.md(並行モデルのBox設計:Routine/Channel/Select/Scope)
- reference/concurrency/semantics.md(ブロッキング/close/select/観測の規約)
- design/(設計ノート入口)
- development/design/legacy/flow-blocks.md(矢印フロー/匿名ブロック・設計草案)
- development/proposals/scope-reuse.md(スコープ再利用ブロック・MVP提案)
- reference/language/match-guards.md(ガード連鎖/Range・CharClass設計)
- guides/core-principles.md(最小構文・ゼロランタイム・可視化の原則)
開発状況
- 現在のタスク
- 開発ロードマップ
- Phase別計画
- 🔥 Phase 12: TypeBox統合ABI
- 🔥 Phase 16: マクロ革命
- 🧪 Phase 17: LoopForm Self‑Hosting
- 💡 Rust所有権統合(候補) - Phase 17+候補
- 🧩 Mini‑VM 構築ロードマップ
- 🧭 Using→Loader 統合(最小設計): development/design/legacy/using-loader-integration.md
- 🗂️ Docsの書き方(小さく・リンク駆動): guides/contributing-docs.md
📋 再編成について / フォルダの見分け方
ドキュメントは2025年8月20日に再編成されました。詳細はREORGANIZATION_REPORT.mdを参照してください。
旧パスから新パスへの主な変更:
説明書/→guides/とreference/に分割予定/→development/roadmap/- 散在していたファイル → 適切なカテゴリに整理
補足:
reference/は正本(仕様)。guides/は読み物、how-to/は手順書。design/は公開できる設計ノート。private/は下書き保管庫(将来reference//design/に昇格)。
Nyash は「Everything is Box」哲学に基づく言語です。詳細はコア概念とガイドを参照してください。