feat: スモークテストv2実装&Phase 15.5後のプラグイン対応

Phase 15.5 Core Box削除後の新テストシステム構築:

## 実装内容
- スモークテストv2システム完全実装(3段階プロファイル)
- 共通ライブラリ(test_runner/plugin_manager/result_checker/preflight)
- インタープリター層完全削除(約350行)
- PyVM重要インフラ特化保持戦略(JSON v0ブリッジ専用)
- nyash.tomlパス修正(13箇所、プラグイン正常ロード確認)

## 動作確認済み
- 基本算術演算(+, -, *, /)
- 制御構文(if, loop, break, continue)
- 変数代入とスコープ
- プラグインロード(20個の.soファイル)

## 既知の問題
- StringBox/IntegerBoxメソッドが動作しない
  - オブジェクト生成は成功するがメソッド呼び出しでエラー
  - Phase 15.5影響でプラグイン実装が不完全な可能性

## ドキュメント
- docs/development/testing/smoke-tests-v2.md 作成
- docs/reference/pyvm-usage-guidelines.md 作成
- CODEX_QUESTION.md(Codex相談用)作成

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Selfhosting Dev
2025-09-24 09:30:42 +09:00
parent 8bbc30509c
commit 73b90a7c28
55 changed files with 3977 additions and 679 deletions

View File

@ -403,25 +403,10 @@ impl MirBuilder {
box_type: class.clone(),
args: arg_values.clone(),
})?;
// Annotate primitive boxes
match class.as_str() {
"IntegerBox" => {
self.value_types.insert(dst, super::MirType::Integer);
}
"FloatBox" => {
self.value_types.insert(dst, super::MirType::Float);
}
"BoolBox" => {
self.value_types.insert(dst, super::MirType::Bool);
}
"StringBox" => {
self.value_types.insert(dst, super::MirType::String);
}
other => {
self.value_types
.insert(dst, super::MirType::Box(other.to_string()));
}
}
// Phase 15.5: Unified box type handling
// All boxes (including former core boxes) are treated uniformly as Box types
self.value_types
.insert(dst, super::MirType::Box(class.clone()));
// Record origin for optimization: dst was created by NewBox of class
self.value_origin_newbox.insert(dst, class.clone());