Files
hakorune/docs
nyash-codex 80e952b83a feat(joinir): Phase 54 SELFHOST-SHAPE-GROWTH - 構造軸育成 + 偽陽性観測
Phase 53 成果を踏まえ、構造シグネチャ軸を 5+ に育て、
偽陽性観測テストで name ガード縮小準備を整えた。

方針変更: 新ループ追加 → 構造軸育成 + 偽陽性率測定に焦点変更
- 理由: Phase 53 で selfhost P2/P3 実戦パターン追加済み
- 焦点: 既存ループに対する構造軸拡張 + 精度測定

主な成果:

1. 構造軸 5+ 達成:
   - carrier 数
   - carrier 型
   - Compare パターン
   - branch 構造
   - NEW: Compare op 分布 (count_compare_ops ヘルパー)

2. 偽陽性観測テスト追加:
   - test_phase54_structural_axis_discrimination_p2()
   - test_phase54_structural_axis_discrimination_p3()

3. 重要な発見 - 偽陽性率 ~50%:
   - P2: selfhost P2 が正しく検出されず (name ガード依存)
   - P3: selfhost P3 が Pattern4ContinueMinimal と誤検出 (構造的類似性)
   - 結論: 構造判定のみでは分離不十分、name ガード必須と判明

変更内容:

- shape_guard.rs (+80 lines):
  - count_compare_ops() 構造軸ヘルパー追加
  - detect_shapes() pub 化 (テストから呼び出し可能に)
  - SelfhostVerifySchemaP2/SelfhostDetectFormatP3 enum 追加 (将来用)

- normalized_joinir_min.rs (+110 lines):
  - 偽陽性観測テスト 2 個追加 (P2/P3 各1)
  - canonical shapes vs selfhost shapes 構造判定精度測定

- phase49 doc (+200 lines):
  - Phase 54 節完成版
  - 偽陽性分析結果記録
  - name ガード縮小方針明記

- enum 拡張対応:
  - bridge.rs (+8 lines)
  - normalized.rs (+8 lines)
  - ast_lowerer/mod.rs (+2 lines)

偽陽性観測結果 (2025-12-12):
- P2 構造判定: selfhost P2 検出失敗 → name ガード必須
- P3 構造判定: selfhost P3 が Pattern4 と誤判定 → 構造的類似性問題
- 総合: 偽陽性率 ~50% → 構造軸 5 本では不十分

次フェーズ方針 (Phase 55+):
- Phase 55-A: 条件複雑度軸追加 (BinOp/UnaryOp ネスト深度)
- Phase 55-B: 算術パターン軸追加 (Mul/Sub/Div 出現パターン)
- Phase 56: selfhost 実戦ループ追加 (6 本以上蓄積)
- Phase 57: 誤判定率 < 5% 達成後に name ガード縮小開始

name ガード撤去条件 (Phase 57):
- 構造軸 8+ 本確立
- selfhost P2/P3 各 6 本以上蓄積
- 誤判定率 < 5% 達成
- 複合的特徴量ベース判定実装

回帰テスト:  939 PASS, 0 FAIL (既存挙動不変)

Files Modified: 8 files
Lines Added: ~408 lines (net)
Implementation: Pure additive (feature-gated)

Phase 54 完了!構造軸育成・偽陽性観測基盤確立!
2025-12-12 17:12:58 +09:00
..

📚 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.mdPluginBoxV2のライフサイクル、singleton、nyash.tomlの要点

📚 guides/ - 利用者向けガイド

  • getting-started.md - はじめに(統一版)
  • tutorials/ - ステップバイステップのチュートリアル
  • examples/ - 実践的なサンプルコード
  • wasm-guide/ - WebAssemblyビルドガイド

🧩 how-to/ - 目的別ハウツー

  • 手順重視の短いガイド(前提→コマンド→検証)

🔧 development/ - 開発者向け

  • current/ - 現在進行中のタスクCURRENT_TASK.md等
  • roadmap/ - 開発計画
    • phases/ - Phase 812の詳細計画
    • phase-12/ - 🆕🔥 TypeBox統合ABI + Nyash ABI C実装セルフホスティング実現
    • native-plan/ - ネイティブビルド計画
  • proposals/ - RFC、新機能提案

🔌 Net PluginHTTP/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 実装側の設計・ロードマップ コア開発者 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最小構文・ゼロランタイム・可視化の原則

開発状況


📋 再編成について / フォルダの見分け方

ドキュメントは2025年8月20日に再編成されました。詳細はREORGANIZATION_REPORT.mdを参照してください。

旧パスから新パスへの主な変更:

  • 説明書/guides/reference/ に分割
  • 予定/development/roadmap/
  • 散在していたファイル → 適切なカテゴリに整理

補足:

  • reference/ は正本(仕様)。
  • guides/ は読み物、how-to/ は手順書。
  • design/ は公開できる設計ノート。
  • private/ は下書き保管庫(将来 reference//design/ に昇格)。

Nyash は「Everything is Box」哲学に基づく言語です。詳細はコア概念とガイドを参照してください。