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

@ -11,7 +11,7 @@
use crate::backend::WasmBackend;
#[cfg(feature = "vm-legacy")]
use crate::backend::VM;
use crate::interpreter::NyashInterpreter;
// use crate::interpreter::NyashInterpreter; // Legacy interpreter removed
// use crate::mir::MirCompiler; // not used in Phase-15 (PyVM primary)
use crate::parser::NyashParser;
use std::fs;
@ -51,9 +51,10 @@ impl BenchmarkSuite {
// Test if file exists and is readable
if let Ok(source) = fs::read_to_string(file_path) {
// Run on all backends
if let Ok(interpreter_result) = self.run_interpreter_benchmark(name, &source) {
results.push(interpreter_result);
}
// Interpreter benchmark disabled - legacy interpreter removed
// if let Ok(interpreter_result) = self.run_interpreter_benchmark(name, &source) {
// results.push(interpreter_result);
// }
#[cfg(feature = "vm-legacy")]
if let Ok(vm_result) = self.run_vm_benchmark(name, &source) {
@ -72,12 +73,16 @@ impl BenchmarkSuite {
results
}
/// Run benchmark on interpreter backend
/// Run benchmark on interpreter backend (DISABLED - legacy interpreter removed)
#[allow(dead_code)]
fn run_interpreter_benchmark(
&self,
name: &str,
source: &str,
_name: &str,
_source: &str,
) -> Result<BenchmarkResult, Box<dyn std::error::Error>> {
Err("Interpreter benchmark disabled - legacy interpreter removed".into())
/*
let mut total_duration = 0.0;
for i in 0..self.iterations {
@ -103,6 +108,7 @@ impl BenchmarkSuite {
iterations: self.iterations,
avg_duration_ms: total_duration / (self.iterations as f64),
})
*/
}
/// Run benchmark on VM backend