Phase 4-3c-3 Complete: WASM host functions now correctly output string content ## Changes: - Fixed MIR builder to handle StringBox with string literal arguments - Special case for to generate proper string constants - Removed debug output after successful verification - WASM now correctly outputs "Hello MIR!" instead of "StringBox" ## Test Results: - MIR generation: ✅ Generates correctly - WASM compilation: ✅ String data correctly placed at offset 4096 - WASM execution: ✅ Outputs "Hello MIR\!" as expected ## Technical Details: - Modified build_new_expression() to detect StringBox with literal arguments - Generates Const instruction with actual string content - Host function reads StringBox memory layout correctly This completes the WASM string output functionality for Phase 4. 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
58 lines
1.8 KiB
Bash
58 lines
1.8 KiB
Bash
#!/bin/bash
|
||
# FileBox パフォーマンス比較
|
||
|
||
echo "🔬 FileBox 静的版 vs 動的版 パフォーマンス比較"
|
||
echo "============================================="
|
||
echo "テスト内容: 100個のファイル作成・書き込み・読み込み・存在確認"
|
||
echo ""
|
||
|
||
# クリーンアップ
|
||
rm -f perf_test_*.txt
|
||
|
||
# 動的版(現在)
|
||
echo "1️⃣ 動的版 (dynamic-file feature 有効)"
|
||
echo -n " 実行時間: "
|
||
{ time RUST_LOG=error ./target/release/nyash local_tests/benchmark_filebox_simple.nyash > /dev/null 2>&1; } 2>&1 | grep real | awk '{print $2}'
|
||
rm -f perf_test_*.txt
|
||
|
||
# 静的版ビルド
|
||
echo ""
|
||
echo " 静的版をビルド中..."
|
||
cargo build --release --no-default-features -j32 > /dev/null 2>&1
|
||
|
||
# 静的版
|
||
echo ""
|
||
echo "2️⃣ 静的版 (FileBox組み込み)"
|
||
echo -n " 実行時間: "
|
||
{ time RUST_LOG=error ./target/release/nyash local_tests/benchmark_filebox_simple.nyash > /dev/null 2>&1; } 2>&1 | grep real | awk '{print $2}'
|
||
rm -f perf_test_*.txt
|
||
|
||
# 複数回測定
|
||
echo ""
|
||
echo "📊 5回測定の平均:"
|
||
echo ""
|
||
echo "動的版:"
|
||
for i in {1..5}; do
|
||
echo -n " Run $i: "
|
||
{ time RUST_LOG=error ./target/release/nyash local_tests/benchmark_filebox_simple.nyash > /dev/null 2>&1; } 2>&1 | grep real | awk '{print $2}'
|
||
rm -f perf_test_*.txt
|
||
done
|
||
|
||
# 静的版に切り替え
|
||
cargo build --release --no-default-features -j32 > /dev/null 2>&1
|
||
|
||
echo ""
|
||
echo "静的版:"
|
||
for i in {1..5}; do
|
||
echo -n " Run $i: "
|
||
{ time RUST_LOG=error ./target/release/nyash local_tests/benchmark_filebox_simple.nyash > /dev/null 2>&1; } 2>&1 | grep real | awk '{print $2}'
|
||
rm -f perf_test_*.txt
|
||
done
|
||
|
||
# 動的版に戻す
|
||
echo ""
|
||
echo "元の動的版に戻しています..."
|
||
cargo build --release -j32 > /dev/null 2>&1
|
||
|
||
echo ""
|
||
echo "✅ 測定完了!" |