Files
hakorune/docs/README.md

143 lines
7.7 KiB
Markdown
Raw Normal View History

# 📚 Nyash Documentation
## 🚀 はじめに(導線)
- 現在のタスクと進行状況: ../CURRENT_TASK.md
- コア概念の速習: reference/architecture/nyash_core_concepts.md
- 設計ブループリント(文字列/文字コード): development/design/blueprints/strings-utf8-byte.md
---
## 📂 ドキュメント構造(指針)
### 📖 [reference/](reference/) - 正式な技術仕様
- **language/** - 言語仕様構文、型システム、Box仕様
- **architecture/** - システムアーキテクチャMIR、VM、実行バックエンド
- **api/** - ビルトインBoxのAPI仕様
- **plugin-system/** - プラグインシステム、BID-FFI仕様
Phase 12: TypeBox革命とJIT制御フロー修正 - セルフホスティングへの道 ## 🔥 TypeBox ABI革命(セルフホスティング実現) - Nyash ABIをC実装TypeBoxで提供する画期的設計 - Gemini/Codexの深い考察を反映した詳細仕様書作成 - 16バイトアライメント、セレクターキャッシング、弱参照等の具体実装案 - Rust依存を完全排除し、セルフホスティングへの明確な道筋を確立 ## 🎯 JIT制御フロー根本修正(ChatGPT5の25分長考の成果) - ブロック挿入点の明確化: switch_to_block()で各ブロックemit開始時に切替 - シール戦略の簡潔化: br/jump直後のseal撤廃、最終シールに一本化 - PHI最小経路実装: ブロック引数の事前プリスキャン、後付けPHI問題解決 - Cranelift制約対応: 開始済みブロックへのappend禁止を正しく実装 ## 📚 ドキュメント更新 - Phase 12全体のセルフホスティング対応更新 - NYASH-ABI-C-IMPLEMENTATION.md: 実装仕様書作成 - gemini-codex-deep-thoughts.md: AI専門家の考察アーカイブ - 各種README/TASKS更新でセルフホスティング要件追加 ## ✅ テスト結果 - mir-branch-ret: OK (Result: 1) - mir-phi-min: OK (Result: 10) - mir-branch-multi: OK (Result: 1) 「Everything is Box」の究極形態:ABIすらBoxとして扱う革命的設計! 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-02 11:18:19 +09:00
- 🆕🔥 **[TypeBox ABI統合 + セルフホスティング](../development/roadmap/phases/phase-12/)** - ABIすらBoxとして扱う革命的設計
- まずはこちら: `reference/boxes-system/plugin_lifecycle.md`PluginBoxV2のライフサイクル、singleton、nyash.tomlの要点
### 📚 [guides/](guides/) - 利用者向けガイド
- **getting-started.md** - はじめに(統一版)
- **tutorials/** - ステップバイステップのチュートリアル
- **examples/** - 実践的なサンプルコード
- **wasm-guide/** - WebAssemblyビルドガイド
### 🧩 [how-to/](how-to/) - 目的別ハウツー
- 手順重視の短いガイド(前提→コマンド→検証)
### 🔧 [development/](development/) - 開発者向け
- **current/** - 現在進行中のタスクCURRENT_TASK.md等
- **roadmap/** - 開発計画
- phases/ - Phase 812の詳細計画
Phase 12: TypeBox革命とJIT制御フロー修正 - セルフホスティングへの道 ## 🔥 TypeBox ABI革命(セルフホスティング実現) - Nyash ABIをC実装TypeBoxで提供する画期的設計 - Gemini/Codexの深い考察を反映した詳細仕様書作成 - 16バイトアライメント、セレクターキャッシング、弱参照等の具体実装案 - Rust依存を完全排除し、セルフホスティングへの明確な道筋を確立 ## 🎯 JIT制御フロー根本修正(ChatGPT5の25分長考の成果) - ブロック挿入点の明確化: switch_to_block()で各ブロックemit開始時に切替 - シール戦略の簡潔化: br/jump直後のseal撤廃、最終シールに一本化 - PHI最小経路実装: ブロック引数の事前プリスキャン、後付けPHI問題解決 - Cranelift制約対応: 開始済みブロックへのappend禁止を正しく実装 ## 📚 ドキュメント更新 - Phase 12全体のセルフホスティング対応更新 - NYASH-ABI-C-IMPLEMENTATION.md: 実装仕様書作成 - gemini-codex-deep-thoughts.md: AI専門家の考察アーカイブ - 各種README/TASKS更新でセルフホスティング要件追加 ## ✅ テスト結果 - mir-branch-ret: OK (Result: 1) - mir-phi-min: OK (Result: 10) - mir-branch-multi: OK (Result: 1) 「Everything is Box」の究極形態:ABIすらBoxとして扱う革命的設計! 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-02 11:18:19 +09:00
- phase-12/ - 🆕🔥 TypeBox統合ABI + Nyash ABI C実装セルフホスティング実現
- native-plan/ - ネイティブビルド計画
- **proposals/** - RFC、新機能提案
### 🔌 Net PluginHTTP/TCP
- 使い方と仕様: `reference/plugin-system/net-plugin.md`
### 🗄️ [archive/](archive/) - アーカイブ
- **consultations/** - AI相談記録gemini/chatgpt/codex
- **decisions/** - 過去の設計決定
- **build-logs/** - ビルドログ、ベンチマーク結果
- **old-versions/** - 古いドキュメント
---
feat(hako_check): Phase 153 - Dead code detection revival (JoinIR version) Implement comprehensive dead code detection for hako_check with JoinIR integration, following Phase 133/134/152 box-based modularity pattern. ## Key Achievements 1. **Comprehensive Inventory** (`phase153_hako_check_inventory.md`): - Documented current hako_check architecture (872 lines) - Analyzed existing HC011/HC012 rules - Confirmed JoinIR-only pipeline (Phase 124) - Identified Phase 153 opportunities 2. **DeadCodeAnalyzerBox** (`rule_dead_code.hako`): - Unified HC019 rule (570+ lines) - Method-level + box-level dead code detection - DFS reachability from entrypoints - Text-based analysis (no MIR JSON dependency for MVP) - Heuristic-based false positive reduction 3. **CLI Integration** (`cli.hako`): - Added `--dead-code` flag for comprehensive mode - Added `--rules dead_code` for selective execution - Compatible with --format (text/json-lsp/dot) 4. **Test Infrastructure**: - HC019_dead_code test directory (ng/ok/expected.json) - `hako_check_deadcode_smoke.sh` with 4 test cases ## Technical Details - **Input**: Analysis IR (MapBox with methods/calls/boxes/entrypoints) - **Output**: HC019 diagnostics - **Algorithm**: Graph-based DFS reachability - **Pattern**: Box-based modular architecture - **No ENV vars**: CLI flags only ## Files Modified - NEW: docs/development/current/main/phase153_hako_check_inventory.md - NEW: tools/hako_check/rules/rule_dead_code.hako - MOD: tools/hako_check/cli.hako - NEW: tools/hako_check/tests/HC019_dead_code/ - NEW: tools/hako_check_deadcode_smoke.sh - MOD: CURRENT_TASK.md ## Next Steps - Phase 154+: MIR CFG integration for block-level detection - Phase 160+: Integration with .hako JoinIR/MIR migration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 14:19:48 +09:00
## 📌 Docs マップ(トップレベルとステータス)
新しくドキュメントを書くときや、どこに置くか迷ったときはこの表を基準にする。
| パス | 用途 | 主な対象 | ステータス |
|------|------|----------|------------|
| `reference/` | 言語仕様・正式なリファレンス | 利用者 / 実装者 | **Active / SSOT** |
| `guides/` | チュートリアル・長めの読み物 | 利用者 / 新規開発者 | **Active** |
| `how-to/` | 手順書・レシピ集 | 日常開発 | **Active** |
| `quick-reference/` | コマンドやオプションの早見表 | 日常参照 | **Active** |
| `development/` | Rust 実装側の設計・ロードマップ | コア開発者 | **ActiveRust層** |
| `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/` or `design/` へ昇格する。
- **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.mdUTF8/Byte 二本柱)
- reference/architecture/TECHNICAL_ARCHITECTURE_2025.md
- reference/architecture/execution-backends.md
- reference/runtime/gc.md
- reference/plugin-system/
- tools/cli-options.mdCLI早見表
### デザイン/ガイド
- guides/language-core-and-sugar.mdコア最小糖衣
- guides/loopform.mdループ正規化
- guides/scopebox.md開発時の可視化
- guides/dev-local-alias.md開発向け: 行頭 @name = expr → local 宣言糖衣)
- guides/box-patterns.mdBoxパターン集Ownership/Lease/Cancel/Capability/Affinity/Observable
- guides/box-design-checklist.mdBox 設計チェックリスト)
- 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最小構文・ゼロランタイム・可視化の原則
### 開発状況
- [現在のタスク](../CURRENT_TASK.md)
- [開発ロードマップ](development/roadmap/)
- [Phase別計画](development/roadmap/phases/)
- 🔥 **[Phase 12: TypeBox統合ABI](development/roadmap/phases/phase-12/)**
- 🔥 **[Phase 16: マクロ革命](development/roadmap/phases/phase-16-macro-revolution/)**
- 🧪 **[Phase 17: LoopForm SelfHosting](development/roadmap/phases/phase-17-loopform-selfhost/)**
- 💡 **[Rust所有権統合候補](private/ideas/new-features/2025-09-22-rust-ownership-fusion.md)** - Phase 17+候補
- 🧩 **[MiniVM 構築ロードマップ](development/roadmap/phases/phase-17-loopform-selfhost/MINI_VM_ROADMAP.md)**
- 🧭 **Using→Loader 統合(最小設計)**: development/design/legacy/using-loader-integration.md
- 🗂️ **Docsの書き方小さく・リンク駆動**: guides/contributing-docs.md
---
## 📋 再編成について / フォルダの見分け方
ドキュメントは2025年8月20日に再編成されました。詳細は[REORGANIZATION_REPORT.md](REORGANIZATION_REPORT.md)を参照してください。
旧パスから新パスへの主な変更:
- `説明書/``guides/``reference/` に分割
- `予定/``development/roadmap/`
- 散在していたファイル → 適切なカテゴリに整理
---
補足:
- `reference/` は正本(仕様)。
- `guides/` は読み物、`how-to/` は手順書。
- `design/` は公開できる設計ノート。
- `private/` は下書き保管庫(将来 `reference/`/`design/` に昇格)。
Nyash は「Everything is Box」哲学に基づく言語です。詳細はコア概念とガイドを参照してください。