|
|
8995fd151d
|
refactor(phase96.5): use文整理とコメント更新 - コード可読性向上
Phase 96.5完了 - コード整理とメンテナンス性向上
### 変更内容
- ✅ use文をトップレベルに集約(10行削除)
- ✅ コメント更新(Phase 96 → Phase 97)
- ✅ テスト9/9 PASS(100%)
### use文整理
**Before**: 各メソッド内で重複import
```rust
fn get(&self, arr: &dyn NyashBox, index: i64) -> Option<Box<dyn NyashBox>> {
use crate::boxes::array::ArrayBox; // 重複
use crate::box_trait::IntegerBox; // 重複
// ...
}
```
**After**: トップレベルで一度だけimport
```rust
// トップレベル
use crate::boxes::array::ArrayBox;
use crate::boxes::map_box::MapBox;
use crate::box_trait::{IntegerBox, StringBox, BoolBox};
fn get(&self, arr: &dyn NyashBox, index: i64) -> Option<Box<dyn NyashBox>> {
// use不要!スッキリ!
}
```
### コメント更新
- IntegerBoxAdapter: "Phase 96 以降で実装" → "Phase 97 で実装予定(純粋関数型として実装)"
- BoolBoxAdapter: "Phase 96 以降で実装" → "Phase 97 で実装予定(純粋関数型として実装)"
### 改善効果
- ✅ 可読性向上(use文の重複削除)
- ✅ メンテナンス性向上(import一箇所集約)
- ✅ コメント整合性(実際のPhase計画と一致)
### 削減統計
- use文: 10行削除
- コメント: 2箇所更新
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-03 10:30:26 +09:00 |
|
|
|
81a5a04eb7
|
feat(phase96): ArrayService/MapService実装完了 - downcastパターン確立
Phase 96完全達成 - Ring1-Core層の主要Service実装完成
### 実装成果
- ✅ ArrayService trait定義(len/get/set/push)
- ✅ MapService trait定義(size/has/get/set)
- ✅ ArrayBoxAdapter/MapBoxAdapter unit struct化
- ✅ downcastパターン実装(複数インスタンス対応)
- ✅ #[allow(dead_code)] 4→2箇所(2削除)
- ✅ テスト53/53 PASS(100%)
### 変更ファイル
- src/runtime/core_services.rs: ArrayService/MapService実装(+134行)
- src/runtime/plugin_host.rs: 初期化ロジック更新(+8/-12行)
- docs/development/current/main/core_boxes_design.md: Section 13追加(+228行)
### 3つのAdapterパターン確立
1. **Ring0直結型**(ConsoleService): OS API thin wrapper
2. **純粋関数型**(StringService): Box状態不要
3. **downcast型**(ArrayService/MapService)⭐ NEW
- unit struct + downcast_ref パターン
- 複数インスタンス対応
- Rust idiomatic API(Option/Result)
### API設計
- ArrayService: Rust型(i64)引数、内部でBox変換
- MapService: Rust型(&str)引数、内部でBox変換
- 戻り値: Option/Result で型安全
### 技術的成果
- 型安全性向上(downcast_ref によるコンパイル時検証)
- コード簡略化(#[allow(dead_code)] 2削除)
- 設計明確化(3パターンの使い分け確立)
### 削減統計
- #[allow(dead_code)]: 2箇所削除
- innerフィールド: 2個削除
- Box依存: 2箇所削除
### 次のステップ
Phase 96.5: use文整理とコメント更新
Phase 97: IntegerService/BoolService実装(#[allow(dead_code)] 完全削除)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-03 10:27:39 +09:00 |
|
|
|
1108a61533
|
feat(phase95.5): Ring0統合完了 - Adapter整理とコード簡略化
Phase 95.5完全達成 - ConsoleService/StringService Ring0直結化
### 実装成果
- ✅ ConsoleBoxAdapter Ring0直結(println → log.info, print → io.stdout_write)
- ✅ StringBoxAdapter 純粋関数化(Box状態不要)
- ✅ #[allow(dead_code)] 6→4箇所削減(2削除)
- ✅ PluginHost初期化簡略化(存在確認のみ)
- ✅ テスト14/14 PASS(100%)
### 変更ファイル
- src/runtime/core_services.rs: ConsoleBoxAdapter/StringBoxAdapter unit struct化
- src/runtime/plugin_host.rs: 初期化ロジック簡略化(create_box → has_type)
- docs/development/current/main/core_boxes_design.md: Section 12追加
- CURRENT_TASK.md: Phase 95.5成果記録
### 設計パターン確立
**2つのAdapterパターン**:
1. Ring0直結型(ConsoleService): OS API thin wrapper
2. 純粋関数型(StringService): Box状態不要
**将来実装方針**:
- ArrayService/MapService: 状態管理必要 → Box保持
- IntegerService/BoolService: 純粋関数 → Box不要
### 技術的成果
- Ring0統合完成(ログ経路統一: Ring0 → Ring1-Core → 実行パス)
- コード簡略化(不要なinnerフィールド削除)
- 設計明確化(Adapterの役割を2パターンに整理)
- テスト容易性向上(Ring0モック可能)
### 削減統計
- #[allow(dead_code)]: 2箇所削除
- innerフィールド: 2個削除
- Box依存: 2箇所削除
### 次のステップ
Phase 96: ArrayService/MapService実装(downcastパターン)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-03 10:15:23 +09:00 |
|
|
|
e74694d08b
|
feat(phase95): CoreServices実用化 - Console/String Service実装完了
Phase 95完全達成 - Ring1-Core層の実際のService実装
### 実装成果
- ✅ ConsoleService::println/print 実装
- ✅ StringService::len 実装(UTF-8文字数対応)
- ✅ global accessor 実装(get_core_plugin_host)
- ✅ 代表パス切り替え(selfhost.rs)
- ✅ テスト13/13 PASS(100%)
### 変更ファイル
- src/runtime/core_services.rs: Service API定義、Adapter実装、テスト追加(+79行)
- src/runtime/mod.rs: global accessor実装(+18行)
- src/runtime/plugin_host.rs: Debug impl追加(+3行)
- src/runner/selfhost.rs: ConsoleService経由に切り替え(+5行)
- docs/development/current/main/core_boxes_design.md: Phase 95文書化(+118行)
### 技術的成果
- Ring0 → Ring1-Core → 実行パス の三層構造確立
- 型安全なService経由アクセス実現
- UTF-8完全対応(文字数カウント)
- global accessorパターン統一(Ring0と同じOnceLock)
### Bug修正
- PluginHost Debug impl追加
- PluginHost.optional型修正(Send + Sync追加)
- CoreServices Debug impl実装
### 次のステップ
Phase 95.5: Ring0統合とAdapter整理(#[allow(dead_code)]削除)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-03 09:57:38 +09:00 |
|
|
|
f4144a22a6
|
feat(phase94): Box→Service conversion with actual registry integration
Phase 94完全達成 - UnifiedBoxRegistryから実際のBoxを取得してServiceに変換
### 実装成果
- ✅ 6個のAdapter実装(StringBox/Integer/Bool/Array/Map/Console)
- ✅ Dummy実装完全削除(38行削減)
- ✅ Fail-Fast原則徹底(フォールバック削除)
- ✅ テスト7/7 PASS(100%)
### 変更ファイル
- src/runtime/core_services.rs: 6個のAdapter実装(+93行)
- src/runtime/plugin_host.rs: 実際のBox取得ロジック(+54行)、Dummy削除(-17行)
- src/runtime/mod.rs: フォールバック削除(-8行)
### 技術的成果
- Box<dyn NyashBox>を直接保持(型安全性確保)
- registry.create_box()で実際のBoxインスタンス取得
- BuiltinBoxFactory登録でcore_required Boxes提供
### 次のステップ
Phase 95: Service traitメソッド実装(Console/String/Array/Map)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-03 09:14:49 +09:00 |
|
|
|
b3de4cac4b
|
feat(phase93): with_core_from_registry implementation complete
Phase 93 完了: UnifiedBoxRegistry 統合実装 & 起動パス統合
**実装内容**:
- with_core_from_registry() 実装
- UnifiedBoxRegistry.has_type() で core Box の存在確認
- 不足時は CoreInitError::MissingService を返す
- ダミー Service 実装で CoreServices を構築
- ダミー Service 実装を pub に
- DummyStringService, DummyIntegerService 等を公開
- Phase 94 の実変換までの橋渡し
- CoreServices::dummy() ヘルパー追加
- フォールバック用ダミー実装
- initialize_runtime() 実装(環境変数制御)
- NYASH_USE_PLUGIN_HOST=1 で PluginHost 有効化
- 環境変数なしで従来通り動作(後方互換性)
- selfhost に PluginHost 初期化追加
- CoreInitError 発生時は fail-fast
- 既存ロジックは変更なし
**Fail-Fast 設計**:
- 起動時に core Box 不足を即座に検出
- CoreInitError で明示的なエラーメッセージ
- デバッグ容易(ランタイムエラーではなく起動時エラー)
**テスト結果**:
- test_with_core_from_registry_missing_box 追加
- 7件全て成功
- ビルド成功(1分4秒)
- 526 passed(既存36失敗は Phase 93 と無関係)
**動作確認**:
- 環境変数なし: 従来通り動作 ✅
- NYASH_USE_PLUGIN_HOST=1: PluginHost 初期化成功 ✅
- selfhost: fail-fast 動作確認済み ✅
**ドキュメント更新**:
- Section 10 追加(77行)
- 段階的展開戦略、Fail-Fast 設計を文書化
**次のステップ**: Phase 94 (実際の Box → Service 変換)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-03 08:42:45 +09:00 |
|
|
|
2f54e64d27
|
feat(phase92): UnifiedBoxRegistry integration roadmap complete
Phase 92 完了: UnifiedBoxRegistry 統合の導線作り
**実装内容**:
- CoreServices::required_ids() 実装
- Phase 87 CoreBoxId の core_required (6個) を返す
- is_core_required() との整合性を型レベルで保証
- CoreInitError enum 追加
- MissingService, RegistryEmpty, InvalidServiceType
- Display + std::error::Error trait 実装
- PluginHost::with_core_from_registry() skeleton
- Phase 93 で実装予定(todo!() でプレースホルダー)
- initialize_runtime() 接続ポイント決定
- Ring0Context と UnifiedBoxRegistry を橋渡し
**Phase 87 整合性**:
- required_ids() が is_core_required() と完全一致
- テストで整合性を検証
**テスト結果**:
- 3件追加(全て合格)
- test_required_ids_consistency
- test_core_init_error_display
- test_with_core_from_registry_todo (should_panic)
- ビルド成功
- 既存テストに影響なし
**ドキュメント更新**:
- Section 9 追加(113行)
- ensure_initialized() 呼び出し場所決定(4箇所)
- Phase 93 実装計画明記
**次のステップ**: Phase 93 (with_core_from_registry 実装 & 起動パス統合)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-03 07:57:21 +09:00 |
|
|
|
3d253056bd
|
feat(phase91): PluginHost/CoreServices skeleton complete
Phase 91 完了: Ring1-Core 構造の明確化
**実装内容**:
- CoreServices 定義(6つの Service trait)
- StringService, IntegerService, BoolService
- ArrayService, MapService, ConsoleService
- PluginHost 構造体(Ring0 ⇔ CoreServices 橋渡し)
- NyashPlugin trait(プラグインシステム標準IF)
- PluginRegistry skeleton
**Phase 87 整合性**:
- CoreServices は core_required (6個) を完全カバー
- String, Integer, Bool, Array, Map, Console
- CoreBoxId との対応表をドキュメント化
**設計原則確立**:
- Ring1-Core 構造明確化
- core_required は必ず揃う(型レベル保証)
- Fail-Fast 設計(ensure_initialized)
- 既存影響ゼロ(新規ファイルのみ)
**テスト結果**:
- 5件追加(全て合格)
- ビルド成功
- 既存テストに影響なし
**次のステップ**: Phase 92 (UnifiedBoxRegistry との統合)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-12-03 07:43:08 +09:00 |
|