## 🎉 完了項目 - ✅ plugin_box_legacy.rs削除(7.7KB、参照ゼロ確認済み) - ✅ REMOVEDコメント整理(encode.rs簡潔化) - ✅ venv削除(143MB節約、.gitignoreは既存) - ✅ llvm_legacyスタブ化(8KB、compile_error!による安全化) ## 🏆 成果 - **リポジトリサイズ改善**: 151MB削減 - **コード整理**: レガシーコード安全にアーカイブ - **プラグインファースト**: StrictPluginFirst継続動作 ## ✅ 検証完了 - cargo build --release --features llvm (警告のみ、エラーなし) - LLVMハーネス実行: print出力正常 - プラグイン動作: StringBox等正常動作 codex先生の戦略に従った安全な段階的削除を実行 Co-Authored-By: codex <noreply@anthropic.com>
3.7 KiB
3.7 KiB
Codex向け質問 - Phase 15.5後のテスト戦略
📋 背景
Phase 15.5でCore Box完全削除を実施し、すべてのBoxをプラグイン化しました。その結果:
- ✅ nyash.tomlのパス修正完了(13箇所)
- ✅ プラグインは正常にロード(.soファイル20個存在)
- ✅ 基本的な算術演算・制御構文は動作
- ❌ StringBox/IntegerBoxのメソッドが動作しない
🔍 現在の問題
StringBoxプラグインの状況
local s = new StringBox("Hello") # ← オブジェクト生成OK(ハンドル返却)
print(s) # ← 空文字列(toString失敗)
s.length() # ← 0を返す(内部データなし)
s.toString() # ← 空文字列を返す
s.get() # ← 空文字列を返す
調査済み事項
- プラグインは正常にロード(plugin-testerで確認)
- nyash_plugin_invokeは実装済み(legacy v1 ABI)
- method_id衝突を修正済み(0-3 → 4+に変更)
- 通常の文字列リテラルは動作する
- 算術演算は問題なし
🔬 根本原因(Codex調査結果)
TypeBox v2のresolveブランチが欠落している
birthメソッドの解決パスが未実装toStringメソッドの解決パスが未実装- プラグインメソッドは呼ばれるが、結果の処理に問題
🎯 質問
1. StringBoxメソッドが動作しない原因は?
Phase 15.5でCore Boxを削除した影響で、プラグイン側の実装が不完全な可能性があります。
- プラグインのnyash_plugin_invoke実装を確認すべき箇所は?
- MIRビルダー側でプラグインメソッド呼び出しに特別な処理が必要?
2. テスト戦略の方向性
現状でStringBox/IntegerBoxが動作しない中で:
- A案: プラグインメソッド修正を優先
- B案: 基本機能(算術・制御)のテストを先に充実
- C案: 別のBoxプラグイン(FileBox等)でテスト
どの方向性が効率的でしょうか?
3. プラグインメソッド呼び出しのデバッグ方法
# 現在の確認方法
./tools/plugin-tester/target/release/plugin-tester check --config nyash.toml
# → プラグインロードはOK、でもメソッド実行時に問題
# より詳細なデバッグ方法は?
🔄 再現手順
最小再現コード
# test_stringbox.nyash
local s = new StringBox("Hello World")
print("StringBox created")
print(s) # 期待: "Hello World", 実際: ""
local len = s.length()
print("Length: " + len) # 期待: 11, 実際: 0
実行コマンド
# プラグインロード確認
./tools/plugin-tester/target/release/plugin-tester check --config nyash.toml
# テスト実行
NYASH_ENTRY_ALLOW_TOPLEVEL_MAIN=1 ./target/release/nyash test_stringbox.nyash
デバッグ情報収集
# 詳細ログ
NYASH_CLI_VERBOSE=1 ./target/release/nyash test_stringbox.nyash
# MIRダンプ確認
./target/release/nyash --dump-mir test_stringbox.nyash
📁 関連ファイル
nyash.toml- プラグイン設定(method_id修正済み)plugins/nyash-string-plugin/src/lib.rs- StringBoxプラグイン実装tools/smokes/v2/- 新スモークテストシステムsrc/box_factory/plugin.rs- プラグインロード実装src/mir/builder/builder_calls.rs- TypeBox v2 resolve実装(問題箇所)
🚀 期待する回答
- StringBoxメソッドが動作しない根本原因の特定方法
- 効率的なテスト戦略の提案
- プラグインメソッド呼び出しのデバッグ手法
よろしくお願いします!