2025-12-16 23:30:39 +09:00
|
|
|
|
# CURRENT_TASK (moved)
|
2025-12-04 14:19:48 +09:00
|
|
|
|
|
2025-12-16 23:30:39 +09:00
|
|
|
|
Status: SSOT
|
|
|
|
|
|
Scope: Repo root の旧リンク互換。現行の入口は `docs/development/current/main/10-Now.md`。
|
2025-12-04 10:52:10 +09:00
|
|
|
|
|
2025-12-16 23:30:39 +09:00
|
|
|
|
- Now: `docs/development/current/main/10-Now.md`
|
|
|
|
|
|
- Backlog: `docs/development/current/main/30-Backlog.md`
|
2025-12-18 17:48:18 +09:00
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 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 → persist(link/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 を避けるため、`TMPDIR` を `target/...` 配下へ寄せる(同一 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`
|