feat(phase110): FileHandleBox実装(ハンドルベース複数回アクセス)
Phase 110 完全実装完了: - FileHandleBox struct で open → read/write → close の複数回アクセスをサポート - 各インスタンスが独立した Ring0FsFileIo を保持 - Fail-Fast 原則:二重 open、close後アクセス、NoFsプロファイル全て即座にエラー - RuntimeProfile 対応:Default で使用可能、NoFs で禁止 実装ファイル: - src/boxes/file/handle_box.rs (新規, 450行) - src/boxes/file/mod.rs (修正, export追加) テスト: 7/7 PASS ✅ - test_filehandlebox_basic_write_read - test_filehandlebox_double_open_error - test_filehandlebox_closed_access_error - test_filehandlebox_write_wrong_mode - test_filehandlebox_multiple_writes - test_filehandlebox_unsupported_mode - test_filehandlebox_independent_instances ドキュメント更新: - core_boxes_design.md (Section 16 追加) - ring0-inventory.md (Phase 110完了) - CURRENT_TASK.md (Phase 110完了セクション) 設計原則: - FileBox: ワンショット I/O(open/close隠蔽) - FileHandleBox: ハンドルベース I/O(複数回アクセス対応) - Ring0FsFileIo を内部で再利用 次フェーズ: Phase 111(append mode + metadata) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@ -579,13 +579,18 @@ Phase 106–108 では FileBox provider_lock / Ring0FsFileIo / write/write_all
|
||||
|
||||
今後の候補フェーズ(優先度の高い順):
|
||||
|
||||
- **Phase 109: runtime profiles(default/no-fs)**
|
||||
- ✅ **Phase 109: runtime profiles(default/no-fs)** (COMPLETED)
|
||||
- `NYASH_PROFILE={default|no-fs}` などのプロファイル導入
|
||||
- default では FileBox 必須、no-fs では FileBox provider 未登録(エラー文字列で通知)
|
||||
- **Phase 110: FileHandleBox**
|
||||
- ✅ **Phase 110: FileHandleBox** (COMPLETED - 2025-12-03)
|
||||
- FileBox を「1ファイル専用」に保ちつつ、複数ファイル同時アクセスは FileHandleBox 側に切り出す
|
||||
- Ring0FsFileIo を再利用してハンドル単位の管理を行う
|
||||
- **Phase 111: Fs metadata 拡張**
|
||||
- ハンドルベース複数回アクセス I/O 完全実装
|
||||
- 実装: `src/boxes/file/handle_box.rs` (7テスト全PASS)
|
||||
- API: open(path, mode) → read/write → close()
|
||||
- プロファイル対応: Default ✅、NoFs ❌
|
||||
- **Phase 111: Fs metadata 拡張 + append mode**
|
||||
- FileHandleBox に append mode ("a") を追加
|
||||
- `exists/metadata/canonicalize` を FileIo / FileBox 側にきちんとエクスポート
|
||||
- Ring0.FsApi の stat 情報を Nyash 側から扱えるようにする
|
||||
|
||||
|
||||
Reference in New Issue
Block a user