Remove legacy hardcoded 'sum' carrier validation that was blocking array_filter patterns with different accumulator names (e.g., 'out'). Before: Pattern3 required carrier named 'sum' to exist After: Pattern3 uses carrier_info generically (any carrier name works) Test results: - phase49_joinir_array_filter_smoke: PASS ✅ - phase49_joinir_array_filter_fallback: PASS ✅ - phase49_joinir_array_filter_ab_comparison: PASS ✅ - Full suite: 909/909 PASS, 0 FAIL Also: Archive old roadmap documentation (67k lines moved to docs/archive/) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
[Archived] 旧10.1系ドキュメントです。最新は ../INDEX.md を参照してください。
Phase 10.1f - テストとベンチマーク
🎯 このフェーズの目的
Differential Testingでバグを発見し、性能向上を検証する。
🧪 Differential Testing戦略
1. テストフレームワーク
pub fn differential_test(code: &str) -> TestResult {
// CPythonで実行(オラクル)
let python_result = capture_python_execution(code)?;
// Nyashで実行
let nyash_result = execute_with_pythonparser(code)?;
// 結果比較
compare_results(python_result, nyash_result)
}
2. 比較項目
- 標準出力 - print文の結果
- 戻り値 - 関数の返す値
- 例外 - エラーメッセージ(正規化後)
- 副作用 - グローバル変数の変更等
3. テストコーパス
test_corpus/
├── basic/ # 基本構文テスト
├── stdlib/ # 標準ライブラリから抜粋
├── pypi_top100/ # 人気ライブラリから抜粋
└── edge_cases/ # エッジケース集
📊 ベンチマーク
1. 性能測定対象
# 数値計算ベンチマーク
def mandelbrot(max_iter=100):
# フラクタル計算
pass
# ループベンチマーク
def sum_of_primes(n):
# 素数の和
pass
# 再帰ベンチマーク
def ackermann(m, n):
# アッカーマン関数
pass
2. 測定項目
- 実行時間 - CPython vs Nyash
- メモリ使用量 - 最大/平均
- コンパイル時間 - AST変換時間
- フォールバック率 - 関数別統計
🐛 バグ発見と報告
発見されたバグの例
[BUG-001] for/else semantics mismatch
Python: else executed when no break
Nyash: else never executed
Fixed in: commit abc123
[BUG-002] Division operator difference
Python: 5/2 = 2.5 (float)
Nyash: 5/2 = 2 (integer)
Fixed in: commit def456
✅ 完了条件
- Differential Testingフレームワークが動作する
- 基本的なテストコーパスが準備されている
- 10個以上のバグを発見・修正
- ベンチマークで2倍以上の高速化を確認
- CI/CDパイプラインに統合されている
📈 成功の測定
- カバレッジ率: 70%以上の関数がコンパイル
- 性能向上: 純Pythonループで2-10倍
- バグ発見数: Phase毎に10件以上
- テスト成功率: 95%以上
⏭️ 次のフェーズ
→ Phase 10.1g (ドキュメント作成)