From 9c6b725e3e1e9d8150dbd5879170d2e8c82b1646 Mon Sep 17 00:00:00 2001 From: tomoaki Date: Sat, 27 Dec 2025 14:04:56 +0900 Subject: [PATCH] docs(phase29y): Add P0 docs-finalize instructions --- docs/development/current/main/10-Now.md | 6 +- docs/development/current/main/30-Backlog.md | 4 ++ .../P0-DOCS-FINALIZE-INSTRUCTIONS.md | 68 +++++++++++++++++++ .../current/main/phases/phase-29y/README.md | 3 +- 4 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 docs/development/current/main/phases/phase-29y/P0-DOCS-FINALIZE-INSTRUCTIONS.md diff --git a/docs/development/current/main/10-Now.md b/docs/development/current/main/10-Now.md index 6303d64e..e561f89a 100644 --- a/docs/development/current/main/10-Now.md +++ b/docs/development/current/main/10-Now.md @@ -1,6 +1,6 @@ # Self Current Task — Now (main) -## Current Focus: Phase 287 Complete ✅ / Next: Backlog review +## Current Focus: Phase 29y P0(Docs finalize) **2025-12-27: Phase 287 完了** ✅ - P0-P8完了(big files modularization / facade pattern / SSOT establishment) @@ -9,6 +9,10 @@ - 入口: `docs/development/current/main/phases/phase-287/README.md` - **Next**: `docs/development/current/main/30-Backlog.md` から次タスク選定 +**Next (docs-first)**: +1. **Phase 29y P0**: docs を締める(ABI/RC insertion/observability) + - 指示書: `docs/development/current/main/phases/phase-29y/P0-DOCS-FINALIZE-INSTRUCTIONS.md` + **2025-12-27: Phase 188.3 完了** ✅ - Pattern6(NestedLoopMinimal): `apps/tests/phase1883_nested_minimal.hako` が RC=9 - Merge SSOT(latch/entry-like/double latch)を固定(BackEdgeのみlatch記録、main entry blockのみentry-like、二重latchはdebug_assert) diff --git a/docs/development/current/main/30-Backlog.md b/docs/development/current/main/30-Backlog.md index b5501e2e..ab18640a 100644 --- a/docs/development/current/main/30-Backlog.md +++ b/docs/development/current/main/30-Backlog.md @@ -51,6 +51,10 @@ Related: - `let weak w;` / `let weak w = e` の糖衣を検討(概念を増やさず `let w = weak e` にデシュガー) - fixture/smoke は `apps/tests/*.hako` を SSOT にして VM/LLVM で共通化(必要なら LLVM 側は SKIP で理由を固定) +- **Phase 29y(next, docs-first): MIR lifecycle vocab freeze(RC/weak/ABI)** + - 入口: `docs/development/current/main/phases/phase-29y/README.md` + - 指示書: `docs/development/current/main/phases/phase-29y/P0-DOCS-FINALIZE-INSTRUCTIONS.md` + - **Phase 29x(planned, post self-host): De-Rust runtime for LLVM execution** - 目的: LLVM 実行経路のランタイム依存を段階的に Rust から切り離す(脱Rust)。 - 前提: self-host ラインが安定し、VM/LLVM conformance(Phase 285)が十分に固まっていること。 diff --git a/docs/development/current/main/phases/phase-29y/P0-DOCS-FINALIZE-INSTRUCTIONS.md b/docs/development/current/main/phases/phase-29y/P0-DOCS-FINALIZE-INSTRUCTIONS.md new file mode 100644 index 00000000..fd284bca --- /dev/null +++ b/docs/development/current/main/phases/phase-29y/P0-DOCS-FINALIZE-INSTRUCTIONS.md @@ -0,0 +1,68 @@ +# Phase 29y P0: Docs finalize(docs-first, 大きく進める) + +**Date**: 2025-12-27 +**Status**: Ready(next) +**Scope**: Phase 29y の SSOT(ABI/RC insertion/observability)を “次フェーズへ切れる形” で締める。実装の追加はしない(Phase 29y は docs-first)。 +**Non-goals**: MIR 命令追加、GC/finalizer 新規実装、NyRT の .hako 化、既定挙動変更 + +--- + +## 目的(SSOT) + +Phase 29y を “Draft のメモ” ではなく、後続の実装フェーズへ迷わず移れる SSOT にする。 + +- ABI SSOT: `docs/development/current/main/phases/phase-29y/10-ABI-SSOT.md` +- RC insertion SSOT: `docs/development/current/main/phases/phase-29y/20-RC-INSERTION-SSOT.md` +- Observability SSOT: `docs/development/current/main/phases/phase-29y/30-OBSERVABILITY-SSOT.md` + +--- + +## 手順(docs-first) + +### Step 1: README を “実体に同期” する + +`docs/development/current/main/phases/phase-29y/README.md` を更新: +- Status を `Draft` → `In progress`(or `Ready`)へ +- 3つのSSOT(10/20/30)の役割を “1段落ずつ” 明文化 +- Phase 29y.1(pilot 実装)が既にあることを “実ファイルパス” で列挙 + +### Step 2: 10/20/30 の cross-link を揃える + +各SSOT文書で、最低限これを満たす: +- “用語” の定義(borrowed/owned, retain/release, weak identity) +- “契約” が 1箇所に書かれている(分散しない) +- 参照先のコード/スモークが実在する(リンク切れ無し) + +### Step 3: Pilot の入口を固定(実装は触らない) + +README に以下を追記して、後続が迷わないようにする: +- ABI shim: `crates/nyash_kernel/src/ffi/lifecycle.rs` +- RC insertion skeleton: `src/mir/passes/rc_insertion.rs` +- Leak report: `src/runtime/leak_tracker.rs` +- Integration smokes: `tools/smokes/v2/profiles/integration/apps/phase29y_handle_abi_{vm,llvm}.sh` +- Fixture: `apps/tests/phase29y_handle_abi.hako` + +### Step 4: “次に何を実装するか” を 3つまでに絞る + +Phase 29y は docs-first のため、次フェーズ(Phase 29x/29z など)へ切るための “実装タスク” を最大3つに絞って README に書く。 + +例: +1. RC insertion pass を no-op から最小動作へ(保持・解放の1ケースだけ) +2. ABI borrowed/owned の conformance smoke を 1本追加 +3. Observability の root categories を 1段追加(handles 以外の最小) + +--- + +## 検証 + +docs 更新後に最低限: + +```bash +git status --porcelain=v1 +``` + +任意(安心): +```bash +cargo check -p nyash-rust --lib +./tools/smokes/v2/run.sh --profile quick +``` diff --git a/docs/development/current/main/phases/phase-29y/README.md b/docs/development/current/main/phases/phase-29y/README.md index e9c8633b..9908c4f0 100644 --- a/docs/development/current/main/phases/phase-29y/README.md +++ b/docs/development/current/main/phases/phase-29y/README.md @@ -1,11 +1,12 @@ # Phase 29y (future, post self-host / docs-first): MIR lifecycle vocab freeze(RC/weak/ABI) -Status: Draft (docs-first) +Status: Ready (docs-first) Scope: self-host 後に “脱Rustランタイム(NyRT/.hako)” を進める前提で、MIR の lifecycle/RC/weak を **どこまで語彙として固定**し、どこからを **runtime ABI(NyRT)**に委譲するかを SSOT 化する。 ## Entry - 相談パケット(SSOT): `docs/development/current/main/investigations/phase-29y-mir-lifecycle-vocab-consult.md` +- 次の指示書(P0, docs-only): `docs/development/current/main/phases/phase-29y/P0-DOCS-FINALIZE-INSTRUCTIONS.md` ## Non-goals (Phase 29y ではやらない)