Files
hakorune/CODEX_QUESTION_backup.md

103 lines
3.7 KiB
Markdown
Raw Normal View History

# Codex向け質問 - Phase 15.5後のテスト戦略
## 📋 背景
Phase 15.5でCore Box完全削除を実施し、すべてのBoxをプラグイン化しました。その結果
- ✅ nyash.tomlのパス修正完了13箇所
- ✅ プラグインは正常にロード(.soファイル20個存在
- ✅ 基本的な算術演算・制御構文は動作
- ❌ StringBox/IntegerBoxのメソッドが動作しない
## 🔍 現在の問題
### StringBoxプラグインの状況
```nyash
local s = new StringBox("Hello") # ← オブジェクト生成OKハンドル返却
print(s) # ← 空文字列toString失敗
s.length() # ← 0を返す内部データなし
s.toString() # ← 空文字列を返す
s.get() # ← 空文字列を返す
```
### 調査済み事項
1. プラグインは正常にロードplugin-testerで確認
2. nyash_plugin_invokeは実装済みlegacy v1 ABI
3. method_id衝突を修正済み0-3 → 4+に変更)
4. 通常の文字列リテラルは動作する
5. 算術演算は問題なし
### 🔬 根本原因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. **プラグインメソッド呼び出しのデバッグ方法**
```bash
# 現在の確認方法
./tools/plugin-tester/target/release/plugin-tester check --config nyash.toml
# → プラグインロードはOK、でもメソッド実行時に問題
# より詳細なデバッグ方法は?
```
## 🔄 再現手順
### 最小再現コード
```bash
# 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
```
### 実行コマンド
```bash
# プラグインロード確認
./tools/plugin-tester/target/release/plugin-tester check --config nyash.toml
# テスト実行
NYASH_ENTRY_ALLOW_TOPLEVEL_MAIN=1 ./target/release/nyash test_stringbox.nyash
```
### デバッグ情報収集
```bash
# 詳細ログ
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実装問題箇所
## 🚀 期待する回答
1. StringBoxメソッドが動作しない根本原因の特定方法
2. 効率的なテスト戦略の提案
3. プラグインメソッド呼び出しのデバッグ手法
よろしくお願いします!