Files
hakorune/CODEX_QUESTION_backup.md
Selfhosting Dev f0608e9bb1 feat: Phase 2.4 レガシーアーカイブ整理完了(151MB削減)
## 🎉 完了項目
-  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>
2025-09-24 14:13:15 +09:00

3.7 KiB
Raw Blame History

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()                          # ← 空文字列を返す

調査済み事項

  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. プラグインメソッド呼び出しのデバッグ方法

# 現在の確認方法
./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実装問題箇所

🚀 期待する回答

  1. StringBoxメソッドが動作しない根本原因の特定方法
  2. 効率的なテスト戦略の提案
  3. プラグインメソッド呼び出しのデバッグ手法

よろしくお願いします!