Files
hakorune/CURRENT_TASK.md
nyash-codex f775c0fe01 docs: Phase 131 P2 DirectValue exit reconnection complete
Update completion status for Phase 131 P2:
- CURRENT_TASK.md: Note WSL restart resolved EXDEV issue
- 10-Now.md: Add Phase 131 P2 completion entry
- phase-131/README.md: Document P1.5 and P2 deliverables

Phase 131 Status: DONE 
- loop(true) break-once executes correctly
- Exit values propagate through DirectValue mode
- VM + LLVM EXE parity verified

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-18 17:48:18 +09:00

3.3 KiB
Raw Blame History

CURRENT_TASK (moved)

Status: SSOT
Scope: Repo root の旧リンク互換。現行の入口は docs/development/current/main/10-Now.md

  • Now: docs/development/current/main/10-Now.md
  • Backlog: docs/development/current/main/30-Backlog.md

Handoff (was blocking; now unblocked)

状況

  • JoinIR/Phase 131 系Normalized shadow + DirectValue exitが進行中だが、LLVM EXE smoke が Rust のビルド段階でブロックしていた。
  • エラー: Invalid cross-device link (os error 18)cargo build.rmeta/.rlib を書き出すときに落ちる)
  • 2025-12-18: wsl --shutdown による WSL 再起動後、cargo build/LLVM build/該当 smokes が復活(下のコマンドは PASS

症状(再現コマンド)

  • cargo build -p nyash-rust
  • cargo build --release -p nyash-rust --features llvm
  • LLVM EXE smokes内部で release build するので同様に失敗)
    • bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_llvm_exe.sh
    • bash tools/smokes/v2/profiles/integration/apps/phase97_next_non_ws_llvm_exe.sh

影響しない(通るもの)

  • cargo test --lib は PASS
  • VM smokes は PASS
    • bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_vm.sh
    • bash tools/smokes/v2/profiles/integration/apps/phase130_if_only_post_if_add_vm.sh

根本原因メモ(環境)

  • WSL2 上で、O_TMPFILE で作った一時ファイルを /proc/self/fd/<n> 経由で link すると EXDEV が返る挙動を確認。
    • Rustc/cargo が内部で類似の「tmpfile → persistlink/rename」を使っている可能性が高い。
  • さらに、この環境では ~/.rustup/tmp~/.cargo が書き込み不可に見えるimmutable/perm issue の疑い)。
  • DNS も一時的に死んでおり、rustup toolchain install 等の回避策が取れない状態だった(Temporary failure in name resolution)。

対処(ユーザー側での復旧手順)

  1. WSL を完全再起動:
    • Windows 側で wsl --shutdown → その後 WSL を起動し直す
  2. 再起動後にビルドが復活しているか確認:
    • cargo build -p nyash-rust
    • cargo build --release -p nyash-rust --features llvm
  3. 復活したら、VM+LLVM EXE の最終確認integration:
    • bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_vm.sh
    • bash tools/smokes/v2/profiles/integration/apps/phase131_loop_true_break_once_llvm_exe.sh
    • bash tools/smokes/v2/profiles/integration/apps/phase97_next_non_ws_llvm_exe.sh

補足(再発時のワークアラウンド)

  • tools/build_llvm.sh は EXDEV を避けるため、TMPDIRtarget/... 配下へ寄せる(同一 FS 内での artifact finalize を狙う)。

注意(作業ツリー)

  • 現在 git status は clean ではないPhase 131 関連の変更が多数 + 未tracked docs/ファイルあり)。
    • 未tracked: docs/development/current/main/phases/phase-131/p1.5-implementation-guide.md
    • 未tracked: docs/development/current/main/phases/phase-131/p1.5-option-b-analysis.md
    • 未tracked: docs/development/current/main/phases/phase-131/p1.5-root-cause-summary.md
    • 未tracked: src/mir/control_tree/normalized_shadow/exit_reconnector.rs