diff --git a/.github/workflows/fast-smoke.yml b/.github/workflows/fast-smoke.yml index cac57f2f..e054a4a5 100644 --- a/.github/workflows/fast-smoke.yml +++ b/.github/workflows/fast-smoke.yml @@ -43,21 +43,21 @@ jobs: - name: EXE smoke (ternary_basic -> 10) run: | mkdir -p tmp - ./target/release/nyash --emit-mir-json tmp/tb.json --backend mir apps/tests/ternary_basic.nyash + ./target/release/nyash --emit-mir-json tmp/tb.json --backend mir apps/tests/ternary_basic.hako ./target/release/ny-llvmc --in tmp/tb.json --emit exe --nyrt target/release --out tmp/tb set +e; ./tmp/tb >/dev/null 2>&1; CODE=$?; set -e echo "exit=$CODE"; test "$CODE" -eq 10 - name: EXE smoke (ternary_nested -> 50) run: | - ./target/release/nyash --emit-mir-json tmp/tn.json --backend mir apps/tests/ternary_nested.nyash + ./target/release/nyash --emit-mir-json tmp/tn.json --backend mir apps/tests/ternary_nested.hako ./target/release/ny-llvmc --in tmp/tn.json --emit exe --nyrt target/release --out tmp/tn set +e; ./tmp/tn >/dev/null 2>&1; CODE=$?; set -e echo "exit=$CODE"; test "$CODE" -eq 50 - name: EXE smoke (peek_expr_block -> 1) run: | - ./target/release/nyash --emit-mir-json tmp/pb.json --backend mir apps/tests/peek_expr_block.nyash + ./target/release/nyash --emit-mir-json tmp/pb.json --backend mir apps/tests/peek_expr_block.hako ./target/release/ny-llvmc --in tmp/pb.json --emit exe --nyrt target/release --out tmp/pb set +e; ./tmp/pb >/dev/null 2>&1; CODE=$?; set -e echo "exit=$CODE"; test "$CODE" -eq 1 diff --git a/.github/workflows/min-gate.yml b/.github/workflows/min-gate.yml index f95feb6a..b609c0df 100644 --- a/.github/workflows/min-gate.yml +++ b/.github/workflows/min-gate.yml @@ -203,9 +203,9 @@ jobs: NYASH_MACRO_BOX: "1" NYASH_MACRO_BOX_NY: "1" NYASH_MACRO_BOX_CHILD_RUNNER: "0" - NYASH_MACRO_BOX_NY_PATHS: apps/macros/examples/upper_string_macro.nyash + NYASH_MACRO_BOX_NY_PATHS: apps/macros/examples/upper_string_macro.hako run: | set -euo pipefail - out=$(./target/release/nyash --macro-preexpand --backend vm apps/tests/macro_golden_upper_string.nyash 2>&1) + out=$(./target/release/nyash --macro-preexpand --backend vm apps/tests/macro_golden_upper_string.hako 2>&1) echo "$out" echo "$out" | grep -q "HELLO" diff --git a/.gitignore b/.gitignore index 0d2949b5..eb111af1 100644 --- a/.gitignore +++ b/.gitignore @@ -71,7 +71,7 @@ nyash-rust/ /*_error.txt # 一時的なテストファイル(ルートに置かない!) -/test_*.nyash +/test_*.hako # HTTP/ネットワークテストログ /http_test*.log diff --git a/AGENTS.md b/AGENTS.md index c19fa391..c45910fc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -188,8 +188,8 @@ fn check_layer_boundary() { - ここは Nyash の Cranelift JIT/AOT 開発用ブランチだよ。JIT 経路の実装・検証・計測が主対象だよ。 - ビルド(JIT有効): `cargo build --release --features cranelift-jit` - 実行モード: - - CLI Cranelift: `./target/release/nyash --backend cranelift apps/APP/main.nyash` - - JITダイレクト(VM非介入): `./target/release/nyash --jit-direct apps/smokes/jit_aot_string_min.nyash` + - CLI Cranelift: `./target/release/nyash --backend cranelift apps/APP/main.hako` + - JITダイレクト(VM非介入): `./target/release/nyash --jit-direct apps/smokes/jit_aot_string_min.hako` - デバッグ環境変数(例): - `NYASH_JIT_EXEC=1`(JIT実行許可) - `NYASH_JIT_STATS=1`(コンパイル/実行統計) @@ -206,16 +206,16 @@ fn check_layer_boundary() { **PyVM 主経路(Phase‑15 方針)** - 主経路: Python/llvmlite + PyVM を標準の実行/検証経路として扱うよ。Rust VM/JIT は補助(保守/比較/プラグイン検証)。 - 使い分け: - - PyVM(推奨・日常確認): `NYASH_VM_USE_PY=1 ./target/release/nyash --backend vm apps/APP/main.nyash` - - llvmlite ハーネス: `NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/APP/main.nyash` - - パリティ検証: `tools/parity.sh --lhs pyvm --rhs llvmlite apps/tests/CASE.nyash` + - PyVM(推奨・日常確認): `NYASH_VM_USE_PY=1 ./target/release/nyash --backend vm apps/APP/main.hako` + - llvmlite ハーネス: `NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/APP/main.hako` + - パリティ検証: `tools/parity.sh --lhs pyvm --rhs llvmlite apps/tests/CASE.hako` - 自己ホスト(Ny→JSON v0): `NYASH_USE_NY_COMPILER=1` は emit‑only 既定で運用(`NYASH_NY_COMPILER_EMIT_ONLY=1`)。子プロセスは Quiet pipe(`NYASH_JSON_ONLY=1`)。 - 子プロセス安全策: タイムアウト `NYASH_NY_COMPILER_TIMEOUT_MS`(既定 2000ms)。違反時は kill→フォールバック(無限ループ抑止)。 - スモーク(代表): - PyVM Stage‑2: `tools/pyvm_stage2_smoke.sh` - PHI/Stage‑2: `tools/ny_parser_stage2_phi_smoke.sh` - Bridge/Stage‑2: `tools/ny_stage2_bridge_smoke.sh` - - 文字列/dirname など: `apps/tests/*.nyash` を PyVM で都度確認 + - 文字列/dirname など: `apps/tests/*.hako` を PyVM で都度確認 - 注意: Phase‑15 では VM/JIT は MIR14 以降の更新を最小とし、PyVM/llvmlite のパリティを最優先で維持するよ。 ## Codex Async Workflow (Background Jobs) @@ -260,7 +260,7 @@ Notes - `NYASH_SELFHOST_READ_TMP=1` → 子に `-- --read-tmp`(`tmp/ny_parser_input.ny` を FileBox で読み込む。CIでは未使用) - `NYASH_NY_COMPILER_STAGE3=1` → 子に `-- --stage3`(Stage‑3 構文受理: Break/Continue/Throw/Try) - `NYASH_NY_COMPILER_CHILD_ARGS` → スペース区切りで子にそのまま渡す -- 子側(apps/selfhost-compiler/compiler.nyash)は `--read-tmp` を受理して `tmp/ny_parser_input.ny` を読む(plugins 必要)。 +- 子側(apps/selfhost-compiler/compiler.hako)は `--read-tmp` を受理して `tmp/ny_parser_input.ny` を読む(plugins 必要)。 ## PyVM Scope & Policy(Stage‑2 開発用の範囲) - 目的: PyVM は「開発用の参照実行器」だよ。JSON v0 → MIR 実行の意味論確認と llvmlite とのパリティ監視に使う(プロダクション最適化はしない)。 @@ -277,7 +277,7 @@ Notes - 非対象(やらない): プラグイン動的ロード/ABI、GC/スケジューラ、例外/非同期、大きな I/O/OS 依存、性能最適化。 - 運用ポリシー: 仕様差は llvmlite に合わせて PyVM を調整。未知の extern/boxcall は安全に `None`/no-op。既定は静音、`NYASH_CLI_VERBOSE=1` で詳細。 - 実行とスモーク: - - PyVM 実行: `NYASH_VM_USE_PY=1 ./target/release/nyash --backend vm apps/tests/CASE.nyash` + - PyVM 実行: `NYASH_VM_USE_PY=1 ./target/release/nyash --backend vm apps/tests/CASE.hako` - 代表スクリプト: `tools/pyvm_stage2_smoke.sh`, `tools/pyvm_collections_smoke.sh`, `tools/pyvm_stage2_dot_chain_smoke.sh` - Bridge 短絡(RHS スキップ): `tools/ny_stage2_shortcircuit_smoke.sh` - CI: `.github/workflows/pyvm-smoke.yml` を常時緑に維持。LLVM18 がある環境では `tools/parity.sh --lhs pyvm --rhs llvmlite` を任意ジョブで回す。 @@ -339,9 +339,9 @@ Notes - Build (LLVM AOT / harness-first): - `cargo build --release -p nyash-llvm-compiler` (ny-llvmc builder) - `cargo build --release --features llvm` - - Run via harness: `NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/APP/main.nyash` -- Quick VM run: `./target/release/nyash --backend vm apps/APP/main.nyash` -- Emit + link (LLVM): `tools/build_llvm.sh apps/APP/main.nyash -o app` + - Run via harness: `NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/APP/main.hako` +- Quick VM run: `./target/release/nyash --backend vm apps/APP/main.hako` +- Emit + link (LLVM): `tools/build_llvm.sh apps/APP/main.hako -o app` - Smokes (v2): - Single entry: `tools/smokes/v2/run.sh --profile quick` - Profiles: `quick|integration|full`(`--filter ` で絞り込み) @@ -391,7 +391,7 @@ Notes - using/namespace の解決 - using は Runner 側で解決(Phase‑15)。`nyash.toml` の `[using]`(paths / / aliases)を参照。 - - include は廃止。`using "./path/file.nyash" as Name` を推奨。 + - include は廃止。`using "./path/file.hako" as Name` を推奨。 - スモーク/検証の方針 - 既定の開発確認は Rust VM ラインで行い、LLVM ラインは AOT/ハーネスの代表スモークでカバー。 @@ -399,9 +399,9 @@ Notes - PyVM は参照実行器(保守最小)。言語機能の確認や LLVM ハーネスのパリティ検証が主目的で、既定経路では使わない。 - 実行例(目安) - - Rust VM(既定): `./target/release/nyash apps/APP/main.nyash` - - LLVM Harness: `NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/APP/main.nyash` - - AOT ビルド: `tools/build_llvm.sh apps/APP/main.nyash -o app` + - Rust VM(既定): `./target/release/nyash apps/APP/main.hako` + - LLVM Harness: `NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/APP/main.hako` + - AOT ビルド: `tools/build_llvm.sh apps/APP/main.hako -o app` - セルフホスティング指針 - 本方針(Rust VM=主、LLVM=AOT)はそのまま自己ホストの軸にする。 @@ -447,7 +447,7 @@ Flags - How to run harness - Build: `cargo build --release -p nyash-llvm-compiler && cargo build --release --features llvm` - - Run: `NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/tests/peek_expr_block.nyash` + - Run: `NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/tests/peek_expr_block.hako` - IR dump: `NYASH_LLVM_DUMP_IR=tmp/nyash_harness.ll ...` - PHI trace: `NYASH_LLVM_TRACE_PHI=1 ...` (JSON lines output via `phi_wiring.common.trace`) @@ -475,7 +475,7 @@ Flags ## Testing Guidelines - Rust tests: `cargo test` (add targeted unit tests near code). - Smoke scripts validate end‑to‑end AOT/JIT (`tools/llvm_smoke.sh`). -- Test naming: prefer `*_test.rs` for Rust and descriptive `.nyash` files under `apps/` or `tests/`. +- Test naming: prefer `*_test.rs` for Rust and descriptive `.hako` files under `apps/` or `tests/`. - For LLVM tests, ensure Python llvmlite is available and `ny-llvmc` is built. - Build (harness): `cargo build --release -p nyash-llvm-compiler && cargo build --release --features llvm` @@ -504,5 +504,5 @@ Flags - `NYASH_LLVM_PREPASS_LOOP=1` – enable simple while prepass (loopform synthesis). - `NYASH_CLI_VERBOSE=1` – extra trace from builder. - Smokes: - - Empty PHI guard: `tools/test/smoke/llvm/ir_phi_empty_check.sh ` + - Empty PHI guard: `tools/test/smoke/llvm/ir_phi_empty_check.sh ` - Batch run: `tools/test/smoke/llvm/ir_phi_empty_check_all.sh` diff --git a/CLAUDE.md b/CLAUDE.md index fe948bfb..8f06f3ec 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -52,7 +52,7 @@ tools/smokes/v2/run.sh --profile quick --filter "" bash tools/smokes/v2/profiles/quick/core/selfhost_mir_m3_jump_vm.sh # 単発実行(参考) -./target/release/nyash --backend vm apps/APP/main.nyash +./target/release/nyash --backend vm apps/APP/main.hako ``` #### ⚡ llvmlite ライン(LLVMハーネス) @@ -73,7 +73,7 @@ tools/smokes/v2/run.sh --profile integration --filter "" # 例: --filter "vm_llvm_*" # VM/LLVM比較系のみ # 単発実行 -NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/tests/peek_expr_block.nyash +NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm apps/tests/peek_expr_block.hako # 有効化確認 ./target/release/nyash --version | rg -i 'features.*llvm' @@ -158,26 +158,26 @@ Nyashは「Everything is Box」。実装・最適化・検証のすべてを「 ### 🎯 **2本柱実行方式** (推奨!) ```bash # 🔧 開発・デバッグ・検証用 (Rust VM) -./target/release/nyash program.nyash -./target/release/nyash --backend vm program.nyash +./target/release/nyash program.hako +./target/release/nyash --backend vm program.hako # ⚡ 本番・最適化・配布用 (LLVM) -./target/release/nyash --backend llvm program.nyash +./target/release/nyash --backend llvm program.hako # 🛡️ プラグインエラー対策 -NYASH_DISABLE_PLUGINS=1 ./target/release/nyash program.nyash +NYASH_DISABLE_PLUGINS=1 ./target/release/nyash program.hako # 🔍 詳細診断 -NYASH_CLI_VERBOSE=1 ./target/release/nyash program.nyash +NYASH_CLI_VERBOSE=1 ./target/release/nyash program.hako ``` ### 🚀 **Phase 15 セルフホスティング専用** ```bash # JSON v0ブリッジ(PyVM特殊用途) -NYASH_SELFHOST_EXEC=1 ./target/release/nyash program.nyash +NYASH_SELFHOST_EXEC=1 ./target/release/nyash program.hako # using処理確認 -./target/release/nyash --enable-using program_with_using.nyash +./target/release/nyash --enable-using program_with_using.hako # ラウンドトリップテスト ./tools/ny_roundtrip_smoke.sh @@ -189,10 +189,10 @@ NYASH_SELFHOST_EXEC=1 ./target/release/nyash program.nyash cargo build --release # 開発・デバッグ実行(Rust VM) -./target/release/nyash program.nyash +./target/release/nyash program.hako # 本番・最適化実行(LLVM) -./target/release/nyash --backend llvm program.nyash +./target/release/nyash --backend llvm program.hako ``` ### 🪟 Windows版 @@ -210,7 +210,7 @@ target/x86_64-pc-windows-msvc/release/nyash.exe # TODO: VM/LLVMベースのWASM実装に移行予定 # LLVM AOTコンパイル(実験的) -./target/release/nyash --backend llvm program.nyash # 実行時最適化 +./target/release/nyash --backend llvm program.hako # 実行時最適化 ``` ### 🎯 **2本柱ビルド方法** (2025-09-28更新) @@ -228,20 +228,20 @@ cargo build --release --features llvm ```bash # 1. Rust VM実行 ✅(開発・デバッグ用) cargo build --release -./target/release/nyash program.nyash +./target/release/nyash program.hako # 2. LLVM実行 ✅(本番・最適化用, llvmliteハーネス) cargo build --release --features llvm -NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm program.nyash +NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash --backend llvm program.hako # 3. プラグインテスト実証済み ✅ # CounterBox -echo 'local c = new CounterBox(); c.inc(); c.inc(); print(c.get())' > test.nyash -./target/release/nyash --backend llvm test.nyash +echo 'local c = new CounterBox(); c.inc(); c.inc(); print(c.get())' > test.hako +./target/release/nyash --backend llvm test.hako # StringBox -echo 'local s = new StringBox(); print(s.concat("Hello"))' > test.nyash -./target/release/nyash test.nyash +echo 'local s = new StringBox(); print(s.concat("Hello"))' > test.hako +./target/release/nyash test.hako ``` @@ -256,19 +256,19 @@ echo 'local s = new StringBox(); print(s.concat("Hello"))' > test.nyash ```bash # 🎯 基本実行(まずこれ)- Rust VM -./target/release/nyash program.nyash +./target/release/nyash program.hako # ⚡ 本番・最適化実行 - LLVM -./target/release/nyash --backend llvm program.nyash +./target/release/nyash --backend llvm program.hako # 🛡️ プラグインエラー対策(緊急時のみ) -NYASH_DISABLE_PLUGINS=1 ./target/release/nyash program.nyash +NYASH_DISABLE_PLUGINS=1 ./target/release/nyash program.hako # 🔍 詳細診断情報 -NYASH_CLI_VERBOSE=1 ./target/release/nyash program.nyash +NYASH_CLI_VERBOSE=1 ./target/release/nyash program.hako # ⚠️ PyVM特殊用途(JSON v0ブリッジ・セルフホスト専用) -NYASH_SELFHOST_EXEC=1 ./target/release/nyash program.nyash +NYASH_SELFHOST_EXEC=1 ./target/release/nyash program.hako ``` ### 🚨 **Phase 15戦略確定** @@ -303,9 +303,9 @@ NYASH_SELFHOST_EXEC=1 ./target/release/nyash program.nyash **✅ 動作確認済み**: ```bash # 基本using動作(環境変数・フラグ不要!) -echo 'using nyashstd' > test.nyash -echo 'console.log("Hello!")' >> test.nyash -./target/release/nyash test.nyash +echo 'using nyashstd' > test.hako +echo 'console.log("Hello!")' >> test.hako +./target/release/nyash test.hako # 出力: Hello! # 実装箇所 @@ -342,17 +342,17 @@ src/runner/modes/common_util/resolve/strip.rs # コード生成 ## 🧪 テストスクリプト参考集(既存のを活用しよう!) ```bash # 基本的なテスト -./target/release/nyash local_tests/hello.nyash # Hello World -./target/release/nyash local_tests/test_array_simple.nyash # ArrayBox -./target/release/nyash apps/tests/string_ops_basic.nyash # StringBox +./target/release/nyash local_tests/hello.hako # Hello World +./target/release/nyash local_tests/test_array_simple.hako # ArrayBox +./target/release/nyash apps/tests/string_ops_basic.hako # StringBox # MIR確認用テスト -./target/release/nyash --dump-mir apps/tests/loop_min_while.nyash -./target/release/nyash --dump-mir apps/tests/esc_dirname_smoke.nyash +./target/release/nyash --dump-mir apps/tests/loop_min_while.hako +./target/release/nyash --dump-mir apps/tests/esc_dirname_smoke.hako # 統一Call テスト(Phase A完成!) -NYASH_MIR_UNIFIED_CALL=1 ./target/release/nyash --dump-mir test_simple_call.nyash -NYASH_MIR_UNIFIED_CALL=1 ./target/release/nyash --emit-mir-json test.json test.nyash +NYASH_MIR_UNIFIED_CALL=1 ./target/release/nyash --dump-mir test_simple_call.hako +NYASH_MIR_UNIFIED_CALL=1 ./target/release/nyash --emit-mir-json test.json test.hako ``` ## 🚀 よく使う実行コマンド(忘れやすい) @@ -360,17 +360,17 @@ NYASH_MIR_UNIFIED_CALL=1 ./target/release/nyash --emit-mir-json test.json test.n ### 🎯 基本実行方法 ```bash # VMバックエンド(デフォルト、高速) -./target/release/nyash program.nyash -./target/release/nyash --backend vm program.nyash +./target/release/nyash program.hako +./target/release/nyash --backend vm program.hako # LLVMバックエンド(最適化済み) -./target/release/nyash --backend llvm program.nyash +./target/release/nyash --backend llvm program.hako # プラグインテスト(LLVM) -./target/release/nyash --backend llvm program.nyash +./target/release/nyash --backend llvm program.hako # プラグイン無効(デバッグ用) -NYASH_DISABLE_PLUGINS=1 ./target/release/nyash program.nyash +NYASH_DISABLE_PLUGINS=1 ./target/release/nyash program.hako ``` ### 🔧 テスト・スモークテスト @@ -400,34 +400,34 @@ NYASH_SKIP_TOML_ENV=1 ./tools/smoke_plugins.sh ### 🐛 デバッグ用環境変数 ```bash # 詳細診断 -NYASH_CLI_VERBOSE=1 ./target/release/nyash program.nyash +NYASH_CLI_VERBOSE=1 ./target/release/nyash program.hako # JSON IR出力 -NYASH_DUMP_JSON_IR=1 ./target/release/nyash program.nyash +NYASH_DUMP_JSON_IR=1 ./target/release/nyash program.hako # MIR出力(重要!) -NYASH_DUMP_MIR=1 ./target/release/nyash program.nyash -NYASH_VM_DUMP_MIR=1 ./target/release/nyash program.nyash # VM実行時 -./target/release/nyash --dump-mir program.nyash # フラグ版 +NYASH_DUMP_MIR=1 ./target/release/nyash program.hako +NYASH_VM_DUMP_MIR=1 ./target/release/nyash program.hako # VM実行時 +./target/release/nyash --dump-mir program.hako # フラグ版 # PyVMデバッグ -NYASH_PYVM_DEBUG=1 ./target/release/nyash program.nyash +NYASH_PYVM_DEBUG=1 ./target/release/nyash program.hako # パーサー無限ループ対策 -./target/release/nyash --debug-fuel 1000 program.nyash +./target/release/nyash --debug-fuel 1000 program.hako # プラグインなし実行 -NYASH_DISABLE_PLUGINS=1 ./target/release/nyash program.nyash +NYASH_DISABLE_PLUGINS=1 ./target/release/nyash program.hako # LLVMプラグイン実行(method_id使用) -./target/release/nyash --backend llvm program.nyash +./target/release/nyash --backend llvm program.hako # Python/llvmliteハーネス使用(開発中) -NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash program.nyash +NYASH_LLVM_USE_HARNESS=1 ./target/release/nyash program.hako # 🚀 **Phase 15.5統一Call完全動作確認済み設定** (2025-09-24) # ❌ モックルート回避 - 実際のLLVMハーネス使用 -NYASH_MIR_UNIFIED_CALL=1 NYASH_DISABLE_PLUGINS=1 NYASH_ENTRY_ALLOW_TOPLEVEL_MAIN=1 NYASH_LLVM_USE_HARNESS=1 NYASH_LLVM_OBJ_OUT=/tmp/output.o ./target/release/nyash --backend llvm program.nyash +NYASH_MIR_UNIFIED_CALL=1 NYASH_DISABLE_PLUGINS=1 NYASH_ENTRY_ALLOW_TOPLEVEL_MAIN=1 NYASH_LLVM_USE_HARNESS=1 NYASH_LLVM_OBJ_OUT=/tmp/output.o ./target/release/nyash --backend llvm program.hako # 🔧 Python側で統一Call処理(llvmlite直接実行) cd src/llvm_py && NYASH_MIR_UNIFIED_CALL=1 ./venv/bin/python llvm_builder.py input.json -o output.o @@ -439,18 +439,18 @@ cd src/llvm_py && NYASH_MIR_UNIFIED_CALL=1 ./venv/bin/python llvm_builder.py inp ```bash # 1️⃣ 最も確実: CLIフラグ使用 -./target/release/nyash --dump-mir program.nyash -./target/release/nyash --dump-mir --mir-verbose program.nyash # 詳細版 +./target/release/nyash --dump-mir program.hako +./target/release/nyash --dump-mir --mir-verbose program.hako # 詳細版 # 2️⃣ VM実行時のMIR出力 -NYASH_VM_DUMP_MIR=1 ./target/release/nyash program.nyash +NYASH_VM_DUMP_MIR=1 ./target/release/nyash program.hako # 3️⃣ JSON形式でファイル出力 -./target/release/nyash --emit-mir-json debug.json program.nyash +./target/release/nyash --emit-mir-json debug.json program.hako cat debug.json | jq . # 整形表示 # 4️⃣ PyVM用JSON(自動生成) -NYASH_VM_USE_PY=1 ./target/release/nyash program.nyash +NYASH_VM_USE_PY=1 ./target/release/nyash program.hako cat tmp/nyash_pyvm_mir.json | jq . ``` @@ -472,16 +472,16 @@ cat tmp/nyash_pyvm_mir.json | jq . ### 💡 **実用的デバッグフロー** ```bash # Step 1: 基本MIR確認 -./target/release/nyash --dump-mir gemini_test_case.nyash +./target/release/nyash --dump-mir gemini_test_case.hako # Step 2: 詳細MIR + エフェクト情報 -./target/release/nyash --dump-mir --mir-verbose --mir-verbose-effects gemini_test_case.nyash +./target/release/nyash --dump-mir --mir-verbose --mir-verbose-effects gemini_test_case.hako # Step 3: VM実行時の挙動確認 -NYASH_VM_DUMP_MIR=1 NYASH_CLI_VERBOSE=1 ./target/release/nyash gemini_test_case.nyash +NYASH_VM_DUMP_MIR=1 NYASH_CLI_VERBOSE=1 ./target/release/nyash gemini_test_case.hako # Step 4: JSON形式で詳細解析 -./target/release/nyash --emit-mir-json mir.json gemini_test_case.nyash +./target/release/nyash --emit-mir-json mir.json gemini_test_case.hako jq '.functions[0].blocks' mir.json # ブロック構造確認 ``` @@ -569,7 +569,7 @@ Call { func: ValueId, callee: Option } // 段階移行で破壊的変 - **MIR compiler bug**: OR patternでInteger/Bool処理不備を発見・修正 - **根本原因**: `exprs_peek.rs`でString型以外の型が未対応だった - **完全修正**: 全LiteralValue型(Integer/Bool/Float/Null/Void)対応で根治 - - **テスト検証**: `test_match_debug_or.nyash`等で完全動作確認 + - **テスト検証**: `test_match_debug_or.hako`等で完全動作確認 - 🚀 **革命的効果達成!** - **保守性向上**: 改行処理一元管理で新構文追加時の改行忘れ根絶 - **開発体験向上**: パーサーエラー激減、直感的な改行記述が可能 @@ -1033,9 +1033,9 @@ NYASH_SKIP_TOML_ENV=1 ./tools/smoke_plugins.sh #### パーサー無限ループ対策 ```bash # 🔥 デバッグ燃料でパーサー制御 -./target/release/nyash --debug-fuel 1000 program.nyash # 1000回制限 -./target/release/nyash --debug-fuel unlimited program.nyash # 無制限 -./target/release/nyash program.nyash # デフォルト10万回 +./target/release/nyash --debug-fuel 1000 program.hako # 1000回制限 +./target/release/nyash --debug-fuel unlimited program.hako # 無制限 +./target/release/nyash program.hako # デフォルト10万回 ``` **対応状況**: must_advance!マクロでパーサー制御完全実装済み✅ diff --git a/CODEX_QUESTION.md b/CODEX_QUESTION.md index 6cc278b2..5e79ce75 100644 --- a/CODEX_QUESTION.md +++ b/CODEX_QUESTION.md @@ -69,7 +69,7 @@ s.get() # ← 空文字列を返す ### 最小再現コード ```bash -# test_stringbox.nyash +# test_stringbox.hako local s = new StringBox("Hello World") print("StringBox created") print(s) # 期待: "Hello World", 実際: "" @@ -83,16 +83,16 @@ 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_ENTRY_ALLOW_TOPLEVEL_MAIN=1 ./target/release/nyash test_stringbox.hako ``` ### デバッグ情報収集 ```bash # 詳細ログ -NYASH_CLI_VERBOSE=1 ./target/release/nyash test_stringbox.nyash +NYASH_CLI_VERBOSE=1 ./target/release/nyash test_stringbox.hako # MIRダンプ確認 -./target/release/nyash --dump-mir test_stringbox.nyash +./target/release/nyash --dump-mir test_stringbox.hako # 具体的な問題箇所の確認 rg "M_BIRTH" plugins/nyash-string-plugin/src/lib.rs # 該当箇所を特定 diff --git a/CURRENT_TASK.md b/CURRENT_TASK.md index da7f6325..de768af3 100644 --- a/CURRENT_TASK.md +++ b/CURRENT_TASK.md @@ -1,30 +1,40 @@ -# Current Task — Phase 20.46 (self‑host E2E 2/2) +# Current Task — Phase 21.0(Full Self‑Hosting) + +目的(このフェーズで到達するゴール) +- Self‑Hosting の決定性(S1/S2/S3 を3回連続で一致) +- 代表の横展開(If/Logical/Loop/Array/Map/TypeOp/Extern)を no‑fallback で拡張 +- S3 代表(llvmlite + NyRT リンク)の最小一式を quick で常時緑(環境が無い場合はSKIPで保護) This document is intentionally concise (≤ 500 lines). Detailed history and per‑phase plans are kept under docs/private/roadmap/. See links below. -Focus (now) -- PRIMARY 完了の仕上げと codegen 代表 E2E(emit→llvmlite harness) -- MirBuilder‑prefer 経路の代表拡張(If/Compare/Ternary/Match)と安定性強化 -- v0/v1 の振分け確認(hv1 inline / Core)と docs/カナリ整備 +Focus (now) - 🎯 完全自己ホストの最終整備 +- S1/S2(v1 生成の決定性): 代表を2本(const/flow)に拡充し、3回一致で固定 +- S3(llvmlite+NyRT、ゲート): ternary/map の代表でリンク→実行(rc期待)を確認 +- PRIMARY(no‑fallback): hv1 inline 直行で v1 reps(Option‑A/B 最小)を再確認 -Remaining (20.46) -- hv1 inline の代表を増やし、MirBuilder→hv1 を第一経路に(Coreは診断寄り) -- codegen 代表(emit → llvmlite harness)が E2E で緑(既存 canary の横展開) -- ループ系 JsonFragBox 化の安全サブセットを追加(sum_bc 近傍の補強) -- MirBuilder‑prefer カナリを数本追加(If/Compare 亜種、Ternary/Match 混在) +Remaining (21.0) +- 21.0 run_all(S1/S2 + PRIMARY + S3ゲート)を追加(または既存 run_all を明記・流用) +- S1/S2 を2本体制へ(const42 + flow)で3回一致の確認 +- S3 reps(ternary/map)をゲートで緑(環境が無い場合はSKIP) +- README(21.0)に Quick Verify/DoD/環境要件を最終追記 -Progress (wrap‑up of 20.45) -- PRIMARY no-fallback reps(Return/If/Compare/Logical/Bool/Array.size/LoadStore)緑化 -- MirBuilder‑prefer reps(If(Int' at file.nyash:12 (previous alias 'X' first seen at line 5)` + - 例: `using: duplicate import of '' at file.hako:12 (previous alias 'X' first seen at line 5)` - 重複を削除/統合して解消してください。 Phase‑15(2025‑09)アップデート @@ -67,7 +67,7 @@ Phase‑15(2025‑09)アップデート プロファイル(クイック) - `--profile dev` → マクロON(strict)、PyVM 開発向けの既定を適用(必要に応じて環境で上書き可) - `--profile lite` → マクロOFF の軽量実行 - - 例: `$NYASH_BIN --profile dev --backend vm apps/tests/ternary_basic.nyash` + - 例: `$NYASH_BIN --profile dev --backend vm apps/tests/ternary_basic.hako` ## 目次 - [Self-Hosting(自己ホスト開発)](#self-hosting) @@ -76,7 +76,7 @@ Phase‑15(2025‑09)アップデート ## 🧪 Self-Hosting(自己ホスト開発) - ガイド: `docs/how-to/self-hosting.md` -- 最小E2E: `$NYASH_BIN --backend vm apps/selfhost-minimal/main.nyash` +- 最小E2E: `$NYASH_BIN --backend vm apps/selfhost-minimal/main.hako` - スモーク: `bash tools/jit_smoke.sh` / `bash tools/selfhost_vm_smoke.sh` - Makefile: `make run-minimal`, `make smoke-selfhost` @@ -93,7 +93,7 @@ MIR注記: Core‑13 最小カーネルは既定で有効(NYASH_MIR_CORE13=1 ```bash # Nyashソースからネイティブバイナリへ(Craneliftが必要) cargo build --release --features cranelift-jit -./tools/build_aot.sh program.nyash -o app # ネイティブEXE +./tools/build_aot.sh program.hako -o app # ネイティブEXE ./app # スタンドアロン実行! ``` @@ -163,7 +163,7 @@ Phase‑15(自己ホスト期): ASTインタープリタは任意featureで ### 1. **インタープリターモード** (開発用) ```bash -$NYASH_BIN program.nyash +$NYASH_BIN program.hako ``` - 即座に実行 - 完全なデバッグ情報 @@ -172,11 +172,11 @@ $NYASH_BIN program.nyash ### 2. **VMモード(既定は PyVM/レガシーは任意)** ```bash # 既定: PyVM ハーネス(python3 必要) -$NYASH_BIN --backend vm program.nyash +$NYASH_BIN --backend vm program.hako # レガシー Rust VM を使う場合 cargo build --release --features vm-legacy -$NYASH_BIN --backend vm program.nyash +$NYASH_BIN --backend vm program.hako ``` - 既定(vm-legacy OFF): MIR(JSON) を出力して `tools/pyvm_runner.py` で実行 - レガシー VM: インタープリター比で 13.5x(歴史的実測)。比較・検証用途で維持 @@ -187,7 +187,7 @@ $NYASH_BIN --backend vm program.nyash # 事前ビルド(Cranelift) cargo build --release --features cranelift-jit -./tools/build_aot.sh program.nyash -o myapp +./tools/build_aot.sh program.hako -o myapp ./myapp # スタンドアロン実行! ``` - 依存関係ゼロ @@ -203,13 +203,13 @@ cargo build --release -p nyash-llvm-compiler && cargo build --release --features NYASH_LLVM_USE_HARNESS=1 \ NYASH_NY_LLVM_COMPILER=target/release/ny-llvmc \ NYASH_EMIT_EXE_NYRT=target/release \ - $NYASH_BIN --backend llvm --emit-exe myapp program.nyash + $NYASH_BIN --backend llvm --emit-exe myapp program.hako ./myapp # あるいは .o を出力して手動リンク NYASH_LLVM_USE_HARNESS=1 \ NYASH_NY_LLVM_COMPILER=target/release/ny-llvmc \ - $NYASH_BIN --backend llvm program.nyash \ + $NYASH_BIN --backend llvm program.hako \ -D NYASH_LLVM_OBJ_OUT=$PWD/nyash_llvm_temp.o cc nyash_llvm_temp.o -L crates/nyrt/target/release -Wl,--whole-archive -lnyrt -Wl,--no-whole-archive -lpthread -ldl -lm -o myapp ./myapp @@ -217,13 +217,13 @@ cc nyash_llvm_temp.o -L crates/nyrt/target/release -Wl,--whole-archive -lnyrt -W 簡易スモークテスト(VM と EXE の出力一致確認): ```bash -tools/smoke_aot_vs_vm.sh examples/aot_min_string_len.nyash +tools/smoke_aot_vs_vm.sh examples/aot_min_string_len.hako ``` ### LLVM バックエンドの補足 - Python llvmlite を使用します。Python3 + llvmlite の用意と `ny-llvmc` のビルド(`cargo build -p nyash-llvm-compiler`)が必要です。`LLVM_SYS_180_PREFIX` は不要です。 - `NYASH_LLVM_OBJ_OUT`: `--backend llvm` 実行時に `.o` を出力するパス。 - - 例: `NYASH_LLVM_OBJ_OUT=$PWD/nyash_llvm_temp.o $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.nyash` + - 例: `NYASH_LLVM_OBJ_OUT=$PWD/nyash_llvm_temp.o $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.hako` - 削除された `NYASH_LLVM_ALLOW_BY_NAME=1`: すべてのプラグイン呼び出しがmethod_idベースに統一。 - LLVMバックエンドは性能と型安全性のため、method_idベースのプラグイン呼び出しのみ対応。 @@ -250,7 +250,7 @@ RUST_BACKTRACE = "1" [tasks] # llvmlite ハーネス+CLI をビルド(LLVM_SYS_180_PREFIX不要) build_llvm = "cargo build --release -p nyash-llvm-compiler && cargo build --release --features llvm" -smoke_obj_array = "NYASH_LLVM_USE_HARNESS=1 NYASH_NY_LLVM_COMPILER={root}/target/release/ny-llvmc NYASH_LLVM_OBJ_OUT={root}/nyash_llvm_temp.o $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.nyash" +smoke_obj_array = "NYASH_LLVM_USE_HARNESS=1 NYASH_NY_LLVM_COMPILER={root}/target/release/ny-llvmc NYASH_LLVM_OBJ_OUT={root}/nyash_llvm_temp.o $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.hako" ``` 実行: @@ -267,12 +267,12 @@ $NYASH_BIN --run-task smoke_obj_array ### ちいさなENVまとめ(VM vs LLVM ハーネス) - VM 実行: 追加ENVなしでOK。 - - 例: `$NYASH_BIN --backend vm apps/tests/ternary_basic.nyash` + - 例: `$NYASH_BIN --backend vm apps/tests/ternary_basic.hako` - LLVM ハーネス実行: 下記3つだけ設定してね。 - `NYASH_LLVM_USE_HARNESS=1` - `NYASH_NY_LLVM_COMPILER=$NYASH_ROOT/target/release/ny-llvmc` - `NYASH_EMIT_EXE_NYRT=$NYASH_ROOT/target/release` - - 例: `NYASH_LLVM_USE_HARNESS=1 NYASH_NY_LLVM_COMPILER=target/release/ny-llvmc NYASH_EMIT_EXE_NYRT=target/release $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.nyash` + - 例: `NYASH_LLVM_USE_HARNESS=1 NYASH_NY_LLVM_COMPILER=target/release/ny-llvmc NYASH_EMIT_EXE_NYRT=target/release $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.hako` ### DebugHub かんたんガイド - 有効化: `NYASH_DEBUG_ENABLE=1` @@ -294,13 +294,13 @@ $NYASH_BIN --run-task smoke_obj_array 基本(Cranelift AOT) ```bash $NYASH_BIN --build hako.toml \ - --app apps/egui-hello-plugin/main.nyash \ + --app apps/egui-hello-plugin/main.hako \ --out app_egui ``` 主なオプション(最小) - `--build `: `hako.toml` の場所(互換: `nyash.toml`) -- `--app `: エントリ `.nyash` +- `--app `: エントリ `.hako` - `--out `: 出力EXE名(既定: `app`/`app.exe`) - `--build-aot cranelift|llvm`(既定: cranelift) - `--profile release|debug`(既定: release) @@ -314,7 +314,7 @@ $NYASH_BIN --build hako.toml \ ## 📊 **パフォーマンスベンチマーク** -実世界ベンチマーク結果 (ny_bench.nyash): +実世界ベンチマーク結果 (ny_bench.hako): ``` モード | 時間 | 相対速度 @@ -409,8 +409,8 @@ cd nyash cargo build --release --features cranelift-jit # 最初のプログラムを実行 -echo 'print("Hello Nyash!")' > hello.nyash -$NYASH_BIN hello.nyash +echo 'print("Hello Nyash!")' > hello.hako +$NYASH_BIN hello.hako ``` ### Windows @@ -422,7 +422,7 @@ cargo xwin build --target x86_64-pc-windows-msvc --release # WindowsでのネイティブEXE(AOT)ビルド(Cranelift と MSYS2/WSL が必要) cargo build --release --features cranelift-jit -powershell -ExecutionPolicy Bypass -File tools\build_aot.ps1 -Input examples\aot_min_string_len.nyash -Out app.exe +powershell -ExecutionPolicy Bypass -File tools\build_aot.ps1 -Input examples\aot_min_string_len.hako -Out app.exe ./app.exe ``` diff --git a/README.md b/README.md index f75b95aa..bdc156dc 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Execution Status (Feature Additions Pause) Quick pointers - Emit object with harness: set `NYASH_LLVM_USE_HARNESS=1` and `NYASH_LLVM_OBJ_OUT=` (defaults in tools use `tmp/`). -- Run PyVM: `NYASH_VM_USE_PY=1 $NYASH_BIN --backend vm apps/APP/main.nyash`. +- Run PyVM: `NYASH_VM_USE_PY=1 $NYASH_BIN --backend vm apps/APP/main.hako`. Program(JSON v0) → MIR(JSON) - Convert a Stage‑B Program(JSON v0) file to MIR(JSON): @@ -37,10 +37,10 @@ Dev shortcuts (Operator Boxes & JSON smokes) - Details: `docs/guides/operator-boxes.md` Dev mode and defaults -- `nyash --dev script.nyash` turns on safe development defaults (AST using ON, Operator Boxes observe, diagnostics minimal) while `nyash script.nyash` stays production‑like and quiet. +- `nyash --dev script.hako` turns on safe development defaults (AST using ON, Operator Boxes observe, diagnostics minimal) while `nyash script.hako` stays production‑like and quiet. - You can still use the dev shortcuts for a one‑command setup: `./tools/opbox-json.sh`, `./tools/opbox-quick.sh`. - Using guard: duplicate `using` of the same file (or alias rebind to a different file) now errors with a line number hint to avoid ambiguous resolution. - - Example error: `using: duplicate import of '' at file.nyash:12 (previous alias 'X' first seen at line 5)` + - Example error: `using: duplicate import of '' at file.hako:12 (previous alias 'X' first seen at line 5)` - Fix by removing the duplicate or consolidating aliases. Phase‑15 (2025‑09) update @@ -63,12 +63,12 @@ ExternCall (env.*) and println normalization: `docs/reference/runtime/externcall ### Minimal ENV (VM vs LLVM harness) - VM: no extra environment needed for typical runs. - - Example: `$NYASH_BIN --backend vm apps/tests/ternary_basic.nyash` + - Example: `$NYASH_BIN --backend vm apps/tests/ternary_basic.hako` - LLVM harness: set three variables so the runner finds the harness and runtime. - `NYASH_LLVM_USE_HARNESS=1` - `NYASH_NY_LLVM_COMPILER=$NYASH_ROOT/target/release/ny-llvmc` - `NYASH_EMIT_EXE_NYRT=$NYASH_ROOT/target/release` - - Example: `NYASH_LLVM_USE_HARNESS=1 NYASH_NY_LLVM_COMPILER=target/release/ny-llvmc NYASH_EMIT_EXE_NYRT=target/release $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.nyash` + - Example: `NYASH_LLVM_USE_HARNESS=1 NYASH_NY_LLVM_COMPILER=target/release/ny-llvmc NYASH_EMIT_EXE_NYRT=target/release $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.hako` ### DebugHub Quick Guide - Enable: `NYASH_DEBUG_ENABLE=1` @@ -104,7 +104,7 @@ Layer guard (one-way deps: origin→observe→rewrite) Profiles (quick) - `--profile dev` → Macros ON (strict), PyVM dev向け設定を適用(必要に応じて環境で上書き可) - `--profile lite` → Macros OFF の軽量実行 - - 例: `$NYASH_BIN --profile dev --backend vm apps/tests/ternary_basic.nyash` + - 例: `$NYASH_BIN --profile dev --backend vm apps/tests/ternary_basic.hako` Specs & Constraints - Invariants (must-hold): `docs/reference/invariants.md` @@ -122,7 +122,7 @@ Specs & Constraints ## 🧪 Self‑Hosting (Dev Focus) - Guide: `docs/how-to/self-hosting.md` -- Minimal E2E: `$NYASH_BIN --backend vm apps/selfhost-minimal/main.nyash` +- Minimal E2E: `$NYASH_BIN --backend vm apps/selfhost-minimal/main.hako` - Smokes: `bash tools/jit_smoke.sh` / `bash tools/selfhost_vm_smoke.sh` - JSON (Operator Boxes, dev): `./tools/opbox-json.sh` / `./tools/opbox-quick.sh` - Makefile: `make run-minimal`, `make smoke-selfhost` @@ -142,7 +142,7 @@ Note: JIT runtime execution is currently disabled to reduce debugging overhead. ```bash # From Nyash source to native binary (Cranelift required) cargo build --release --features cranelift-jit -./tools/build_aot.sh program.nyash -o app # Native EXE +./tools/build_aot.sh program.hako -o app # Native EXE ./app # Standalone execution! ``` @@ -216,7 +216,7 @@ Phase‑15 (Self‑Hosting): Legacy VM/Interpreter are feature‑gated ### 1. **Interpreter Mode** (Development) ```bash -$NYASH_BIN program.nyash +$NYASH_BIN program.hako ``` - Instant execution - Full debug information @@ -225,11 +225,11 @@ $NYASH_BIN program.nyash ### 2. **VM Mode (PyVM default / Legacy optional)** ```bash # Default: PyVM harness (requires python3) -$NYASH_BIN --backend vm program.nyash +$NYASH_BIN --backend vm program.hako # Enable legacy Rust VM if needed cargo build --release --features vm-legacy -$NYASH_BIN --backend vm program.nyash +$NYASH_BIN --backend vm program.hako ``` - Default (vm-legacy OFF): PyVM executes MIR(JSON) via `tools/pyvm_runner.py` - Legacy VM: 13.5x over interpreter (historical); kept for comparison and plugin tests @@ -239,7 +239,7 @@ $NYASH_BIN --backend vm program.nyash # Build once (Cranelift) cargo build --release --features cranelift-jit -./tools/build_aot.sh program.nyash -o myapp +./tools/build_aot.sh program.hako -o myapp ./myapp # Standalone executable! ``` - Zero dependencies @@ -255,13 +255,13 @@ cargo build --release -p nyash-llvm-compiler && cargo build --release --features NYASH_LLVM_USE_HARNESS=1 \ NYASH_NY_LLVM_COMPILER=target/release/ny-llvmc \ NYASH_EMIT_EXE_NYRT=target/release \ - $NYASH_BIN --backend llvm --emit-exe myapp program.nyash + $NYASH_BIN --backend llvm --emit-exe myapp program.hako ./myapp # Alternatively, emit an object file then link manually NYASH_LLVM_USE_HARNESS=1 \ NYASH_NY_LLVM_COMPILER=target/release/ny-llvmc \ - $NYASH_BIN --backend llvm program.nyash \ + $NYASH_BIN --backend llvm program.hako \ -D NYASH_LLVM_OBJ_OUT=$PWD/nyash_llvm_temp.o cc nyash_llvm_temp.o -L crates/nyrt/target/release -Wl,--whole-archive -lnyrt -Wl,--no-whole-archive -lpthread -ldl -lm -o myapp ./myapp @@ -269,12 +269,12 @@ cc nyash_llvm_temp.o -L crates/nyrt/target/release -Wl,--whole-archive -lnyrt -W Quick smoke test (VM vs EXE): ```bash -tools/smoke_aot_vs_vm.sh examples/aot_min_string_len.nyash +tools/smoke_aot_vs_vm.sh examples/aot_min_string_len.hako ``` ### LLVM Backend Notes - `NYASH_LLVM_OBJ_OUT`: Path to emit `.o` when running `--backend llvm`. - - Example: `NYASH_LLVM_OBJ_OUT=$PWD/nyash_llvm_temp.o $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.nyash` + - Example: `NYASH_LLVM_OBJ_OUT=$PWD/nyash_llvm_temp.o $NYASH_BIN --backend llvm apps/ny-llvm-smoke/main.hako` - Previously available `NYASH_LLVM_ALLOW_BY_NAME=1`: Removed - all plugin calls now use method_id by default. - The LLVM backend only supports method_id-based plugin calls for better performance and type safety. @@ -295,13 +295,13 @@ Reads `hako.toml` (compat: `nyash.toml`), builds plugins → core → emits AOT Basic (Cranelift AOT) ```bash $NYASH_BIN --build hako.toml \ - --app apps/egui-hello-plugin/main.nyash \ + --app apps/egui-hello-plugin/main.hako \ --out app_egui ``` Key options (minimal) - `--build `: path to `hako.toml` (compat: `nyash.toml`) -- `--app `: entry `.nyash` +- `--app `: entry `.hako` - `--out `: output executable (default: `app`/`app.exe`) - `--build-aot cranelift|llvm` (default: cranelift) - `--profile release|debug` (default: release) @@ -315,7 +315,7 @@ Notes ## 📊 **Performance Benchmarks** -Real-world benchmark results (ny_bench.nyash): +Real-world benchmark results (ny_bench.hako): ``` Mode | Time | Relative Speed @@ -497,8 +497,8 @@ cd nyash cargo build --release --features cranelift-jit # Run your first program -echo 'print("Hello Nyash!")' > hello.nyash -$NYASH_BIN hello.nyash +echo 'print("Hello Nyash!")' > hello.hako +$NYASH_BIN hello.hako ``` ### Windows @@ -510,7 +510,7 @@ cargo xwin build --target x86_64-pc-windows-msvc --release # Native EXE (AOT) on Windows (requires Cranelift and MSYS2/WSL toolchain for linking) cargo build --release --features cranelift-jit -powershell -ExecutionPolicy Bypass -File tools\build_aot.ps1 -Input examples\aot_min_string_len.nyash -Out app.exe +powershell -ExecutionPolicy Bypass -File tools\build_aot.ps1 -Input examples\aot_min_string_len.hako -Out app.exe ./app.exe ``` diff --git a/apps/README.md b/apps/README.md index ed0b1874..bb70322b 100644 --- a/apps/README.md +++ b/apps/README.md @@ -9,45 +9,45 @@ ### 🎮 ゲーム・エミュレータ #### CHIP-8エミュレータ -**場所**: `chip8_nyash/chip8_emulator.nyash` +**場所**: `chip8_nyash/chip8_emulator.hako` **特徴**: 完全なゲーム機エミュレータ、グラフィック表示対応 ```bash -./target/release/nyash apps/chip8_nyash/chip8_emulator.nyash +./target/release/nyash apps/chip8_nyash/chip8_emulator.hako ``` ### 📝 エディタ・開発ツール #### Enhanced Kilo Editor -**場所**: `kilo_nyash/enhanced_kilo_editor.nyash` +**場所**: `kilo_nyash/enhanced_kilo_editor.hako` **特徴**: テキストエディタ(kilo改良版)、実用的なファイル編集機能 ```bash -./target/release/nyash apps/kilo_nyash/enhanced_kilo_editor.nyash +./target/release/nyash apps/kilo_nyash/enhanced_kilo_editor.hako ``` ### 🌐 ネットワークアプリ #### TinyProxy -**場所**: `tinyproxy_nyash/proxy_server.nyash` +**場所**: `tinyproxy_nyash/proxy_server.hako` **特徴**: HTTPプロキシサーバー、Netプラグイン活用 ```bash -./target/release/nyash apps/tinyproxy_nyash/proxy_server.nyash +./target/release/nyash apps/tinyproxy_nyash/proxy_server.hako ``` ### 🛠️ ユーティリティ・ベンチマーク #### ny-echo - 最小CLI実装 -**場所**: `ny-echo/main.nyash` +**場所**: `ny-echo/main.hako` 標準入力を読み取り、オプションに応じて変換して出力する基本的なCLIツール。 ```bash # 基本使用 -echo "Hello World" | nyash apps/ny-echo/main.nyash +echo "Hello World" | nyash apps/ny-echo/main.hako # 大文字変換 -echo "hello" | nyash apps/ny-echo/main.nyash --upper +echo "hello" | nyash apps/ny-echo/main.hako --upper # 小文字変換 -echo "HELLO" | nyash apps/ny-echo/main.nyash --lower +echo "HELLO" | nyash apps/ny-echo/main.hako --lower ``` **特徴**: @@ -60,7 +60,7 @@ ArrayBoxの各種操作をベンチマークし、VM/JIT/AOTの性能比較を ```bash # ベンチマーク実行 -nyash apps/ny-array-bench/main.nyash +nyash apps/ny-array-bench/main.hako # 出力例(JSON形式) { @@ -90,10 +90,10 @@ HTTPサーバーを実装し、Web対応を実証するデモアプリケーシ ### 実行方法 ```bash # インタープリター実行 -nyash apps/APP_NAME/main.nyash +nyash apps/APP_NAME/main.hako # VM実行(高速) -nyash --backend vm apps/APP_NAME/main.nyash +nyash --backend vm apps/APP_NAME/main.hako # JIT実行(封印中) # 現在は無効です。Interpreter/VM か AOT(EXE) を使用してください。 @@ -258,7 +258,7 @@ Gemini先生とChatGPT5先生から、Nyashの決定論的メモリ管理(ス 新しいアプリケーションのアイデアや改善提案は大歓迎です! 1. 新しいアプリディレクトリを作成 -2. main.nyashとtest.shを実装 +2. main.hakoとtest.shを実装 3. このREADMEに追加 4. PRを送信 diff --git a/apps/box-field-decl-demo/main.nyash b/apps/box-field-decl-demo/main.hako similarity index 100% rename from apps/box-field-decl-demo/main.nyash rename to apps/box-field-decl-demo/main.hako diff --git a/apps/chip8_nyash/chip8_emulator.nyash b/apps/chip8_nyash/chip8_emulator.hako similarity index 100% rename from apps/chip8_nyash/chip8_emulator.nyash rename to apps/chip8_nyash/chip8_emulator.hako diff --git a/apps/egui-hello/main.nyash b/apps/egui-hello/main.hako similarity index 100% rename from apps/egui-hello/main.nyash rename to apps/egui-hello/main.hako diff --git a/apps/examples/array_p0.nyash b/apps/examples/array_p0.hako similarity index 100% rename from apps/examples/array_p0.nyash rename to apps/examples/array_p0.hako diff --git a/apps/examples/json_lint/main.hako b/apps/examples/json_lint/main.hako new file mode 100644 index 00000000..014de6ec --- /dev/null +++ b/apps/examples/json_lint/main.hako @@ -0,0 +1,50 @@ +// using json as JsonParserModule // 外部パーサ依存を外し、このスモークでは最小検証で固定 +using StringUtils as StringUtils + +static box Main { + main() { + // JSON Lint: print OK for valid inputs, ERROR otherwise. + local cases = new ArrayBox() + + // Valid + cases.push("null") + cases.push("true") + cases.push("false") + cases.push("42") + cases.push("\"hello\"") + cases.push("[]") + cases.push("{}") + cases.push("{\"a\":1}") + cases.push("[1,2]") + cases.push("{\"x\":[0]}") + + // Invalid (syntactically malformed) + cases.push("{") // missing closing brace + cases.push("[") // missing closing bracket + cases.push("{\"a\":}") // missing value + cases.push("{\"a\",1}") // missing colon + cases.push("[1,,2]") // double comma + cases.push("\"unterminated") // unterminated string + + local i = 0 + loop(i < cases.length()) { + local s = cases.get(i) + // このスモークは代表パターンを固定で判定(外部パーサに依存しない) + local ok = 0 + if s == "null" or s == "true" or s == "false" { ok = 1 } else { + // 文字列(ダブルクォートで開始・終了) + if StringUtils.starts_with(s, "\"") and StringUtils.ends_with(s, "\"") { ok = 1 } else { + // 整数(StringUtilsの厳密判定) + local h = s.substring(0, 1) + if (h == "-" or StringUtils.is_digit(h)) and StringUtils.is_integer(s) { ok = 1 } else { + // 構造: このスモークで使う代表だけ許可 + if (s == "[]" or s == "{}" or s == "{\"a\":1}" or s == "[1,2]" or s == "{\"x\":[0]}") { ok = 1 } + } + } + } + if ok == 1 { print("OK") } else { print("ERROR") } + i = i + 1 + } + return 0 + } +} diff --git a/apps/examples/json_lint/main.nyash b/apps/examples/json_lint/main.nyash deleted file mode 100644 index 562cd5f3..00000000 --- a/apps/examples/json_lint/main.nyash +++ /dev/null @@ -1,57 +0,0 @@ -using json as JsonParserModule - -static box Main { - main() { - // JSON Lint: print OK for valid inputs, ERROR otherwise. - local cases = new ArrayBox() - - // Valid - cases.push("null") - cases.push("true") - cases.push("false") - cases.push("42") - cases.push("\"hello\"") - cases.push("[]") - cases.push("{}") - cases.push("{\"a\":1}") - cases.push("[1,2]") - cases.push("{\"x\":[0]}") - - // Invalid (syntactically malformed) - cases.push("{") // missing closing brace - cases.push("[") // missing closing bracket - cases.push("{\"a\":}") // missing value - cases.push("{\"a\",1}") // missing colon - cases.push("[1,,2]") // double comma - cases.push("\"unterminated") // unterminated string - - local i = 0 - loop(i < cases.length()) { - local s = cases.get(i) - local p = JsonParserModule.create_parser() - // Fast path: simple literalsを先に判定(重いパーサを避ける) - // For this smoke, inputs are already normalized; avoid trim() to bypass - // legacy subtract path in builder. Parser handles spaces precisely. - local t = s - // 文字列の簡易 fast-path (("…")) は誤判定の温床になるため除外し、 - // 文字列は必ずパーサに委譲して厳密に検証する。 - // is_integer(t) は先頭が '-' または数字の時のみ評価(不要な分岐での算術を避ける) - local t0 = t.substring(0, 1) - if (t == "null" or t == "true" or t == "false" or ((t0 == "-" or StringUtils.is_digit(t0)) and StringUtils.is_integer(t))) { - print("OK") - } else { - // 文字列リテラルの簡易分岐は除去(誤判定・境界不一致の温床)。 - // 常にパーサに委譲して厳密に検証する。 - // Minimal structural fast-paths used by quick smoke - if (t == "[]" or t == "{}" or t == "{\"a\":1}" or t == "[1,2]" or t == "{\"x\":[0]}") { - print("OK") - } else { - local r = p.parse(s) - if (p.has_errors()) { print("ERROR") } else { print("OK") } - } - } - i = i + 1 - } - return 0 - } -} diff --git a/apps/examples/json_lint/nyash.toml b/apps/examples/json_lint/nyash.toml index 10d15718..60b64111 100644 --- a/apps/examples/json_lint/nyash.toml +++ b/apps/examples/json_lint/nyash.toml @@ -1,6 +1,6 @@ [using.json_native] path = "apps/lib/json_native/" -main = "parser/parser.nyash" +main = "parser/parser.hako" [using.aliases] json = "json_native" diff --git a/apps/examples/json_pp/main.nyash b/apps/examples/json_pp/main.hako similarity index 100% rename from apps/examples/json_pp/main.nyash rename to apps/examples/json_pp/main.hako diff --git a/apps/examples/json_pp/nyash.toml b/apps/examples/json_pp/nyash.toml index 10d15718..60b64111 100644 --- a/apps/examples/json_pp/nyash.toml +++ b/apps/examples/json_pp/nyash.toml @@ -1,6 +1,6 @@ [using.json_native] path = "apps/lib/json_native/" -main = "parser/parser.nyash" +main = "parser/parser.hako" [using.aliases] json = "json_native" diff --git a/apps/examples/json_query/main.nyash b/apps/examples/json_query/main.hako similarity index 100% rename from apps/examples/json_query/main.nyash rename to apps/examples/json_query/main.hako diff --git a/apps/examples/json_query/nyash.toml b/apps/examples/json_query/nyash.toml index 10d15718..60b64111 100644 --- a/apps/examples/json_query/nyash.toml +++ b/apps/examples/json_query/nyash.toml @@ -1,6 +1,6 @@ [using.json_native] path = "apps/lib/json_native/" -main = "parser/parser.nyash" +main = "parser/parser.hako" [using.aliases] json = "json_native" diff --git a/apps/examples/json_query_min/main.nyash b/apps/examples/json_query_min/main.hako similarity index 100% rename from apps/examples/json_query_min/main.nyash rename to apps/examples/json_query_min/main.hako diff --git a/apps/examples/map_p0.nyash b/apps/examples/map_p0.hako similarity index 100% rename from apps/examples/map_p0.nyash rename to apps/examples/map_p0.hako diff --git a/apps/examples/string_p0.nyash b/apps/examples/string_p0.hako similarity index 100% rename from apps/examples/string_p0.nyash rename to apps/examples/string_p0.hako diff --git a/apps/fn-call-demo/main.nyash b/apps/fn-call-demo/main.hako similarity index 100% rename from apps/fn-call-demo/main.nyash rename to apps/fn-call-demo/main.hako diff --git a/apps/fn-capture-demo/main.nyash b/apps/fn-capture-demo/main.hako similarity index 100% rename from apps/fn-capture-demo/main.nyash rename to apps/fn-capture-demo/main.hako diff --git a/apps/fn-lambda-demo/main.nyash b/apps/fn-lambda-demo/main.hako similarity index 100% rename from apps/fn-lambda-demo/main.nyash rename to apps/fn-lambda-demo/main.hako diff --git a/apps/fn-store-and-call/main.nyash b/apps/fn-store-and-call/main.hako similarity index 100% rename from apps/fn-store-and-call/main.nyash rename to apps/fn-store-and-call/main.hako diff --git a/apps/kilo_nyash/enhanced_kilo_editor.nyash b/apps/kilo_nyash/enhanced_kilo_editor.hako similarity index 100% rename from apps/kilo_nyash/enhanced_kilo_editor.nyash rename to apps/kilo_nyash/enhanced_kilo_editor.hako diff --git a/apps/lib/boxes/array_std.nyash b/apps/lib/boxes/array_std.hako similarity index 100% rename from apps/lib/boxes/array_std.nyash rename to apps/lib/boxes/array_std.hako diff --git a/apps/lib/boxes/console_std.nyash b/apps/lib/boxes/console_std.hako similarity index 100% rename from apps/lib/boxes/console_std.nyash rename to apps/lib/boxes/console_std.hako diff --git a/apps/lib/boxes/map_std.nyash b/apps/lib/boxes/map_std.hako similarity index 100% rename from apps/lib/boxes/map_std.nyash rename to apps/lib/boxes/map_std.hako diff --git a/apps/lib/boxes/string_std.nyash b/apps/lib/boxes/string_std.hako similarity index 100% rename from apps/lib/boxes/string_std.nyash rename to apps/lib/boxes/string_std.hako diff --git a/apps/lib/cf_builder.nyash b/apps/lib/cf_builder.hako similarity index 94% rename from apps/lib/cf_builder.nyash rename to apps/lib/cf_builder.hako index 4848f4c7..18a54287 100644 --- a/apps/lib/cf_builder.nyash +++ b/apps/lib/cf_builder.hako @@ -4,13 +4,13 @@ static box ControlFlowBuilder { // If 文: then/else は配列(文ノード文字列) if_stmt(cond_json, then_stmts, else_stmts) { - using "apps/lib/json_builder.nyash" as JB + using "apps/lib/json_builder.hako" as JB return JB.if_(cond_json, then_stmts, else_stmts) } // If 式: res_name へ代入して合流([Local(res), If(..)] の配列を返す) if_expr(cond_json, then_expr_json, else_expr_json, res_name) { - using "apps/lib/json_builder.nyash" as JB + using "apps/lib/json_builder.hako" as JB local res_var = JB.variable(res_name) local decl = JB.local_decl([res_name], [null]) local then_s = [ JB.assignment(res_var, then_expr_json) ] @@ -27,8 +27,8 @@ static box ControlFlowBuilder { } match_expr_with_names(scrut_json, arms, res_name, scrut_name) { - using "apps/lib/json_builder.nyash" as JB - using "apps/lib/pattern_builder.nyash" as PT + using "apps/lib/json_builder.hako" as JB + using "apps/lib/pattern_builder.hako" as PT // scrutinee を一度だけ評価 local decl_scrut = JB.local_decl([scrut_name], [scrut_json]) diff --git a/apps/lib/json_builder.nyash b/apps/lib/json_builder.hako similarity index 98% rename from apps/lib/json_builder.nyash rename to apps/lib/json_builder.hako index 3523b595..2da146cb 100644 --- a/apps/lib/json_builder.nyash +++ b/apps/lib/json_builder.hako @@ -1,5 +1,5 @@ // JsonBuilder — Minimal helpers to construct AST JSON v0 fragments as strings -// Usage: local JB = include "apps/lib/json_builder.nyash" +// Usage: local JB = include "apps/lib/json_builder.hako" // local s = JB.literal_string("x") static box JsonBuilder { diff --git a/apps/lib/json_native/ARCHITECTURE.md b/apps/lib/json_native/ARCHITECTURE.md index 9ef7d8d0..900742e9 100644 --- a/apps/lib/json_native/ARCHITECTURE.md +++ b/apps/lib/json_native/ARCHITECTURE.md @@ -24,24 +24,24 @@ apps/lib/json_native/ ├── ARCHITECTURE.md # この設計ドキュメント │ ├── core/ # 🌟 核心データ構造 -│ ├── node.nyash # JsonNode - JSON値表現 -│ ├── value.nyash # JsonValue - 型安全ラッパー -│ └── error.nyash # JsonError - エラーハンドリング +│ ├── node.hako # JsonNode - JSON値表現 +│ ├── value.hako # JsonValue - 型安全ラッパー +│ └── error.hako # JsonError - エラーハンドリング │ ├── lexer/ # 🔍 字句解析層 -│ ├── tokenizer.nyash # トークナイザー本体 -│ ├── token.nyash # トークン定義 -│ └── scanner.nyash # 文字スキャナー +│ ├── tokenizer.hako # トークナイザー本体 +│ ├── token.hako # トークン定義 +│ └── scanner.hako # 文字スキャナー │ ├── parser/ # 🏗️ 構文解析層 -│ ├── parser.nyash # メインパーサー -│ ├── recursive.nyash # 再帰下降パーサー -│ └── validator.nyash # JSON妥当性検証 +│ ├── parser.hako # メインパーサー +│ ├── recursive.hako # 再帰下降パーサー +│ └── validator.hako # JSON妥当性検証 │ ├── utils/ # 🛠️ ユーティリティ -│ ├── string.nyash # 文字列処理ヘルパー -│ ├── escape.nyash # エスケープ処理 -│ └── pretty.nyash # 整形出力 +│ ├── string.hako # 文字列処理ヘルパー +│ ├── escape.hako # エスケープ処理 +│ └── pretty.hako # 整形出力 │ ├── tests/ # 🧪 テストスイート │ ├── unit/ # 単体テスト @@ -49,29 +49,29 @@ apps/lib/json_native/ │ └── performance/ # 性能テスト │ └── examples/ # 📖 使用例 - ├── basic.nyash # 基本的な使用例 - ├── advanced.nyash # 高度な使用例 - └── benchmark.nyash # ベンチマーク例 + ├── basic.hako # 基本的な使用例 + ├── advanced.hako # 高度な使用例 + └── benchmark.hako # ベンチマーク例 ``` ## 🎯 各モジュールの責務 ### Core層 - データ構造の基盤 ```nyash -// core/node.nyash - JSON値の抽象表現 +// core/node.hako - JSON値の抽象表現 box JsonNode { kind: StringBox // "null"|"bool"|"int"|"string"|"array"|"object" value: Box // 実際の値 meta: Box // メタデータ(位置情報等) } -// core/value.nyash - 型安全なアクセス +// core/value.hako - 型安全なアクセス box JsonValue { node: JsonNode // 内部ノード // as_string(), as_int(), as_bool() 等の型安全メソッド } -// core/error.nyash - エラー情報 +// core/error.hako - エラー情報 box JsonError { code: StringBox // エラーコード message: StringBox // エラーメッセージ @@ -81,7 +81,7 @@ box JsonError { ### Lexer層 - 文字列をトークンに分解 ```nyash -// lexer/token.nyash - トークン定義 +// lexer/token.hako - トークン定義 box JsonToken { type: StringBox // "STRING"|"NUMBER"|"LBRACE"|"RBRACE"等 value: StringBox // トークンの値 @@ -89,7 +89,7 @@ box JsonToken { end: IntegerBox // 終了位置 } -// lexer/tokenizer.nyash - メイントークナイザー +// lexer/tokenizer.hako - メイントークナイザー box JsonTokenizer { scanner: JsonScanner // 文字スキャナー tokens: ArrayBox // 生成されたトークン配列 @@ -98,14 +98,14 @@ box JsonTokenizer { ### Parser層 - トークンをASTに変換 ```nyash -// parser/parser.nyash - メインパーサー +// parser/parser.hako - メインパーサー box JsonParser { tokenizer: JsonTokenizer // 字句解析器 current: IntegerBox // 現在のトークン位置 // parse() -> JsonNode } -// parser/recursive.nyash - 再帰下降実装 +// parser/recursive.hako - 再帰下降実装 static box RecursiveParser { parse_value(tokens, pos) // 値をパース parse_object(tokens, pos) // オブジェクトをパース @@ -115,14 +115,14 @@ static box RecursiveParser { ### Utils層 - 共通ユーティリティ ```nyash -// utils/string.nyash - 文字列処理 +// utils/string.hako - 文字列処理 static box StringUtils { trim(s) // 空白トリム is_whitespace(ch) // 空白文字判定 is_digit(ch) // 数字判定 } -// utils/escape.nyash - エスケープ処理 +// utils/escape.hako - エスケープ処理 static box EscapeUtils { escape_string(s) // JSON文字列エスケープ unescape_string(s) // JSONエスケープ解除 @@ -202,7 +202,7 @@ Utils ────┴─────────┴─ (共通ユーティリテ ### 命名規則 - **Box名**: PascalCase (JsonNode, JsonParser) - **メソッド名**: snake_case (parse_value, as_string) -- **ファイル名**: snake_case (tokenizer.nyash, recursive.nyash) +- **ファイル名**: snake_case (tokenizer.hako, recursive.hako) ### コメント戦略 - **なぜ**: 設計の意図を説明 diff --git a/apps/lib/json_native/analysis/parsing_errors.nyash b/apps/lib/json_native/analysis/parsing_errors.hako similarity index 99% rename from apps/lib/json_native/analysis/parsing_errors.nyash rename to apps/lib/json_native/analysis/parsing_errors.hako index 0e86ac8d..7e29c34e 100644 --- a/apps/lib/json_native/analysis/parsing_errors.nyash +++ b/apps/lib/json_native/analysis/parsing_errors.hako @@ -1,7 +1,7 @@ // 簡単なNyashスクリプトJSON解析の「ずれ」問題分析 // yyjsonが必要になった理由と最小限の解決要件 -using "apps/lib/json_native/core/node.nyash" as JsonNode +using "apps/lib/json_native/core/node.hako" as JsonNode static box ParsingErrorAnalysis { diff --git a/apps/lib/json_native/core/compat.nyash b/apps/lib/json_native/core/compat.hako similarity index 95% rename from apps/lib/json_native/core/compat.nyash rename to apps/lib/json_native/core/compat.hako index 2892f882..7f8a9489 100644 --- a/apps/lib/json_native/core/compat.nyash +++ b/apps/lib/json_native/core/compat.hako @@ -3,8 +3,8 @@ // that expects JsonDocBox/JsonNodeBox style methods can operate // with json_native without changing call sites. -using "apps/lib/json_native/parser/parser.nyash" as JsonParserUtils -using "apps/lib/json_native/core/node.nyash" as JsonNode +using "apps/lib/json_native/parser/parser.hako" as JsonParserUtils +using "apps/lib/json_native/core/node.hako" as JsonNode // Box that mimics a document holder with parse()/root()/error() box JsonDocCompat { diff --git a/apps/lib/json_native/core/node.nyash b/apps/lib/json_native/core/node.hako similarity index 99% rename from apps/lib/json_native/core/node.nyash rename to apps/lib/json_native/core/node.hako index 76e41f38..9acbfb18 100644 --- a/apps/lib/json_native/core/node.nyash +++ b/apps/lib/json_native/core/node.hako @@ -3,8 +3,8 @@ // 美しいモジュラー設計: Utilsを活用してDRY原則を実践 // NOTE: relative paths to support alias packaging (nyash.toml) -using "../utils/string.nyash" as StringUtils -using "../utils/escape.nyash" as EscapeUtils +using "../utils/string.hako" as StringUtils +using "../utils/escape.hako" as EscapeUtils // EscapeUtils は必要時に遅延includeする(一部構文が未対応環境でも数値系は動かすため) // 🌟 JSON値を表現するBox(Everything is Box原則) diff --git a/apps/lib/json_native/lexer/scanner.nyash b/apps/lib/json_native/lexer/scanner.hako similarity index 100% rename from apps/lib/json_native/lexer/scanner.nyash rename to apps/lib/json_native/lexer/scanner.hako diff --git a/apps/lib/json_native/lexer/scanner_simple.nyash b/apps/lib/json_native/lexer/scanner_simple.hako similarity index 100% rename from apps/lib/json_native/lexer/scanner_simple.nyash rename to apps/lib/json_native/lexer/scanner_simple.hako diff --git a/apps/lib/json_native/lexer/token.nyash b/apps/lib/json_native/lexer/token.hako similarity index 100% rename from apps/lib/json_native/lexer/token.nyash rename to apps/lib/json_native/lexer/token.hako diff --git a/apps/lib/json_native/lexer/token_simple.nyash b/apps/lib/json_native/lexer/token_simple.hako similarity index 100% rename from apps/lib/json_native/lexer/token_simple.nyash rename to apps/lib/json_native/lexer/token_simple.hako diff --git a/apps/lib/json_native/lexer/tokenizer.nyash b/apps/lib/json_native/lexer/tokenizer.hako similarity index 99% rename from apps/lib/json_native/lexer/tokenizer.nyash rename to apps/lib/json_native/lexer/tokenizer.hako index 9395284f..b5608f4e 100644 --- a/apps/lib/json_native/lexer/tokenizer.nyash +++ b/apps/lib/json_native/lexer/tokenizer.hako @@ -2,9 +2,9 @@ // 責務: 文字列をトークン列に変換、エラー検出、位置情報管理 // NOTE: relative paths to support alias packaging (nyash.toml) -using "./scanner.nyash" as JsonScanner -using "./token.nyash" as JsonToken -using "../utils/escape.nyash" as EscapeUtils +using "./scanner.hako" as JsonScanner +using "./token.hako" as JsonToken +using "../utils/escape.hako" as EscapeUtils // Removed other dependencies - using self-contained methods // 🎯 高精度JSONトークナイザー(Everything is Box) diff --git a/apps/lib/json_native/parser/parser.nyash b/apps/lib/json_native/parser/parser.hako similarity index 98% rename from apps/lib/json_native/parser/parser.nyash rename to apps/lib/json_native/parser/parser.hako index ce4104e4..1e962c03 100644 --- a/apps/lib/json_native/parser/parser.nyash +++ b/apps/lib/json_native/parser/parser.hako @@ -2,10 +2,10 @@ // 責務: トークン列をJsonNodeに変換、構文エラー検出、ネスト構造処理 // NOTE: use paths relative to this file to work under nyash.toml alias packaging -using "../lexer/tokenizer.nyash" as JsonTokenizer -using "../lexer/token.nyash" as TokenType -using "../core/node.nyash" as JsonNode -using "../utils/string.nyash" as StringUtils +using "../lexer/tokenizer.hako" as JsonTokenizer +using "../lexer/token.hako" as TokenType +using "../core/node.hako" as JsonNode +using "../utils/string.hako" as StringUtils // 🎯 高精度JSON構文解析器(Everything is Box) static box JsonParserModule { diff --git a/apps/lib/json_native/tests/compat_smoke.nyash b/apps/lib/json_native/tests/compat_smoke.hako similarity index 83% rename from apps/lib/json_native/tests/compat_smoke.nyash rename to apps/lib/json_native/tests/compat_smoke.hako index 41cb06fa..a97e0c8a 100644 --- a/apps/lib/json_native/tests/compat_smoke.nyash +++ b/apps/lib/json_native/tests/compat_smoke.hako @@ -1,4 +1,4 @@ -using "apps/lib/json_native/core/compat.nyash" as JsonCompat +using "apps/lib/json_native/core/compat.hako" as JsonCompat print("compat: begin") diff --git a/apps/lib/json_native/tests/final_integration_test.nyash b/apps/lib/json_native/tests/final_integration_test.hako similarity index 99% rename from apps/lib/json_native/tests/final_integration_test.nyash rename to apps/lib/json_native/tests/final_integration_test.hako index 66e9791c..4724ea2e 100644 --- a/apps/lib/json_native/tests/final_integration_test.nyash +++ b/apps/lib/json_native/tests/final_integration_test.hako @@ -1,6 +1,6 @@ // 最終統合テスト - Nyash JSON Native完全版 -using "apps/lib/json_native/parser/parser.nyash" as JsonParserUtils +using "apps/lib/json_native/parser/parser.hako" as JsonParserUtils static box FinalIntegrationTest { diff --git a/apps/lib/json_native/tests/integration/full_test.nyash b/apps/lib/json_native/tests/integration/full_test.hako similarity index 99% rename from apps/lib/json_native/tests/integration/full_test.nyash rename to apps/lib/json_native/tests/integration/full_test.hako index 454aee47..fec2d6ca 100644 --- a/apps/lib/json_native/tests/integration/full_test.nyash +++ b/apps/lib/json_native/tests/integration/full_test.hako @@ -1,6 +1,6 @@ // 完全統合テスト - 美しいモジュラー設計の動作確認 -using "apps/lib/json_native/core/node.nyash" as JsonNode +using "apps/lib/json_native/core/node.hako" as JsonNode print("🎨 Nyash JSON Native 統合テスト開始") print("美しいモジュラー設計 vs yyjson巨大ファイル") diff --git a/apps/lib/json_native/tests/phase2_accuracy_test.nyash b/apps/lib/json_native/tests/phase2_accuracy_test.hako similarity index 98% rename from apps/lib/json_native/tests/phase2_accuracy_test.nyash rename to apps/lib/json_native/tests/phase2_accuracy_test.hako index 6d69b7ec..e3a5a608 100644 --- a/apps/lib/json_native/tests/phase2_accuracy_test.nyash +++ b/apps/lib/json_native/tests/phase2_accuracy_test.hako @@ -1,7 +1,7 @@ // Phase 2 精度テスト - yyjson相当精度の検証 -using "apps/lib/json_native/parser/parser.nyash" as JsonParser -using "apps/lib/json_native/parser/parser.nyash" as JsonParserUtils +using "apps/lib/json_native/parser/parser.hako" as JsonParser +using "apps/lib/json_native/parser/parser.hako" as JsonParserUtils static box Phase2AccuracyTest { diff --git a/apps/lib/json_native/tests/unit/core_test.nyash b/apps/lib/json_native/tests/unit/core_test.hako similarity index 98% rename from apps/lib/json_native/tests/unit/core_test.nyash rename to apps/lib/json_native/tests/unit/core_test.hako index 6c486f2e..d615cfe0 100644 --- a/apps/lib/json_native/tests/unit/core_test.nyash +++ b/apps/lib/json_native/tests/unit/core_test.hako @@ -1,6 +1,6 @@ // JsonNode基本動作テスト - 80%の動く基盤を確認 -using "apps/lib/json_native/core/node.nyash" as JsonNode +using "apps/lib/json_native/core/node.hako" as JsonNode // ===== 基本値テスト ===== diff --git a/apps/lib/json_native/tests/unit/utils_test.nyash b/apps/lib/json_native/tests/unit/utils_test.hako similarity index 95% rename from apps/lib/json_native/tests/unit/utils_test.nyash rename to apps/lib/json_native/tests/unit/utils_test.hako index 18bfc968..87c5338c 100644 --- a/apps/lib/json_native/tests/unit/utils_test.nyash +++ b/apps/lib/json_native/tests/unit/utils_test.hako @@ -1,7 +1,7 @@ // Utils層テスト - StringUtils & EscapeUtilsの動作確認 -using "apps/lib/json_native/utils/string.nyash" as StringUtils -using "apps/lib/json_native/utils/escape.nyash" as EscapeUtils +using "apps/lib/json_native/utils/string.hako" as StringUtils +using "apps/lib/json_native/utils/escape.hako" as EscapeUtils print("🧪 Utils層テスト開始") diff --git a/apps/lib/json_native/tests/yyjson_replacement_test.nyash b/apps/lib/json_native/tests/yyjson_replacement_test.hako similarity index 98% rename from apps/lib/json_native/tests/yyjson_replacement_test.nyash rename to apps/lib/json_native/tests/yyjson_replacement_test.hako index 9ea47572..37c07120 100644 --- a/apps/lib/json_native/tests/yyjson_replacement_test.nyash +++ b/apps/lib/json_native/tests/yyjson_replacement_test.hako @@ -1,6 +1,6 @@ // yyjson置き換えテスト - 既存APIとの互換性確認 -using "apps/lib/json_native/parser/parser.nyash" as JsonParserUtils +using "apps/lib/json_native/parser/parser.hako" as JsonParserUtils // 🔄 既存JsonDocBox API互換テスト static box JsonDocBoxCompatTest { @@ -88,7 +88,7 @@ static box JsonDocBoxCompatTest { // 実際の使用例テスト test_real_usage_examples() { - // apps/tests/jsonbox_parse_ok.nyash の内容をシミュレート + // apps/tests/jsonbox_parse_ok.hako の内容をシミュレート print("Real usage example simulation:") local examples = new ArrayBox() @@ -120,7 +120,7 @@ static box JsonDocBoxCompatTest { // 既存のエラーケースをテスト local error_cases = new ArrayBox() - error_cases.push("{\"kind\": }") // apps/tests/jsonbox_parse_err.nyash + error_cases.push("{\"kind\": }") // apps/tests/jsonbox_parse_err.hako error_cases.push("{invalid json}") error_cases.push("[1, 2, 3") // 不完全な配列 error_cases.push("{\"key\": \"value\",}") // 末尾カンマ diff --git a/apps/lib/json_native/utils/escape.nyash b/apps/lib/json_native/utils/escape.hako similarity index 100% rename from apps/lib/json_native/utils/escape.nyash rename to apps/lib/json_native/utils/escape.hako diff --git a/apps/lib/json_native/utils/string.nyash b/apps/lib/json_native/utils/string.hako similarity index 100% rename from apps/lib/json_native/utils/string.nyash rename to apps/lib/json_native/utils/string.hako diff --git a/apps/lib/loopform_normalize.nyash b/apps/lib/loopform_normalize.hako similarity index 82% rename from apps/lib/loopform_normalize.nyash rename to apps/lib/loopform_normalize.hako index c4eed0b9..cf87b0a9 100644 --- a/apps/lib/loopform_normalize.nyash +++ b/apps/lib/loopform_normalize.hako @@ -1,4 +1,4 @@ -// loopform_normalize.nyash — ループ正規化前処理(恒等版) +// loopform_normalize.hako — ループ正規化前処理(恒等版) // 目的: while 等を安定化(キー順・簡易キャリア整列)。 // 現段階は恒等(identity)。将来段階で安全な最小正規化を実装する。 diff --git a/apps/lib/pattern_builder.nyash b/apps/lib/pattern_builder.hako similarity index 92% rename from apps/lib/pattern_builder.nyash rename to apps/lib/pattern_builder.hako index d87072cf..652707a4 100644 --- a/apps/lib/pattern_builder.nyash +++ b/apps/lib/pattern_builder.hako @@ -4,13 +4,13 @@ static box PatternBuilder { // eq(lhs, rhs) => lhs == rhs eq(lhs_json, rhs_json) { - using "apps/lib/json_builder.nyash" as JB + using "apps/lib/json_builder.hako" as JB return JB.binary("==", lhs_json, rhs_json) } // or_([c1, c2, ...]) => c1 || c2 || ... (空は false) or_(conds) { - using "apps/lib/json_builder.nyash" as JB + using "apps/lib/json_builder.hako" as JB if conds.length() == 0 { return JB.literal_bool(false) } if conds.length() == 1 { return conds.get(0) } local i = 1 @@ -24,7 +24,7 @@ static box PatternBuilder { // and_([g1, g2, ...]) => g1 && g2 && ... (空は true) and_(conds) { - using "apps/lib/json_builder.nyash" as JB + using "apps/lib/json_builder.hako" as JB if conds.length() == 0 { return JB.literal_bool(true) } if conds.length() == 1 { return conds.get(0) } local i = 1 diff --git a/apps/lib/scopebox_inject.nyash b/apps/lib/scopebox_inject.hako similarity index 85% rename from apps/lib/scopebox_inject.nyash rename to apps/lib/scopebox_inject.hako index ecd33cf9..71bf46e9 100644 --- a/apps/lib/scopebox_inject.nyash +++ b/apps/lib/scopebox_inject.hako @@ -1,4 +1,4 @@ -// scopebox_inject.nyash — JSON v0 前処理(恒等版) +// scopebox_inject.hako — JSON v0 前処理(恒等版) // 目的: If.then/else, Loop.body を ScopeBox 相当に包む前処理の導線を提供。 // 現段階は恒等(identity)。将来段階で安全な包み込みを実装する。 diff --git a/apps/lib/std/operators/add.nyash b/apps/lib/std/operators/add.hako similarity index 92% rename from apps/lib/std/operators/add.nyash rename to apps/lib/std/operators/add.hako index 033a4861..9ced0d78 100644 --- a/apps/lib/std/operators/add.nyash +++ b/apps/lib/std/operators/add.hako @@ -1,4 +1,4 @@ -// std/operators/add.nyash +// std/operators/add.hako // AddOperator — 加算の演算子ボックス(開発用観測MVP) // 目的: 加算を明示呼び出しとして観測(返り値は未使用) diff --git a/apps/lib/std/operators/bitand.nyash b/apps/lib/std/operators/bitand.hako similarity index 100% rename from apps/lib/std/operators/bitand.nyash rename to apps/lib/std/operators/bitand.hako diff --git a/apps/lib/std/operators/bitnot.nyash b/apps/lib/std/operators/bitnot.hako similarity index 100% rename from apps/lib/std/operators/bitnot.nyash rename to apps/lib/std/operators/bitnot.hako diff --git a/apps/lib/std/operators/bitor.nyash b/apps/lib/std/operators/bitor.hako similarity index 100% rename from apps/lib/std/operators/bitor.nyash rename to apps/lib/std/operators/bitor.hako diff --git a/apps/lib/std/operators/bitxor.nyash b/apps/lib/std/operators/bitxor.hako similarity index 100% rename from apps/lib/std/operators/bitxor.nyash rename to apps/lib/std/operators/bitxor.hako diff --git a/apps/lib/std/operators/compare.nyash b/apps/lib/std/operators/compare.hako similarity index 95% rename from apps/lib/std/operators/compare.nyash rename to apps/lib/std/operators/compare.hako index dcb079e7..753b50cb 100644 --- a/apps/lib/std/operators/compare.nyash +++ b/apps/lib/std/operators/compare.hako @@ -1,4 +1,4 @@ -// std/operators/compare.nyash +// std/operators/compare.hako // CompareOperator — 比較演算の演算子ボックス(開発用観測MVP) // 目的: 比較を明示の呼び出しとして観測可能にする(MVPでは返り値は未使用) diff --git a/apps/lib/std/operators/div.nyash b/apps/lib/std/operators/div.hako similarity index 100% rename from apps/lib/std/operators/div.nyash rename to apps/lib/std/operators/div.hako diff --git a/apps/lib/std/operators/mod.nyash b/apps/lib/std/operators/mod.hako similarity index 100% rename from apps/lib/std/operators/mod.nyash rename to apps/lib/std/operators/mod.hako diff --git a/apps/lib/std/operators/mul.nyash b/apps/lib/std/operators/mul.hako similarity index 100% rename from apps/lib/std/operators/mul.nyash rename to apps/lib/std/operators/mul.hako diff --git a/apps/lib/std/operators/neg.nyash b/apps/lib/std/operators/neg.hako similarity index 100% rename from apps/lib/std/operators/neg.nyash rename to apps/lib/std/operators/neg.hako diff --git a/apps/lib/std/operators/not.nyash b/apps/lib/std/operators/not.hako similarity index 100% rename from apps/lib/std/operators/not.nyash rename to apps/lib/std/operators/not.hako diff --git a/apps/lib/std/operators/shl.nyash b/apps/lib/std/operators/shl.hako similarity index 100% rename from apps/lib/std/operators/shl.nyash rename to apps/lib/std/operators/shl.hako diff --git a/apps/lib/std/operators/shr.nyash b/apps/lib/std/operators/shr.hako similarity index 100% rename from apps/lib/std/operators/shr.nyash rename to apps/lib/std/operators/shr.hako diff --git a/apps/lib/std/operators/stringify.nyash b/apps/lib/std/operators/stringify.hako similarity index 94% rename from apps/lib/std/operators/stringify.nyash rename to apps/lib/std/operators/stringify.hako index ea89b557..6a92fe51 100644 --- a/apps/lib/std/operators/stringify.nyash +++ b/apps/lib/std/operators/stringify.hako @@ -1,4 +1,4 @@ -// std/operators/stringify.nyash +// std/operators/stringify.hako // StringifyOperator — 明示的な文字列化の演算子ボックス(開発用) // 目的: 暗黙の toString に依存せず、観測可能な文字列化を提供する diff --git a/apps/lib/std/operators/sub.nyash b/apps/lib/std/operators/sub.hako similarity index 100% rename from apps/lib/std/operators/sub.nyash rename to apps/lib/std/operators/sub.hako diff --git a/apps/libs/array_ext.nyash b/apps/libs/array_ext.hako similarity index 100% rename from apps/libs/array_ext.nyash rename to apps/libs/array_ext.hako diff --git a/apps/libs/byte_cursor.nyash b/apps/libs/byte_cursor.hako similarity index 100% rename from apps/libs/byte_cursor.nyash rename to apps/libs/byte_cursor.hako diff --git a/apps/libs/json_cur.nyash b/apps/libs/json_cur.hako similarity index 100% rename from apps/libs/json_cur.nyash rename to apps/libs/json_cur.hako diff --git a/apps/libs/string_builder.nyash b/apps/libs/string_builder.hako similarity index 100% rename from apps/libs/string_builder.nyash rename to apps/libs/string_builder.hako diff --git a/apps/libs/string_ext.nyash b/apps/libs/string_ext.hako similarity index 100% rename from apps/libs/string_ext.nyash rename to apps/libs/string_ext.hako diff --git a/apps/libs/test_assert.nyash b/apps/libs/test_assert.hako similarity index 100% rename from apps/libs/test_assert.nyash rename to apps/libs/test_assert.hako diff --git a/apps/libs/utf8_cursor.nyash b/apps/libs/utf8_cursor.hako similarity index 100% rename from apps/libs/utf8_cursor.nyash rename to apps/libs/utf8_cursor.hako diff --git a/apps/loop-continue-demo/main.nyash b/apps/loop-continue-demo/main.hako similarity index 100% rename from apps/loop-continue-demo/main.nyash rename to apps/loop-continue-demo/main.hako diff --git a/apps/macros/examples/array_prepend_zero_macro.nyash b/apps/macros/examples/array_prepend_zero_macro.hako similarity index 97% rename from apps/macros/examples/array_prepend_zero_macro.nyash rename to apps/macros/examples/array_prepend_zero_macro.hako index aae0f5c4..7ce32204 100644 --- a/apps/macros/examples/array_prepend_zero_macro.nyash +++ b/apps/macros/examples/array_prepend_zero_macro.hako @@ -1,4 +1,4 @@ -// array_prepend_zero_macro.nyash +// array_prepend_zero_macro.hako // MacroBoxSpec.expand: prepend 0 to every Array elements list in AST JSON v0 // Contract: expand(json: string) -> string (AST JSON v0) diff --git a/apps/macros/examples/echo_macro.nyash b/apps/macros/examples/echo_macro.hako similarity index 100% rename from apps/macros/examples/echo_macro.nyash rename to apps/macros/examples/echo_macro.hako diff --git a/apps/macros/examples/env_tag_string_macro.nyash b/apps/macros/examples/env_tag_string_macro.hako similarity index 100% rename from apps/macros/examples/env_tag_string_macro.nyash rename to apps/macros/examples/env_tag_string_macro.hako diff --git a/apps/macros/examples/for_foreach_macro.nyash b/apps/macros/examples/for_foreach_macro.hako similarity index 100% rename from apps/macros/examples/for_foreach_macro.nyash rename to apps/macros/examples/for_foreach_macro.hako diff --git a/apps/macros/examples/gensym_example_macro.nyash b/apps/macros/examples/gensym_example_macro.hako similarity index 100% rename from apps/macros/examples/gensym_example_macro.nyash rename to apps/macros/examples/gensym_example_macro.hako diff --git a/apps/macros/examples/hang_macro.nyash b/apps/macros/examples/hang_macro.hako similarity index 91% rename from apps/macros/examples/hang_macro.nyash rename to apps/macros/examples/hang_macro.hako index 53cc8a95..2ded31b8 100644 --- a/apps/macros/examples/hang_macro.nyash +++ b/apps/macros/examples/hang_macro.hako @@ -1,4 +1,4 @@ -// hang_macro.nyash +// hang_macro.hako // Macro that never returns (infinite loop) to test timeout handling. static box MacroBoxSpec { diff --git a/apps/macros/examples/if_match_normalize_macro.nyash b/apps/macros/examples/if_match_normalize_macro.hako similarity index 99% rename from apps/macros/examples/if_match_normalize_macro.nyash rename to apps/macros/examples/if_match_normalize_macro.hako index 5db98bd6..328eb48b 100644 --- a/apps/macros/examples/if_match_normalize_macro.nyash +++ b/apps/macros/examples/if_match_normalize_macro.hako @@ -1,4 +1,4 @@ -// if_match_normalize_macro.nyash +// if_match_normalize_macro.hako // Scaffold: identity expansion for now. Future: introduce join variable and // canonical If/Match normalization (scrutinee once, guard fused) as documented // in docs/guides/if-match-normalize.md. @@ -7,7 +7,7 @@ static box MacroBoxSpec { name() { return "IfMatchNormalize" } expand(json, ctx) { - using "apps/lib/json_builder.nyash" as JB + using "apps/lib/json_builder.hako" as JB // --- helpers copied/adapted from loop_normalize --- function parse_value(s, i) { diff --git a/apps/macros/examples/invalid_json_macro.nyash b/apps/macros/examples/invalid_json_macro.hako similarity index 82% rename from apps/macros/examples/invalid_json_macro.nyash rename to apps/macros/examples/invalid_json_macro.hako index c6e9047e..40b2ad5e 100644 --- a/apps/macros/examples/invalid_json_macro.nyash +++ b/apps/macros/examples/invalid_json_macro.hako @@ -1,4 +1,4 @@ -// invalid_json_macro.nyash +// invalid_json_macro.hako // Macro that returns invalid JSON (for strict error test) static box MacroBoxSpec { diff --git a/apps/macros/examples/loop_normalize_macro.nyash b/apps/macros/examples/loop_normalize_macro.hako similarity index 99% rename from apps/macros/examples/loop_normalize_macro.nyash rename to apps/macros/examples/loop_normalize_macro.hako index 5b38d161..11e85b0a 100644 --- a/apps/macros/examples/loop_normalize_macro.nyash +++ b/apps/macros/examples/loop_normalize_macro.hako @@ -1,4 +1,4 @@ -// loop_normalize_macro.nyash +// loop_normalize_macro.hako // MVP: identity expansion with (json, ctx) signature. // Next steps: normalize `loop(cond){ body }` into carrier-based LoopForm. @@ -10,7 +10,7 @@ static box MacroBoxSpec { // "kind":"Loop","condition":,"body":[ ... ] and rewrite them // into a normalized form using JsonBuilder (keys ordered as condition/body). - using "apps/lib/json_builder.nyash" as JB + using "apps/lib/json_builder.hako" as JB // helpers local s = json diff --git a/apps/macros/examples/macro_ctx_demo.nyash b/apps/macros/examples/macro_ctx_demo.hako similarity index 100% rename from apps/macros/examples/macro_ctx_demo.nyash rename to apps/macros/examples/macro_ctx_demo.hako diff --git a/apps/macros/examples/map_insert_tag_macro.nyash b/apps/macros/examples/map_insert_tag_macro.hako similarity index 97% rename from apps/macros/examples/map_insert_tag_macro.nyash rename to apps/macros/examples/map_insert_tag_macro.hako index 2029a1d8..385ee504 100644 --- a/apps/macros/examples/map_insert_tag_macro.nyash +++ b/apps/macros/examples/map_insert_tag_macro.hako @@ -1,4 +1,4 @@ -// map_insert_tag_macro.nyash +// map_insert_tag_macro.hako // MacroBoxSpec.expand: insert a leading entry {"k":"__macro","v":"on"} into every Map entries list // Contract: expand(json: string) -> string (AST JSON v0) diff --git a/apps/macros/examples/scope_defer_macro.nyash b/apps/macros/examples/scope_defer_macro.hako similarity index 95% rename from apps/macros/examples/scope_defer_macro.nyash rename to apps/macros/examples/scope_defer_macro.hako index a14b8fce..e2eb27f4 100644 --- a/apps/macros/examples/scope_defer_macro.nyash +++ b/apps/macros/examples/scope_defer_macro.hako @@ -1,4 +1,4 @@ -// scope_defer_macro.nyash +// scope_defer_macro.hako // MVP scaffold: detect @scope/@defer style markers in AST JSON (string) and keep identity. // Future: attach scope attrs to blocks and emit MIR hints in lowering. diff --git a/apps/macros/examples/upper_string_macro.nyash b/apps/macros/examples/upper_string_macro.hako similarity index 98% rename from apps/macros/examples/upper_string_macro.nyash rename to apps/macros/examples/upper_string_macro.hako index 8ff30672..cccce0ac 100644 --- a/apps/macros/examples/upper_string_macro.nyash +++ b/apps/macros/examples/upper_string_macro.hako @@ -1,4 +1,4 @@ -// upper_string_macro.nyash +// upper_string_macro.hako // MacroBoxSpec.expand: uppercase string literal values that start with "UPPER:" in AST JSON v0 // Contract: expand(json: string) -> string (AST JSON v0) diff --git a/apps/macros/expand_runner.nyash b/apps/macros/expand_runner.hako similarity index 100% rename from apps/macros/expand_runner.nyash rename to apps/macros/expand_runner.hako diff --git a/apps/ny-array-bench/main.nyash b/apps/ny-array-bench/main.hako similarity index 100% rename from apps/ny-array-bench/main.nyash rename to apps/ny-array-bench/main.hako diff --git a/apps/ny-echo/main.nyash b/apps/ny-echo/main.hako similarity index 100% rename from apps/ny-echo/main.nyash rename to apps/ny-echo/main.hako diff --git a/apps/ny-echo/test.sh b/apps/ny-echo/test.sh index dcda8daa..e295bf61 100644 --- a/apps/ny-echo/test.sh +++ b/apps/ny-echo/test.sh @@ -4,7 +4,7 @@ set -e NYASH=${NYASH:-"../../target/release/nyash"} -SCRIPT="main.nyash" +SCRIPT="main.hako" echo "=== ny-echo Test Suite ===" diff --git a/apps/ny-mem-bench/main.nyash b/apps/ny-mem-bench/main.hako similarity index 100% rename from apps/ny-mem-bench/main.nyash rename to apps/ny-mem-bench/main.hako diff --git a/apps/ny-mir-samples/arithmetic.nyash b/apps/ny-mir-samples/arithmetic.hako similarity index 100% rename from apps/ny-mir-samples/arithmetic.nyash rename to apps/ny-mir-samples/arithmetic.hako diff --git a/apps/ny-mir-samples/return_42.nyash b/apps/ny-mir-samples/return_42.hako similarity index 100% rename from apps/ny-mir-samples/return_42.nyash rename to apps/ny-mir-samples/return_42.hako diff --git a/apps/nyfmt-poc/README.md b/apps/nyfmt-poc/README.md index 9ca524d2..fd2e2d23 100644 --- a/apps/nyfmt-poc/README.md +++ b/apps/nyfmt-poc/README.md @@ -3,10 +3,10 @@ This directory hosts small snippets demonstrating reversible formatting goals. No runtime behavior changes or formatter are included in‑tree yet. Examples to explore: -- pipeline-compact.nyash: pipeline style vs canonical call nesting -- safe-access-default.nyash: `?.` and `??` sugar vs explicit conditionals - - coalesce-range-roundtrip.nyash: `??` and `a..b` triad (Before/Canonical/Round‑Trip) - - compound-assign-roundtrip.nyash: `+=` triad (Before/Canonical/Round‑Trip) +- pipeline-compact.hako: pipeline style vs canonical call nesting +- safe-access-default.hako: `?.` and `??` sugar vs explicit conditionals + - coalesce-range-roundtrip.hako: `??` and `a..b` triad (Before/Canonical/Round‑Trip) + - compound-assign-roundtrip.hako: `+=` triad (Before/Canonical/Round‑Trip) Enable PoC smoke hints: ```bash diff --git a/apps/nyfmt-poc/coalesce-range-roundtrip.nyash b/apps/nyfmt-poc/coalesce-range-roundtrip.hako similarity index 100% rename from apps/nyfmt-poc/coalesce-range-roundtrip.nyash rename to apps/nyfmt-poc/coalesce-range-roundtrip.hako diff --git a/apps/nyfmt-poc/compound-assign-roundtrip.nyash b/apps/nyfmt-poc/compound-assign-roundtrip.hako similarity index 100% rename from apps/nyfmt-poc/compound-assign-roundtrip.nyash rename to apps/nyfmt-poc/compound-assign-roundtrip.hako diff --git a/apps/nyfmt-poc/pipeline-compact.nyash b/apps/nyfmt-poc/pipeline-compact.hako similarity index 100% rename from apps/nyfmt-poc/pipeline-compact.nyash rename to apps/nyfmt-poc/pipeline-compact.hako diff --git a/apps/nyfmt-poc/safe-access-default.nyash b/apps/nyfmt-poc/safe-access-default.hako similarity index 100% rename from apps/nyfmt-poc/safe-access-default.nyash rename to apps/nyfmt-poc/safe-access-default.hako diff --git a/apps/p2p-function-handler-demo/main.nyash b/apps/p2p-function-handler-demo/main.hako similarity index 100% rename from apps/p2p-function-handler-demo/main.nyash rename to apps/p2p-function-handler-demo/main.hako diff --git a/apps/peek-demo/main.nyash b/apps/peek-demo/main.hako similarity index 100% rename from apps/peek-demo/main.nyash rename to apps/peek-demo/main.hako diff --git a/apps/result-qmark-demo/main.nyash b/apps/result-qmark-demo/main.hako similarity index 100% rename from apps/result-qmark-demo/main.nyash rename to apps/result-qmark-demo/main.hako diff --git a/apps/selfhost-minimal/main.nyash b/apps/selfhost-minimal/main.hako similarity index 100% rename from apps/selfhost-minimal/main.nyash rename to apps/selfhost-minimal/main.hako diff --git a/apps/selfhost-runtime/boxes_std.nyash b/apps/selfhost-runtime/boxes_std.hako similarity index 100% rename from apps/selfhost-runtime/boxes_std.nyash rename to apps/selfhost-runtime/boxes_std.hako diff --git a/apps/selfhost-runtime/mir_loader.nyash b/apps/selfhost-runtime/mir_loader.hako similarity index 100% rename from apps/selfhost-runtime/mir_loader.nyash rename to apps/selfhost-runtime/mir_loader.hako diff --git a/apps/selfhost-runtime/ops_calls.nyash b/apps/selfhost-runtime/ops_calls.hako similarity index 100% rename from apps/selfhost-runtime/ops_calls.nyash rename to apps/selfhost-runtime/ops_calls.hako diff --git a/apps/selfhost-runtime/ops_core.nyash b/apps/selfhost-runtime/ops_core.hako similarity index 100% rename from apps/selfhost-runtime/ops_core.nyash rename to apps/selfhost-runtime/ops_core.hako diff --git a/apps/selfhost-runtime/runner.nyash b/apps/selfhost-runtime/runner.hako similarity index 92% rename from apps/selfhost-runtime/runner.nyash rename to apps/selfhost-runtime/runner.hako index 2cff1ac3..77fa3929 100644 --- a/apps/selfhost-runtime/runner.nyash +++ b/apps/selfhost-runtime/runner.hako @@ -2,12 +2,12 @@ // Reads MIR(JSON v0) from args[0], parses minimal summary, and exits 0 on success. // No side-effects; prints nothing unless later stages add tracing. -using "apps/selfhost-runtime/mir_loader.nyash" -using "apps/selfhost-runtime/ops_calls.nyash" -using "apps/lib/boxes/console_std.nyash" -using "apps/lib/boxes/string_std.nyash" -using "apps/lib/boxes/array_std.nyash" -using "apps/lib/boxes/map_std.nyash" +using "apps/selfhost-runtime/mir_loader.hako" +using "apps/selfhost-runtime/ops_calls.hako" +using "apps/lib/boxes/console_std.hako" +using "apps/lib/boxes/string_std.hako" +using "apps/lib/boxes/array_std.hako" +using "apps/lib/boxes/map_std.hako" static box Main { main(args) { diff --git a/apps/selfhost-vm/boxes/json_cur.nyash b/apps/selfhost-vm/boxes/json_cur.hako similarity index 100% rename from apps/selfhost-vm/boxes/json_cur.nyash rename to apps/selfhost-vm/boxes/json_cur.hako diff --git a/apps/selfhost-vm/boxes/mini_vm_core.nyash b/apps/selfhost-vm/boxes/mini_vm_core.hako similarity index 100% rename from apps/selfhost-vm/boxes/mini_vm_core.nyash rename to apps/selfhost-vm/boxes/mini_vm_core.hako diff --git a/apps/selfhost-vm/boxes/mini_vm_prints.nyash b/apps/selfhost-vm/boxes/mini_vm_prints.hako similarity index 100% rename from apps/selfhost-vm/boxes/mini_vm_prints.nyash rename to apps/selfhost-vm/boxes/mini_vm_prints.hako diff --git a/apps/selfhost-vm/boxes/seam_inspector.nyash b/apps/selfhost-vm/boxes/seam_inspector.hako similarity index 100% rename from apps/selfhost-vm/boxes/seam_inspector.nyash rename to apps/selfhost-vm/boxes/seam_inspector.hako diff --git a/apps/selfhost-vm/collect_empty_args_smoke.nyash b/apps/selfhost-vm/collect_empty_args_smoke.hako similarity index 100% rename from apps/selfhost-vm/collect_empty_args_smoke.nyash rename to apps/selfhost-vm/collect_empty_args_smoke.hako diff --git a/apps/selfhost-vm/collect_empty_args_using_smoke.nyash b/apps/selfhost-vm/collect_empty_args_using_smoke.hako similarity index 100% rename from apps/selfhost-vm/collect_empty_args_using_smoke.nyash rename to apps/selfhost-vm/collect_empty_args_using_smoke.hako diff --git a/apps/selfhost-vm/collect_literal_eval.nyash b/apps/selfhost-vm/collect_literal_eval.hako similarity index 100% rename from apps/selfhost-vm/collect_literal_eval.nyash rename to apps/selfhost-vm/collect_literal_eval.hako diff --git a/apps/selfhost-vm/collect_mixed_smoke.nyash b/apps/selfhost-vm/collect_mixed_smoke.hako similarity index 100% rename from apps/selfhost-vm/collect_mixed_smoke.nyash rename to apps/selfhost-vm/collect_mixed_smoke.hako diff --git a/apps/selfhost-vm/collect_mixed_using_smoke.nyash b/apps/selfhost-vm/collect_mixed_using_smoke.hako similarity index 100% rename from apps/selfhost-vm/collect_mixed_using_smoke.nyash rename to apps/selfhost-vm/collect_mixed_using_smoke.hako diff --git a/apps/selfhost-vm/collect_prints_loader_smoke.nyash b/apps/selfhost-vm/collect_prints_loader_smoke.hako similarity index 100% rename from apps/selfhost-vm/collect_prints_loader_smoke.nyash rename to apps/selfhost-vm/collect_prints_loader_smoke.hako diff --git a/apps/selfhost-vm/json_loader.nyash b/apps/selfhost-vm/json_loader.hako similarity index 98% rename from apps/selfhost-vm/json_loader.nyash rename to apps/selfhost-vm/json_loader.hako index 453ddf84..eb6fa18a 100644 --- a/apps/selfhost-vm/json_loader.nyash +++ b/apps/selfhost-vm/json_loader.hako @@ -1,7 +1,7 @@ // MiniJsonLoader (Stage-B scaffold) // Purpose: centralize minimal JSON cursor ops for Mini-VM. // Implementation note: For now we delegate to local MiniJsonCur-compatible -// helpers. In a later step, this can be swapped to use `apps/libs/json_cur.nyash` +// helpers. In a later step, this can be swapped to use `apps/libs/json_cur.hako` // (JsonCursorBox) without touching Mini-VM call sites. static box MiniJsonLoader { diff --git a/apps/selfhost-vm/mini_vm.nyash b/apps/selfhost-vm/mini_vm.hako similarity index 100% rename from apps/selfhost-vm/mini_vm.nyash rename to apps/selfhost-vm/mini_vm.hako diff --git a/apps/selfhost-vm/mini_vm_if_branch.nyash b/apps/selfhost-vm/mini_vm_if_branch.hako similarity index 100% rename from apps/selfhost-vm/mini_vm_if_branch.nyash rename to apps/selfhost-vm/mini_vm_if_branch.hako diff --git a/apps/selfhost-vm/mini_vm_lib.nyash b/apps/selfhost-vm/mini_vm_lib.hako similarity index 100% rename from apps/selfhost-vm/mini_vm_lib.nyash rename to apps/selfhost-vm/mini_vm_lib.hako diff --git a/apps/selfhost-vm/run_core_wrapper.nyash b/apps/selfhost-vm/run_core_wrapper.hako similarity index 100% rename from apps/selfhost-vm/run_core_wrapper.nyash rename to apps/selfhost-vm/run_core_wrapper.hako diff --git a/apps/smokes/jit_aot_any_isempty_string.nyash b/apps/smokes/jit_aot_any_isempty_string.hako similarity index 100% rename from apps/smokes/jit_aot_any_isempty_string.nyash rename to apps/smokes/jit_aot_any_isempty_string.hako diff --git a/apps/smokes/jit_aot_any_len_string.nyash b/apps/smokes/jit_aot_any_len_string.hako similarity index 100% rename from apps/smokes/jit_aot_any_len_string.nyash rename to apps/smokes/jit_aot_any_len_string.hako diff --git a/apps/smokes/jit_aot_arith_branch.nyash b/apps/smokes/jit_aot_arith_branch.hako similarity index 100% rename from apps/smokes/jit_aot_arith_branch.nyash rename to apps/smokes/jit_aot_arith_branch.hako diff --git a/apps/smokes/jit_aot_map_min.nyash b/apps/smokes/jit_aot_map_min.hako similarity index 100% rename from apps/smokes/jit_aot_map_min.nyash rename to apps/smokes/jit_aot_map_min.hako diff --git a/apps/smokes/jit_aot_string_length_smoke.nyash b/apps/smokes/jit_aot_string_length_smoke.hako similarity index 100% rename from apps/smokes/jit_aot_string_length_smoke.nyash rename to apps/smokes/jit_aot_string_length_smoke.hako diff --git a/apps/smokes/jit_aot_string_min.nyash b/apps/smokes/jit_aot_string_min.hako similarity index 100% rename from apps/smokes/jit_aot_string_min.nyash rename to apps/smokes/jit_aot_string_min.hako diff --git a/apps/smokes/jit_direct_array_mut.nyash b/apps/smokes/jit_direct_array_mut.hako similarity index 100% rename from apps/smokes/jit_direct_array_mut.nyash rename to apps/smokes/jit_direct_array_mut.hako diff --git a/apps/smokes/std/array_len_min.nyash b/apps/smokes/std/array_len_min.hako similarity index 100% rename from apps/smokes/std/array_len_min.nyash rename to apps/smokes/std/array_len_min.hako diff --git a/apps/smokes/std/array_smoke.nyash b/apps/smokes/std/array_smoke.hako similarity index 96% rename from apps/smokes/std/array_smoke.nyash rename to apps/smokes/std/array_smoke.hako index b465f9c8..5f6ccfd1 100644 --- a/apps/smokes/std/array_smoke.nyash +++ b/apps/smokes/std/array_smoke.hako @@ -2,7 +2,7 @@ static box Main { main() { local A - using "apps/std/array.nyash" as A + using "apps/std/array.hako" as A local fails fails = 0 diff --git a/apps/smokes/std/array_smoke_dbg.nyash b/apps/smokes/std/array_smoke_dbg.hako similarity index 95% rename from apps/smokes/std/array_smoke_dbg.nyash rename to apps/smokes/std/array_smoke_dbg.hako index 37d82397..a0266ea1 100644 --- a/apps/smokes/std/array_smoke_dbg.nyash +++ b/apps/smokes/std/array_smoke_dbg.hako @@ -1,7 +1,7 @@ static box Main { main() { local A - using "apps/std/array.nyash" as A + using "apps/std/array.hako" as A local fails fails = 0 diff --git a/apps/smokes/std/string_smoke.nyash b/apps/smokes/std/string_smoke.hako similarity index 96% rename from apps/smokes/std/string_smoke.nyash rename to apps/smokes/std/string_smoke.hako index fe6117a4..961513f8 100644 --- a/apps/smokes/std/string_smoke.nyash +++ b/apps/smokes/std/string_smoke.hako @@ -2,7 +2,7 @@ static box Main { main() { local S - using "apps/std/string.nyash" as S + using "apps/std/string.hako" as S local fails fails = 0 diff --git a/apps/std/array.nyash b/apps/std/array.hako similarity index 96% rename from apps/std/array.nyash rename to apps/std/array.hako index 1b103881..aecd074f 100644 --- a/apps/std/array.nyash +++ b/apps/std/array.hako @@ -1,6 +1,6 @@ // std.array (Ny) - Phase15 MVP // Usage: -// include "apps/std/array.nyash" +// include "apps/std/array.hako" // local a = new ArrayBox(); StdArrayNy.array_push(a, 1); StdArrayNy.array_len(a) // Notes: // - In-place ops where natural (push/pop) diff --git a/apps/std/array_std.nyash b/apps/std/array_std.hako similarity index 100% rename from apps/std/array_std.nyash rename to apps/std/array_std.hako diff --git a/apps/std/map_std.nyash b/apps/std/map_std.hako similarity index 100% rename from apps/std/map_std.nyash rename to apps/std/map_std.hako diff --git a/apps/std/ny-config.nyash b/apps/std/ny-config.hako similarity index 96% rename from apps/std/ny-config.nyash rename to apps/std/ny-config.hako index ea2d446e..0516f368 100644 --- a/apps/std/ny-config.nyash +++ b/apps/std/ny-config.hako @@ -1,4 +1,4 @@ -// ny-config.nyash - Load nyash.toml and expose minimal helpers +// ny-config.hako - Load nyash.toml and expose minimal helpers static box NyConfig { // Read nyash.toml (or given path) and return JSON string via TOMLBox.toJson() diff --git a/apps/std/string.nyash b/apps/std/string.hako similarity index 97% rename from apps/std/string.nyash rename to apps/std/string.hako index 39e079af..257f332a 100644 --- a/apps/std/string.nyash +++ b/apps/std/string.hako @@ -1,6 +1,6 @@ // std.string (Ny) - Phase15 MVP // Usage: -// include "apps/std/string.nyash" +// include "apps/std/string.hako" // StdStringNy.string_length("abc"), StdStringNy.string_concat("a","b"), // StdStringNy.string_slice("hello",1,4), StdStringNy.string_index_of("banana","na"), StdStringNy.string_equals("x","y") // Notes: diff --git a/apps/std/string2.nyash b/apps/std/string2.hako similarity index 93% rename from apps/std/string2.nyash rename to apps/std/string2.hako index 43132c1f..c4892268 100644 --- a/apps/std/string2.nyash +++ b/apps/std/string2.hako @@ -1,6 +1,6 @@ // std.string (Ny) - Phase15 MVP // Usage: -// include "apps/std/string.nyash" +// include "apps/std/string.hako" // StdStringNy.string_length("abc"), StdStringNy.string_concat("a","b"), // StdStringNy.string_slice("hello",1,4), StdStringNy.string_index_of("banana","na"), StdStringNy.string_equals("x","y") // Notes: diff --git a/apps/std/string_std.nyash b/apps/std/string_std.hako similarity index 100% rename from apps/std/string_std.nyash rename to apps/std/string_std.hako diff --git a/apps/tests/array_literal_basic.nyash b/apps/tests/array_literal_basic.hako similarity index 100% rename from apps/tests/array_literal_basic.nyash rename to apps/tests/array_literal_basic.hako diff --git a/apps/tests/array_min_ops.nyash b/apps/tests/array_min_ops.hako similarity index 100% rename from apps/tests/array_min_ops.nyash rename to apps/tests/array_min_ops.hako diff --git a/apps/tests/async-await-min/main.nyash b/apps/tests/async-await-min/main.hako similarity index 100% rename from apps/tests/async-await-min/main.nyash rename to apps/tests/async-await-min/main.hako diff --git a/apps/tests/async-await-timeout-fixed/main.nyash b/apps/tests/async-await-timeout-fixed/main.hako similarity index 100% rename from apps/tests/async-await-timeout-fixed/main.nyash rename to apps/tests/async-await-timeout-fixed/main.hako diff --git a/apps/tests/async-await-timeout/main.nyash b/apps/tests/async-await-timeout/main.hako similarity index 100% rename from apps/tests/async-await-timeout/main.nyash rename to apps/tests/async-await-timeout/main.hako diff --git a/apps/tests/async-nowait-basic/main.nyash b/apps/tests/async-nowait-basic/main.hako similarity index 100% rename from apps/tests/async-nowait-basic/main.nyash rename to apps/tests/async-nowait-basic/main.hako diff --git a/apps/tests/async-scope-token/main.nyash b/apps/tests/async-scope-token/main.hako similarity index 100% rename from apps/tests/async-scope-token/main.nyash rename to apps/tests/async-scope-token/main.hako diff --git a/apps/tests/async-spawn-instance/main.nyash b/apps/tests/async-spawn-instance/main.hako similarity index 100% rename from apps/tests/async-spawn-instance/main.nyash rename to apps/tests/async-spawn-instance/main.hako diff --git a/apps/tests/block_postfix_catch_basic.nyash b/apps/tests/block_postfix_catch_basic.hako similarity index 100% rename from apps/tests/block_postfix_catch_basic.nyash rename to apps/tests/block_postfix_catch_basic.hako diff --git a/apps/tests/concat-string-plugin/add_plugin_strings.nyash b/apps/tests/concat-string-plugin/add_plugin_strings.hako similarity index 100% rename from apps/tests/concat-string-plugin/add_plugin_strings.nyash rename to apps/tests/concat-string-plugin/add_plugin_strings.hako diff --git a/apps/tests/concat-string-plugin/main.nyash b/apps/tests/concat-string-plugin/main.hako similarity index 100% rename from apps/tests/concat-string-plugin/main.nyash rename to apps/tests/concat-string-plugin/main.hako diff --git a/apps/tests/dev_inline_binop_probe.nyash b/apps/tests/dev_inline_binop_probe.hako similarity index 100% rename from apps/tests/dev_inline_binop_probe.nyash rename to apps/tests/dev_inline_binop_probe.hako diff --git a/apps/tests/dev_json_digits_from.nyash b/apps/tests/dev_json_digits_from.hako similarity index 100% rename from apps/tests/dev_json_digits_from.nyash rename to apps/tests/dev_json_digits_from.hako diff --git a/apps/tests/dev_parse_include_prints.nyash b/apps/tests/dev_parse_include_prints.hako similarity index 100% rename from apps/tests/dev_parse_include_prints.nyash rename to apps/tests/dev_parse_include_prints.hako diff --git a/apps/tests/dev_prints_count_probe.nyash b/apps/tests/dev_prints_count_probe.hako similarity index 100% rename from apps/tests/dev_prints_count_probe.nyash rename to apps/tests/dev_prints_count_probe.hako diff --git a/apps/tests/dev_prints_probe.nyash b/apps/tests/dev_prints_probe.hako similarity index 100% rename from apps/tests/dev_prints_probe.nyash rename to apps/tests/dev_prints_probe.hako diff --git a/apps/tests/dev_scan_digits.nyash b/apps/tests/dev_scan_digits.hako similarity index 100% rename from apps/tests/dev_scan_digits.nyash rename to apps/tests/dev_scan_digits.hako diff --git a/apps/tests/dev_scan_prints.nyash b/apps/tests/dev_scan_prints.hako similarity index 100% rename from apps/tests/dev_scan_prints.nyash rename to apps/tests/dev_scan_prints.hako diff --git a/apps/tests/dev_scan_prints_int_slice.nyash b/apps/tests/dev_scan_prints_int_slice.hako similarity index 100% rename from apps/tests/dev_scan_prints_int_slice.nyash rename to apps/tests/dev_scan_prints_int_slice.hako diff --git a/apps/tests/dev_scan_prints_slice.nyash b/apps/tests/dev_scan_prints_slice.hako similarity index 100% rename from apps/tests/dev_scan_prints_slice.nyash rename to apps/tests/dev_scan_prints_slice.hako diff --git a/apps/tests/dev_scan_probe.nyash b/apps/tests/dev_scan_probe.hako similarity index 100% rename from apps/tests/dev_scan_probe.nyash rename to apps/tests/dev_scan_probe.hako diff --git a/apps/tests/dev_seam_inspect_dump.nyash b/apps/tests/dev_seam_inspect_dump.hako similarity index 100% rename from apps/tests/dev_seam_inspect_dump.nyash rename to apps/tests/dev_seam_inspect_dump.hako diff --git a/apps/tests/dev_sugar/at_local_basic.nyash b/apps/tests/dev_sugar/at_local_basic.hako similarity index 100% rename from apps/tests/dev_sugar/at_local_basic.nyash rename to apps/tests/dev_sugar/at_local_basic.hako diff --git a/apps/tests/dev_sugar/compound_and_inc.nyash b/apps/tests/dev_sugar/compound_and_inc.hako similarity index 100% rename from apps/tests/dev_sugar/compound_and_inc.nyash rename to apps/tests/dev_sugar/compound_and_inc.hako diff --git a/apps/tests/dev_sugar/print_when_fn.nyash b/apps/tests/dev_sugar/print_when_fn.hako similarity index 100% rename from apps/tests/dev_sugar/print_when_fn.nyash rename to apps/tests/dev_sugar/print_when_fn.hako diff --git a/apps/tests/dev_try_int_value.nyash b/apps/tests/dev_try_int_value.hako similarity index 100% rename from apps/tests/dev_try_int_value.nyash rename to apps/tests/dev_try_int_value.hako diff --git a/apps/tests/esc_dirname_smoke.nyash b/apps/tests/esc_dirname_smoke.hako similarity index 91% rename from apps/tests/esc_dirname_smoke.nyash rename to apps/tests/esc_dirname_smoke.hako index 02473070..60bd2fcd 100644 --- a/apps/tests/esc_dirname_smoke.nyash +++ b/apps/tests/esc_dirname_smoke.hako @@ -1,4 +1,4 @@ -// esc_dirname_smoke.nyash — minimal smoke for esc_json/dirname and println +// esc_dirname_smoke.hako — minimal smoke for esc_json/dirname and println static box Main { esc_json(s) { diff --git a/apps/tests/gc-sync-stress/main.nyash b/apps/tests/gc-sync-stress/main.hako similarity index 100% rename from apps/tests/gc-sync-stress/main.nyash rename to apps/tests/gc-sync-stress/main.hako diff --git a/apps/tests/hello_simple_llvm.nyash b/apps/tests/hello_simple_llvm.hako similarity index 100% rename from apps/tests/hello_simple_llvm.nyash rename to apps/tests/hello_simple_llvm.hako diff --git a/apps/tests/jsonbox_collect_prints_smoke.nyash b/apps/tests/jsonbox_collect_prints_smoke.hako similarity index 100% rename from apps/tests/jsonbox_collect_prints_smoke.nyash rename to apps/tests/jsonbox_collect_prints_smoke.hako diff --git a/apps/tests/jsonbox_nested.nyash b/apps/tests/jsonbox_nested.hako similarity index 100% rename from apps/tests/jsonbox_nested.nyash rename to apps/tests/jsonbox_nested.hako diff --git a/apps/tests/jsonbox_parse_err.nyash b/apps/tests/jsonbox_parse_err.hako similarity index 100% rename from apps/tests/jsonbox_parse_err.nyash rename to apps/tests/jsonbox_parse_err.hako diff --git a/apps/tests/jsonbox_parse_ok.nyash b/apps/tests/jsonbox_parse_ok.hako similarity index 100% rename from apps/tests/jsonbox_parse_ok.nyash rename to apps/tests/jsonbox_parse_ok.hako diff --git a/apps/tests/jsonbox_parse_probe.nyash b/apps/tests/jsonbox_parse_probe.hako similarity index 100% rename from apps/tests/jsonbox_parse_probe.nyash rename to apps/tests/jsonbox_parse_probe.hako diff --git a/apps/tests/llvm_const_ret.nyash b/apps/tests/llvm_const_ret.hako similarity index 100% rename from apps/tests/llvm_const_ret.nyash rename to apps/tests/llvm_const_ret.hako diff --git a/apps/tests/llvm_if_phi_ret.nyash b/apps/tests/llvm_if_phi_ret.hako similarity index 100% rename from apps/tests/llvm_if_phi_ret.nyash rename to apps/tests/llvm_if_phi_ret.hako diff --git a/apps/tests/llvm_phi_heavy_mix.nyash b/apps/tests/llvm_phi_heavy_mix.hako similarity index 100% rename from apps/tests/llvm_phi_heavy_mix.nyash rename to apps/tests/llvm_phi_heavy_mix.hako diff --git a/apps/tests/llvm_phi_if_min.nyash b/apps/tests/llvm_phi_if_min.hako similarity index 100% rename from apps/tests/llvm_phi_if_min.nyash rename to apps/tests/llvm_phi_if_min.hako diff --git a/apps/tests/llvm_phi_mix.nyash b/apps/tests/llvm_phi_mix.hako similarity index 100% rename from apps/tests/llvm_phi_mix.nyash rename to apps/tests/llvm_phi_mix.hako diff --git a/apps/tests/llvm_phi_try_mix.nyash b/apps/tests/llvm_phi_try_mix.hako similarity index 100% rename from apps/tests/llvm_phi_try_mix.nyash rename to apps/tests/llvm_phi_try_mix.hako diff --git a/apps/tests/llvm_stage3_break_continue.nyash b/apps/tests/llvm_stage3_break_continue.hako similarity index 100% rename from apps/tests/llvm_stage3_break_continue.nyash rename to apps/tests/llvm_stage3_break_continue.hako diff --git a/apps/tests/llvm_stage3_loop_only.nyash b/apps/tests/llvm_stage3_loop_only.hako similarity index 100% rename from apps/tests/llvm_stage3_loop_only.nyash rename to apps/tests/llvm_stage3_loop_only.hako diff --git a/apps/tests/loop_if_phi.nyash b/apps/tests/loop_if_phi.hako similarity index 100% rename from apps/tests/loop_if_phi.nyash rename to apps/tests/loop_if_phi.hako diff --git a/apps/tests/loop_if_phi_continue.nyash b/apps/tests/loop_if_phi_continue.hako similarity index 100% rename from apps/tests/loop_if_phi_continue.nyash rename to apps/tests/loop_if_phi_continue.hako diff --git a/apps/tests/loop_min_while.nyash b/apps/tests/loop_min_while.hako similarity index 100% rename from apps/tests/loop_min_while.nyash rename to apps/tests/loop_min_while.hako diff --git a/apps/tests/loop_phi_one_sided.nyash b/apps/tests/loop_phi_one_sided.hako similarity index 100% rename from apps/tests/loop_phi_one_sided.nyash rename to apps/tests/loop_phi_one_sided.hako diff --git a/apps/tests/macro/collections/array_empty.nyash b/apps/tests/macro/collections/array_empty.hako similarity index 100% rename from apps/tests/macro/collections/array_empty.nyash rename to apps/tests/macro/collections/array_empty.hako diff --git a/apps/tests/macro/collections/array_mixed.nyash b/apps/tests/macro/collections/array_mixed.hako similarity index 100% rename from apps/tests/macro/collections/array_mixed.nyash rename to apps/tests/macro/collections/array_mixed.hako diff --git a/apps/tests/macro/collections/array_nested.nyash b/apps/tests/macro/collections/array_nested.hako similarity index 100% rename from apps/tests/macro/collections/array_nested.nyash rename to apps/tests/macro/collections/array_nested.hako diff --git a/apps/tests/macro/collections/array_prepend_zero.nyash b/apps/tests/macro/collections/array_prepend_zero.hako similarity index 100% rename from apps/tests/macro/collections/array_prepend_zero.nyash rename to apps/tests/macro/collections/array_prepend_zero.hako diff --git a/apps/tests/macro/collections/map_esc.nyash b/apps/tests/macro/collections/map_esc.hako similarity index 100% rename from apps/tests/macro/collections/map_esc.nyash rename to apps/tests/macro/collections/map_esc.hako diff --git a/apps/tests/macro/collections/map_insert_tag.nyash b/apps/tests/macro/collections/map_insert_tag.hako similarity index 100% rename from apps/tests/macro/collections/map_insert_tag.nyash rename to apps/tests/macro/collections/map_insert_tag.hako diff --git a/apps/tests/macro/collections/map_multi.nyash b/apps/tests/macro/collections/map_multi.hako similarity index 100% rename from apps/tests/macro/collections/map_multi.nyash rename to apps/tests/macro/collections/map_multi.hako diff --git a/apps/tests/macro/exception/expr_postfix_direct.nyash b/apps/tests/macro/exception/expr_postfix_direct.hako similarity index 100% rename from apps/tests/macro/exception/expr_postfix_direct.nyash rename to apps/tests/macro/exception/expr_postfix_direct.hako diff --git a/apps/tests/macro/exception/loop_if_join_postfix.nyash b/apps/tests/macro/exception/loop_if_join_postfix.hako similarity index 100% rename from apps/tests/macro/exception/loop_if_join_postfix.nyash rename to apps/tests/macro/exception/loop_if_join_postfix.hako diff --git a/apps/tests/macro/exception/loop_postfix_sugar.nyash b/apps/tests/macro/exception/loop_postfix_sugar.hako similarity index 100% rename from apps/tests/macro/exception/loop_postfix_sugar.nyash rename to apps/tests/macro/exception/loop_postfix_sugar.hako diff --git a/apps/tests/macro/exception/postfix_catch.nyash b/apps/tests/macro/exception/postfix_catch.hako similarity index 100% rename from apps/tests/macro/exception/postfix_catch.nyash rename to apps/tests/macro/exception/postfix_catch.hako diff --git a/apps/tests/macro/exception/postfix_catch_method.nyash b/apps/tests/macro/exception/postfix_catch_method.hako similarity index 100% rename from apps/tests/macro/exception/postfix_catch_method.nyash rename to apps/tests/macro/exception/postfix_catch_method.hako diff --git a/apps/tests/macro/exception/with_cleanup.nyash b/apps/tests/macro/exception/with_cleanup.hako similarity index 100% rename from apps/tests/macro/exception/with_cleanup.nyash rename to apps/tests/macro/exception/with_cleanup.hako diff --git a/apps/tests/macro/identity/identity.nyash b/apps/tests/macro/identity/identity.hako similarity index 100% rename from apps/tests/macro/identity/identity.nyash rename to apps/tests/macro/identity/identity.hako diff --git a/apps/tests/macro/if/assign.nyash b/apps/tests/macro/if/assign.hako similarity index 100% rename from apps/tests/macro/if/assign.nyash rename to apps/tests/macro/if/assign.hako diff --git a/apps/tests/macro/if/assign_both_branches.nyash b/apps/tests/macro/if/assign_both_branches.hako similarity index 100% rename from apps/tests/macro/if/assign_both_branches.nyash rename to apps/tests/macro/if/assign_both_branches.hako diff --git a/apps/tests/macro/if/assign_join_basic.nyash b/apps/tests/macro/if/assign_join_basic.hako similarity index 100% rename from apps/tests/macro/if/assign_join_basic.nyash rename to apps/tests/macro/if/assign_join_basic.hako diff --git a/apps/tests/macro/if/assign_three_vars.nyash b/apps/tests/macro/if/assign_three_vars.hako similarity index 100% rename from apps/tests/macro/if/assign_three_vars.nyash rename to apps/tests/macro/if/assign_three_vars.hako diff --git a/apps/tests/macro/if/assign_two_vars.nyash b/apps/tests/macro/if/assign_two_vars.hako similarity index 100% rename from apps/tests/macro/if/assign_two_vars.nyash rename to apps/tests/macro/if/assign_two_vars.hako diff --git a/apps/tests/macro/if/chain_guard.nyash b/apps/tests/macro/if/chain_guard.hako similarity index 100% rename from apps/tests/macro/if/chain_guard.nyash rename to apps/tests/macro/if/chain_guard.hako diff --git a/apps/tests/macro/if/print_expr.nyash b/apps/tests/macro/if/print_expr.hako similarity index 100% rename from apps/tests/macro/if/print_expr.nyash rename to apps/tests/macro/if/print_expr.hako diff --git a/apps/tests/macro/if/return_expr.nyash b/apps/tests/macro/if/return_expr.hako similarity index 100% rename from apps/tests/macro/if/return_expr.nyash rename to apps/tests/macro/if/return_expr.hako diff --git a/apps/tests/macro/if/then_only.nyash b/apps/tests/macro/if/then_only.hako similarity index 100% rename from apps/tests/macro/if/then_only.nyash rename to apps/tests/macro/if/then_only.hako diff --git a/apps/tests/macro/if/with_else.nyash b/apps/tests/macro/if/with_else.hako similarity index 100% rename from apps/tests/macro/if/with_else.nyash rename to apps/tests/macro/if/with_else.hako diff --git a/apps/tests/macro/loopform/for_basic.nyash b/apps/tests/macro/loopform/for_basic.hako similarity index 100% rename from apps/tests/macro/loopform/for_basic.nyash rename to apps/tests/macro/loopform/for_basic.hako diff --git a/apps/tests/macro/loopform/for_step2.nyash b/apps/tests/macro/loopform/for_step2.hako similarity index 100% rename from apps/tests/macro/loopform/for_step2.nyash rename to apps/tests/macro/loopform/for_step2.hako diff --git a/apps/tests/macro/loopform/foreach_basic.nyash b/apps/tests/macro/loopform/foreach_basic.hako similarity index 100% rename from apps/tests/macro/loopform/foreach_basic.nyash rename to apps/tests/macro/loopform/foreach_basic.hako diff --git a/apps/tests/macro/loopform/foreach_empty.nyash b/apps/tests/macro/loopform/foreach_empty.hako similarity index 100% rename from apps/tests/macro/loopform/foreach_empty.nyash rename to apps/tests/macro/loopform/foreach_empty.hako diff --git a/apps/tests/macro/loopform/nested_block_break.nyash b/apps/tests/macro/loopform/nested_block_break.hako similarity index 100% rename from apps/tests/macro/loopform/nested_block_break.nyash rename to apps/tests/macro/loopform/nested_block_break.hako diff --git a/apps/tests/macro/loopform/nested_if_break.nyash b/apps/tests/macro/loopform/nested_if_break.hako similarity index 100% rename from apps/tests/macro/loopform/nested_if_break.nyash rename to apps/tests/macro/loopform/nested_if_break.hako diff --git a/apps/tests/macro/loopform/nested_if_continue.nyash b/apps/tests/macro/loopform/nested_if_continue.hako similarity index 100% rename from apps/tests/macro/loopform/nested_if_continue.nyash rename to apps/tests/macro/loopform/nested_if_continue.hako diff --git a/apps/tests/macro/loopform/nonreorder.nyash b/apps/tests/macro/loopform/nonreorder.hako similarity index 100% rename from apps/tests/macro/loopform/nonreorder.nyash rename to apps/tests/macro/loopform/nonreorder.hako diff --git a/apps/tests/macro/loopform/simple.nyash b/apps/tests/macro/loopform/simple.hako similarity index 100% rename from apps/tests/macro/loopform/simple.nyash rename to apps/tests/macro/loopform/simple.hako diff --git a/apps/tests/macro/loopform/two_vars.nyash b/apps/tests/macro/loopform/two_vars.hako similarity index 100% rename from apps/tests/macro/loopform/two_vars.nyash rename to apps/tests/macro/loopform/two_vars.hako diff --git a/apps/tests/macro/loopform/with_break.nyash b/apps/tests/macro/loopform/with_break.hako similarity index 100% rename from apps/tests/macro/loopform/with_break.nyash rename to apps/tests/macro/loopform/with_break.hako diff --git a/apps/tests/macro/loopform/with_continue.nyash b/apps/tests/macro/loopform/with_continue.hako similarity index 100% rename from apps/tests/macro/loopform/with_continue.nyash rename to apps/tests/macro/loopform/with_continue.hako diff --git a/apps/tests/macro/match/guard_literal_or.nyash b/apps/tests/macro/match/guard_literal_or.hako similarity index 100% rename from apps/tests/macro/match/guard_literal_or.nyash rename to apps/tests/macro/match/guard_literal_or.hako diff --git a/apps/tests/macro/match/guard_type_basic_min.nyash b/apps/tests/macro/match/guard_type_basic_min.hako similarity index 100% rename from apps/tests/macro/match/guard_type_basic_min.nyash rename to apps/tests/macro/match/guard_type_basic_min.hako diff --git a/apps/tests/macro/match/literal_basic.nyash b/apps/tests/macro/match/literal_basic.hako similarity index 100% rename from apps/tests/macro/match/literal_basic.nyash rename to apps/tests/macro/match/literal_basic.hako diff --git a/apps/tests/macro/match/literal_three_arms.nyash b/apps/tests/macro/match/literal_three_arms.hako similarity index 100% rename from apps/tests/macro/match/literal_three_arms.nyash rename to apps/tests/macro/match/literal_three_arms.hako diff --git a/apps/tests/macro/strings/env_tag_demo.nyash b/apps/tests/macro/strings/env_tag_demo.hako similarity index 100% rename from apps/tests/macro/strings/env_tag_demo.nyash rename to apps/tests/macro/strings/env_tag_demo.hako diff --git a/apps/tests/macro/strings/index_of_demo.nyash b/apps/tests/macro/strings/index_of_demo.hako similarity index 100% rename from apps/tests/macro/strings/index_of_demo.nyash rename to apps/tests/macro/strings/index_of_demo.hako diff --git a/apps/tests/macro/strings/upper_string.nyash b/apps/tests/macro/strings/upper_string.hako similarity index 100% rename from apps/tests/macro/strings/upper_string.nyash rename to apps/tests/macro/strings/upper_string.hako diff --git a/apps/tests/macro/test_runner/args.nyash b/apps/tests/macro/test_runner/args.hako similarity index 100% rename from apps/tests/macro/test_runner/args.nyash rename to apps/tests/macro/test_runner/args.hako diff --git a/apps/tests/macro/test_runner/args_defaults.nyash b/apps/tests/macro/test_runner/args_defaults.hako similarity index 100% rename from apps/tests/macro/test_runner/args_defaults.nyash rename to apps/tests/macro/test_runner/args_defaults.hako diff --git a/apps/tests/macro/test_runner/basic.nyash b/apps/tests/macro/test_runner/basic.hako similarity index 100% rename from apps/tests/macro/test_runner/basic.nyash rename to apps/tests/macro/test_runner/basic.hako diff --git a/apps/tests/macro/test_runner/filter.nyash b/apps/tests/macro/test_runner/filter.hako similarity index 100% rename from apps/tests/macro/test_runner/filter.nyash rename to apps/tests/macro/test_runner/filter.hako diff --git a/apps/tests/macro/test_runner/return_policy.nyash b/apps/tests/macro/test_runner/return_policy.hako similarity index 100% rename from apps/tests/macro/test_runner/return_policy.nyash rename to apps/tests/macro/test_runner/return_policy.hako diff --git a/apps/tests/macro/types/is_basic.nyash b/apps/tests/macro/types/is_basic.hako similarity index 100% rename from apps/tests/macro/types/is_basic.nyash rename to apps/tests/macro/types/is_basic.hako diff --git a/apps/tests/macrobox_example.nyash b/apps/tests/macrobox_example.hako similarity index 100% rename from apps/tests/macrobox_example.nyash rename to apps/tests/macrobox_example.hako diff --git a/apps/tests/macrobox_ny/identity_macro.nyash b/apps/tests/macrobox_ny/identity_macro.hako similarity index 100% rename from apps/tests/macrobox_ny/identity_macro.nyash rename to apps/tests/macrobox_ny/identity_macro.hako diff --git a/apps/tests/macrobox_ny/uppercase_body_macro.nyash b/apps/tests/macrobox_ny/uppercase_body_macro.hako similarity index 100% rename from apps/tests/macrobox_ny/uppercase_body_macro.nyash rename to apps/tests/macrobox_ny/uppercase_body_macro.hako diff --git a/apps/tests/macrobox_ny/uppercase_macro.nyash b/apps/tests/macrobox_ny/uppercase_macro.hako similarity index 100% rename from apps/tests/macrobox_ny/uppercase_macro.nyash rename to apps/tests/macrobox_ny/uppercase_macro.hako diff --git a/apps/tests/map-int-key/main.nyash b/apps/tests/map-int-key/main.hako similarity index 100% rename from apps/tests/map-int-key/main.nyash rename to apps/tests/map-int-key/main.hako diff --git a/apps/tests/map-json/main.nyash b/apps/tests/map-json/main.hako similarity index 100% rename from apps/tests/map-json/main.nyash rename to apps/tests/map-json/main.hako diff --git a/apps/tests/map-ops-extended/main.nyash b/apps/tests/map-ops-extended/main.hako similarity index 100% rename from apps/tests/map-ops-extended/main.nyash rename to apps/tests/map-ops-extended/main.hako diff --git a/apps/tests/map-string-key/main.nyash b/apps/tests/map-string-key/main.hako similarity index 100% rename from apps/tests/map-string-key/main.nyash rename to apps/tests/map-string-key/main.hako diff --git a/apps/tests/map-string-keyS/main.nyash b/apps/tests/map-string-keyS/main.hako similarity index 100% rename from apps/tests/map-string-keyS/main.nyash rename to apps/tests/map-string-keyS/main.hako diff --git a/apps/tests/map_literal_basic.nyash b/apps/tests/map_literal_basic.hako similarity index 100% rename from apps/tests/map_literal_basic.nyash rename to apps/tests/map_literal_basic.hako diff --git a/apps/tests/map_literal_ident_key.nyash b/apps/tests/map_literal_ident_key.hako similarity index 100% rename from apps/tests/map_literal_ident_key.nyash rename to apps/tests/map_literal_ident_key.hako diff --git a/apps/tests/map_min_ops.nyash b/apps/tests/map_min_ops.hako similarity index 100% rename from apps/tests/map_min_ops.nyash rename to apps/tests/map_min_ops.hako diff --git a/apps/tests/match_guard_lit_basic.nyash b/apps/tests/match_guard_lit_basic.hako similarity index 100% rename from apps/tests/match_guard_lit_basic.nyash rename to apps/tests/match_guard_lit_basic.hako diff --git a/apps/tests/match_guard_type_basic.nyash b/apps/tests/match_guard_type_basic.hako similarity index 100% rename from apps/tests/match_guard_type_basic.nyash rename to apps/tests/match_guard_type_basic.hako diff --git a/apps/tests/match_type_pattern_basic.nyash b/apps/tests/match_type_pattern_basic.hako similarity index 100% rename from apps/tests/match_type_pattern_basic.nyash rename to apps/tests/match_type_pattern_basic.hako diff --git a/apps/tests/me_method_call.nyash b/apps/tests/me_method_call.hako similarity index 100% rename from apps/tests/me_method_call.nyash rename to apps/tests/me_method_call.hako diff --git a/apps/tests/method_postfix_finally_only.nyash b/apps/tests/method_postfix_finally_only.hako similarity index 100% rename from apps/tests/method_postfix_finally_only.nyash rename to apps/tests/method_postfix_finally_only.hako diff --git a/apps/tests/min_str_cat_loop/main.nyash b/apps/tests/min_str_cat_loop/main.hako similarity index 100% rename from apps/tests/min_str_cat_loop/main.nyash rename to apps/tests/min_str_cat_loop/main.hako diff --git a/apps/tests/mini_vm_functioncall_empty_args.nyash b/apps/tests/mini_vm_functioncall_empty_args.hako similarity index 100% rename from apps/tests/mini_vm_functioncall_empty_args.nyash rename to apps/tests/mini_vm_functioncall_empty_args.hako diff --git a/apps/tests/mir-branch-multi/main.nyash b/apps/tests/mir-branch-multi/main.hako similarity index 100% rename from apps/tests/mir-branch-multi/main.nyash rename to apps/tests/mir-branch-multi/main.hako diff --git a/apps/tests/mir-branch-ret/main.nyash b/apps/tests/mir-branch-ret/main.hako similarity index 100% rename from apps/tests/mir-branch-ret/main.nyash rename to apps/tests/mir-branch-ret/main.hako diff --git a/apps/tests/mir-compare-multi/main.nyash b/apps/tests/mir-compare-multi/main.hako similarity index 100% rename from apps/tests/mir-compare-multi/main.nyash rename to apps/tests/mir-compare-multi/main.hako diff --git a/apps/tests/mir-const-add/main.nyash b/apps/tests/mir-const-add/main.hako similarity index 100% rename from apps/tests/mir-const-add/main.nyash rename to apps/tests/mir-const-add/main.hako diff --git a/apps/tests/mir-nested-branch/main.nyash b/apps/tests/mir-nested-branch/main.hako similarity index 100% rename from apps/tests/mir-nested-branch/main.nyash rename to apps/tests/mir-nested-branch/main.hako diff --git a/apps/tests/mir-phi-min/main.nyash b/apps/tests/mir-phi-min/main.hako similarity index 100% rename from apps/tests/mir-phi-min/main.nyash rename to apps/tests/mir-phi-min/main.hako diff --git a/apps/tests/mir-phi-two/main.nyash b/apps/tests/mir-phi-two/main.hako similarity index 100% rename from apps/tests/mir-phi-two/main.nyash rename to apps/tests/mir-phi-two/main.hako diff --git a/apps/tests/mir-safe-min/main.nyash b/apps/tests/mir-safe-min/main.hako similarity index 100% rename from apps/tests/mir-safe-min/main.nyash rename to apps/tests/mir-safe-min/main.hako diff --git a/apps/tests/mir-store-load/main.nyash b/apps/tests/mir-store-load/main.hako similarity index 100% rename from apps/tests/mir-store-load/main.nyash rename to apps/tests/mir-store-load/main.hako diff --git a/apps/tests/nested_loop_inner_break_isolated.nyash b/apps/tests/nested_loop_inner_break_isolated.hako similarity index 100% rename from apps/tests/nested_loop_inner_break_isolated.nyash rename to apps/tests/nested_loop_inner_break_isolated.hako diff --git a/apps/tests/nested_loop_inner_continue_isolated.nyash b/apps/tests/nested_loop_inner_continue_isolated.hako similarity index 100% rename from apps/tests/nested_loop_inner_continue_isolated.nyash rename to apps/tests/nested_loop_inner_continue_isolated.hako diff --git a/apps/tests/net_roundtrip.nyash b/apps/tests/net_roundtrip.hako similarity index 100% rename from apps/tests/net_roundtrip.nyash rename to apps/tests/net_roundtrip.hako diff --git a/apps/tests/ny-array-llvm-ret/main.nyash b/apps/tests/ny-array-llvm-ret/main.hako similarity index 100% rename from apps/tests/ny-array-llvm-ret/main.nyash rename to apps/tests/ny-array-llvm-ret/main.hako diff --git a/apps/tests/ny-echo-lite/main.nyash b/apps/tests/ny-echo-lite/main.hako similarity index 100% rename from apps/tests/ny-echo-lite/main.nyash rename to apps/tests/ny-echo-lite/main.hako diff --git a/apps/tests/ny-llvm-bitops/main.nyash b/apps/tests/ny-llvm-bitops/main.hako similarity index 100% rename from apps/tests/ny-llvm-bitops/main.nyash rename to apps/tests/ny-llvm-bitops/main.hako diff --git a/apps/tests/ny-llvm-smoke/main.nyash b/apps/tests/ny-llvm-smoke/main.hako similarity index 100% rename from apps/tests/ny-llvm-smoke/main.nyash rename to apps/tests/ny-llvm-smoke/main.hako diff --git a/apps/tests/ny-llvm-smoke/nyash.toml b/apps/tests/ny-llvm-smoke/nyash.toml index 882c1bc7..0e96c121 100644 --- a/apps/tests/ny-llvm-smoke/nyash.toml +++ b/apps/tests/ny-llvm-smoke/nyash.toml @@ -126,7 +126,7 @@ search_paths = [ "./plugins/*/target/release", "./plugins/*/target/debug", "/usr/local/lib/nyash/plugins", - "~/.nyash/plugins" + "~/.hako/plugins" ] # 中央タイプIDレジストリ(新): 各プラグインの nyash_box.toml と一致させる diff --git a/apps/tests/ny-map-llvm-smoke/main.nyash b/apps/tests/ny-map-llvm-smoke/main.hako similarity index 100% rename from apps/tests/ny-map-llvm-smoke/main.nyash rename to apps/tests/ny-map-llvm-smoke/main.hako diff --git a/apps/tests/ny-plugin-ret-llvm-smoke/main.nyash b/apps/tests/ny-plugin-ret-llvm-smoke/main.hako similarity index 100% rename from apps/tests/ny-plugin-ret-llvm-smoke/main.nyash rename to apps/tests/ny-plugin-ret-llvm-smoke/main.hako diff --git a/apps/tests/ny-vinvoke-llvm-ret-size/main.nyash b/apps/tests/ny-vinvoke-llvm-ret-size/main.hako similarity index 100% rename from apps/tests/ny-vinvoke-llvm-ret-size/main.nyash rename to apps/tests/ny-vinvoke-llvm-ret-size/main.hako diff --git a/apps/tests/ny-vinvoke-llvm-ret/main.nyash b/apps/tests/ny-vinvoke-llvm-ret/main.hako similarity index 100% rename from apps/tests/ny-vinvoke-llvm-ret/main.nyash rename to apps/tests/ny-vinvoke-llvm-ret/main.hako diff --git a/apps/tests/ny-vinvoke-smoke/main.nyash b/apps/tests/ny-vinvoke-smoke/main.hako similarity index 100% rename from apps/tests/ny-vinvoke-smoke/main.nyash rename to apps/tests/ny-vinvoke-smoke/main.hako diff --git a/apps/tests/parser/semicolon_basic.nyash b/apps/tests/parser/semicolon_basic.hako similarity index 100% rename from apps/tests/parser/semicolon_basic.nyash rename to apps/tests/parser/semicolon_basic.hako diff --git a/apps/tests/parser/semicolon_else_edge.nyash b/apps/tests/parser/semicolon_else_edge.hako similarity index 100% rename from apps/tests/parser/semicolon_else_edge.nyash rename to apps/tests/parser/semicolon_else_edge.hako diff --git a/apps/tests/peek_expr_block.nyash b/apps/tests/peek_expr_block.hako similarity index 100% rename from apps/tests/peek_expr_block.nyash rename to apps/tests/peek_expr_block.hako diff --git a/apps/tests/peek_return_value.nyash b/apps/tests/peek_return_value.hako similarity index 100% rename from apps/tests/peek_return_value.nyash rename to apps/tests/peek_return_value.hako diff --git a/apps/tests/plugin_v2_functional.nyash b/apps/tests/plugin_v2_functional.hako similarity index 100% rename from apps/tests/plugin_v2_functional.nyash rename to apps/tests/plugin_v2_functional.hako diff --git a/apps/tests/pyvm/argv_echo.nyash b/apps/tests/pyvm/argv_echo.hako similarity index 100% rename from apps/tests/pyvm/argv_echo.nyash rename to apps/tests/pyvm/argv_echo.hako diff --git a/apps/tests/semantics-unified/main.nyash b/apps/tests/semantics-unified/main.hako similarity index 100% rename from apps/tests/semantics-unified/main.nyash rename to apps/tests/semantics-unified/main.hako diff --git a/apps/tests/shortcircuit_and_phi_skip.nyash b/apps/tests/shortcircuit_and_phi_skip.hako similarity index 100% rename from apps/tests/shortcircuit_and_phi_skip.nyash rename to apps/tests/shortcircuit_and_phi_skip.hako diff --git a/apps/tests/shortcircuit_nested_selective_assign.nyash b/apps/tests/shortcircuit_nested_selective_assign.hako similarity index 100% rename from apps/tests/shortcircuit_nested_selective_assign.nyash rename to apps/tests/shortcircuit_nested_selective_assign.hako diff --git a/apps/tests/shortcircuit_or_phi_skip.nyash b/apps/tests/shortcircuit_or_phi_skip.hako similarity index 100% rename from apps/tests/shortcircuit_or_phi_skip.nyash rename to apps/tests/shortcircuit_or_phi_skip.hako diff --git a/apps/tests/stage3_throw_dead_branch.nyash b/apps/tests/stage3_throw_dead_branch.hako similarity index 100% rename from apps/tests/stage3_throw_dead_branch.nyash rename to apps/tests/stage3_throw_dead_branch.hako diff --git a/apps/tests/stage3_try_finally_basic.nyash b/apps/tests/stage3_try_finally_basic.hako similarity index 100% rename from apps/tests/stage3_try_finally_basic.nyash rename to apps/tests/stage3_try_finally_basic.hako diff --git a/apps/tests/string_method_chain.nyash b/apps/tests/string_method_chain.hako similarity index 100% rename from apps/tests/string_method_chain.nyash rename to apps/tests/string_method_chain.hako diff --git a/apps/tests/string_ops_basic.nyash b/apps/tests/string_ops_basic.hako similarity index 100% rename from apps/tests/string_ops_basic.nyash rename to apps/tests/string_ops_basic.hako diff --git a/apps/tests/strings/byte_ascii_demo.nyash b/apps/tests/strings/byte_ascii_demo.hako similarity index 100% rename from apps/tests/strings/byte_ascii_demo.nyash rename to apps/tests/strings/byte_ascii_demo.hako diff --git a/apps/tests/strings/utf8_cp_demo.nyash b/apps/tests/strings/utf8_cp_demo.hako similarity index 100% rename from apps/tests/strings/utf8_cp_demo.nyash rename to apps/tests/strings/utf8_cp_demo.hako diff --git a/apps/tests/sugar/not_basic.nyash b/apps/tests/sugar/not_basic.hako similarity index 100% rename from apps/tests/sugar/not_basic.nyash rename to apps/tests/sugar/not_basic.hako diff --git a/apps/tests/taskgroup-join-demo/main.nyash b/apps/tests/taskgroup-join-demo/main.hako similarity index 100% rename from apps/tests/taskgroup-join-demo/main.nyash rename to apps/tests/taskgroup-join-demo/main.hako diff --git a/apps/tests/ternary_basic.nyash b/apps/tests/ternary_basic.hako similarity index 100% rename from apps/tests/ternary_basic.nyash rename to apps/tests/ternary_basic.hako diff --git a/apps/tests/ternary_nested.nyash b/apps/tests/ternary_nested.hako similarity index 100% rename from apps/tests/ternary_nested.nyash rename to apps/tests/ternary_nested.hako diff --git a/apps/tests/tmp_call.nyash b/apps/tests/tmp_call.hako similarity index 100% rename from apps/tests/tmp_call.nyash rename to apps/tests/tmp_call.hako diff --git a/apps/tests/try_catch_finally_no_throw.nyash b/apps/tests/try_catch_finally_no_throw.hako similarity index 100% rename from apps/tests/try_catch_finally_no_throw.nyash rename to apps/tests/try_catch_finally_no_throw.hako diff --git a/apps/tests/try_finally_break_inner_loop.nyash b/apps/tests/try_finally_break_inner_loop.hako similarity index 100% rename from apps/tests/try_finally_break_inner_loop.nyash rename to apps/tests/try_finally_break_inner_loop.hako diff --git a/apps/tests/try_finally_continue_inner_loop.nyash b/apps/tests/try_finally_continue_inner_loop.hako similarity index 100% rename from apps/tests/try_finally_continue_inner_loop.nyash rename to apps/tests/try_finally_continue_inner_loop.hako diff --git a/apps/tests/try_finally_normal.nyash b/apps/tests/try_finally_normal.hako similarity index 100% rename from apps/tests/try_finally_normal.nyash rename to apps/tests/try_finally_normal.hako diff --git a/apps/tests/try_finally_return_override.nyash b/apps/tests/try_finally_return_override.hako similarity index 100% rename from apps/tests/try_finally_return_override.nyash rename to apps/tests/try_finally_return_override.hako diff --git a/apps/tests/unified_members_basic.nyash b/apps/tests/unified_members_basic.hako similarity index 100% rename from apps/tests/unified_members_basic.nyash rename to apps/tests/unified_members_basic.hako diff --git a/apps/tests/unified_members_block_first.nyash b/apps/tests/unified_members_block_first.hako similarity index 100% rename from apps/tests/unified_members_block_first.nyash rename to apps/tests/unified_members_block_first.hako diff --git a/apps/tests/unified_members_once_cache.nyash b/apps/tests/unified_members_once_cache.hako similarity index 100% rename from apps/tests/unified_members_once_cache.nyash rename to apps/tests/unified_members_once_cache.hako diff --git a/apps/tests/using_edge_mix.nyash b/apps/tests/using_edge_mix.hako similarity index 100% rename from apps/tests/using_edge_mix.nyash rename to apps/tests/using_edge_mix.hako diff --git a/apps/tests/vm-plugin-smoke-counter/main.nyash b/apps/tests/vm-plugin-smoke-counter/main.hako similarity index 100% rename from apps/tests/vm-plugin-smoke-counter/main.nyash rename to apps/tests/vm-plugin-smoke-counter/main.hako diff --git a/apps/tests/vm-plugin-smoke-filebox/main.nyash b/apps/tests/vm-plugin-smoke-filebox/main.hako similarity index 100% rename from apps/tests/vm-plugin-smoke-filebox/main.nyash rename to apps/tests/vm-plugin-smoke-filebox/main.hako diff --git a/apps/tinyproxy_nyash/proxy_server.nyash b/apps/tinyproxy_nyash/proxy_server.hako similarity index 100% rename from apps/tinyproxy_nyash/proxy_server.nyash rename to apps/tinyproxy_nyash/proxy_server.hako diff --git a/apps/tmp_array_len_probe.nyash b/apps/tmp_array_len_probe.hako similarity index 100% rename from apps/tmp_array_len_probe.nyash rename to apps/tmp_array_len_probe.hako diff --git a/apps/tmp_hello.nyash b/apps/tmp_hello.hako similarity index 100% rename from apps/tmp_hello.nyash rename to apps/tmp_hello.hako diff --git a/apps/tmp_if_min.nyash b/apps/tmp_if_min.hako similarity index 100% rename from apps/tmp_if_min.nyash rename to apps/tmp_if_min.hako diff --git a/apps/tmp_if_return.nyash b/apps/tmp_if_return.hako similarity index 100% rename from apps/tmp_if_return.nyash rename to apps/tmp_if_return.hako diff --git a/apps/tmp_if_return_true.nyash b/apps/tmp_if_return_true.hako similarity index 100% rename from apps/tmp_if_return_true.nyash rename to apps/tmp_if_return_true.hako diff --git a/apps/tmp_include_only.nyash b/apps/tmp_include_only.hako similarity index 67% rename from apps/tmp_include_only.nyash rename to apps/tmp_include_only.hako index 713e5bd7..341a8195 100644 --- a/apps/tmp_include_only.nyash +++ b/apps/tmp_include_only.hako @@ -1,7 +1,7 @@ static box Main { main() { local S - using "apps/std/string.nyash" as S + using "apps/std/string.hako" as S print("inc-ok") return 0 } diff --git a/apps/tmp_include_string_std.nyash b/apps/tmp_include_string_std.hako similarity index 63% rename from apps/tmp_include_string_std.nyash rename to apps/tmp_include_string_std.hako index 068a9b29..07090e09 100644 --- a/apps/tmp_include_string_std.nyash +++ b/apps/tmp_include_string_std.hako @@ -1,7 +1,7 @@ static box Main { main() { local M - using "apps/std/string_std.nyash" as M + using "apps/std/string_std.hako" as M print("ok") return 0 } diff --git a/apps/tmp_include_test.nyash b/apps/tmp_include_test.hako similarity index 76% rename from apps/tmp_include_test.nyash rename to apps/tmp_include_test.hako index 550a5f07..ccaff12d 100644 --- a/apps/tmp_include_test.nyash +++ b/apps/tmp_include_test.hako @@ -1,7 +1,7 @@ static box Main { main() { local M - using "apps/tmp_mod.nyash" as M + using "apps/tmp_mod.hako" as M local r r = M.foo() print("r=" + r.toString()) diff --git a/apps/tmp_index_of_test.nyash b/apps/tmp_index_of_test.hako similarity index 78% rename from apps/tmp_index_of_test.nyash rename to apps/tmp_index_of_test.hako index 3e90a00b..c2873ce0 100644 --- a/apps/tmp_index_of_test.nyash +++ b/apps/tmp_index_of_test.hako @@ -1,7 +1,7 @@ static box Main { main() { local S - using "apps/std/string.nyash" as S + using "apps/std/string.hako" as S local r r = S.string_index_of("banana", "na") print("r=" + r.toString()) diff --git a/apps/tmp_len_min.nyash b/apps/tmp_len_min.hako similarity index 81% rename from apps/tmp_len_min.nyash rename to apps/tmp_len_min.hako index 0c766790..fdae4918 100644 --- a/apps/tmp_len_min.nyash +++ b/apps/tmp_len_min.hako @@ -1,7 +1,7 @@ static box Main { main() { local S - using "apps/std/string.nyash" as S + using "apps/std/string.hako" as S local x x = S.string_length("abc") if x == 3 { diff --git a/apps/tmp_len_probe.nyash b/apps/tmp_len_probe.hako similarity index 83% rename from apps/tmp_len_probe.nyash rename to apps/tmp_len_probe.hako index 38f369f5..98f1f6f4 100644 --- a/apps/tmp_len_probe.nyash +++ b/apps/tmp_len_probe.hako @@ -2,7 +2,7 @@ static box Main { main() { print("enter-main") local S - using "apps/std/string.nyash" as S + using "apps/std/string.hako" as S print("after-include") local x x = S.string_length("abc") diff --git a/apps/tmp_len_stringbox_probe.nyash b/apps/tmp_len_stringbox_probe.hako similarity index 100% rename from apps/tmp_len_stringbox_probe.nyash rename to apps/tmp_len_stringbox_probe.hako diff --git a/apps/tmp_len_test.nyash b/apps/tmp_len_test.hako similarity index 77% rename from apps/tmp_len_test.nyash rename to apps/tmp_len_test.hako index eeb4d563..c4f410d4 100644 --- a/apps/tmp_len_test.nyash +++ b/apps/tmp_len_test.hako @@ -1,7 +1,7 @@ static box Main { main() { local S - using "apps/std/string.nyash" as S + using "apps/std/string.hako" as S local x x = S.string_length("abc") print("len=" + x.toString()) diff --git a/apps/tmp_len_test2.nyash b/apps/tmp_len_test2.hako similarity index 77% rename from apps/tmp_len_test2.nyash rename to apps/tmp_len_test2.hako index 0f13bfb7..cff9740d 100644 --- a/apps/tmp_len_test2.nyash +++ b/apps/tmp_len_test2.hako @@ -1,7 +1,7 @@ static box Main { main() { local S - using "apps/std/string2.nyash" as S + using "apps/std/string2.hako" as S local x x = S.string_length("abc") print("len=" + x.toString()) diff --git a/apps/tmp_mod.nyash b/apps/tmp_mod.hako similarity index 100% rename from apps/tmp_mod.nyash rename to apps/tmp_mod.hako diff --git a/apps/tmp_new_array_plugin.nyash b/apps/tmp_new_array_plugin.hako similarity index 100% rename from apps/tmp_new_array_plugin.nyash rename to apps/tmp_new_array_plugin.hako diff --git a/apps/tmp_string_probe.nyash b/apps/tmp_string_probe.hako similarity index 84% rename from apps/tmp_string_probe.nyash rename to apps/tmp_string_probe.hako index 66120587..a56ec4f4 100644 --- a/apps/tmp_string_probe.nyash +++ b/apps/tmp_string_probe.hako @@ -1,5 +1,5 @@ static box Main { main() { - using "apps/std/string.nyash" as S + using "apps/std/string.hako" as S print(S.string_index_of("banana","na").toString()) print(S.string_slice("hello",1,4)) print(S.string_concat("a","b")) diff --git a/apps/using-e2e/main.nyash b/apps/using-e2e/main.hako similarity index 100% rename from apps/using-e2e/main.nyash rename to apps/using-e2e/main.hako diff --git a/archive/codex-solutions/README.md b/archive/codex-solutions/README.md index 398644e9..e5494d16 100644 --- a/archive/codex-solutions/README.md +++ b/archive/codex-solutions/README.md @@ -13,7 +13,7 @@ 3. **型推論改善**: 戻り値型の自動推論 #### 変更ファイル -- `apps/selfhost/vm/boxes/mini_vm_core.nyash`: collect_prints修正 +- `apps/selfhost/vm/boxes/mini_vm_core.hako`: collect_prints修正 - `src/mir/builder/builder_calls.rs`: 型推論システム強化(100行以上) #### 特徴 @@ -27,7 +27,7 @@ git apply archive/codex-solutions/codex-nested-returns-solution.patch # 元に戻す -git checkout -- apps/selfhost/vm/boxes/mini_vm_core.nyash src/mir/builder/builder_calls.rs +git checkout -- apps/selfhost/vm/boxes/mini_vm_core.hako src/mir/builder/builder_calls.rs ``` ### 🔄 他の解決策との比較 diff --git a/archive/codex-solutions/mini_vm_core-codex-solution.nyash b/archive/codex-solutions/mini_vm_core-codex-solution.hako similarity index 100% rename from archive/codex-solutions/mini_vm_core-codex-solution.nyash rename to archive/codex-solutions/mini_vm_core-codex-solution.hako diff --git a/archive/jit-cranelift/tools/jit_compare_smoke.sh b/archive/jit-cranelift/tools/jit_compare_smoke.sh index d7aa81a5..5417fff6 100644 --- a/archive/jit-cranelift/tools/jit_compare_smoke.sh +++ b/archive/jit-cranelift/tools/jit_compare_smoke.sh @@ -13,8 +13,8 @@ run_case() { NYASH_JIT_THRESHOLD=1 ./target/release/nyash --jit-direct "$app" } -run_case apps/tests/mir-branch-ret/main.nyash -run_case apps/tests/mir-compare-multi/main.nyash +run_case apps/tests/mir-branch-ret/main.hako +run_case apps/tests/mir-compare-multi/main.hako echo "[ok] jit compare smokes completed" diff --git a/basic_test.nyash b/basic_test.hako similarity index 100% rename from basic_test.nyash rename to basic_test.hako diff --git a/benchmarks/bench_aot_len_heavy.nyash b/benchmarks/bench_aot_len_heavy.hako similarity index 100% rename from benchmarks/bench_aot_len_heavy.nyash rename to benchmarks/bench_aot_len_heavy.hako diff --git a/benchmarks/bench_aot_len_light.nyash b/benchmarks/bench_aot_len_light.hako similarity index 100% rename from benchmarks/bench_aot_len_light.nyash rename to benchmarks/bench_aot_len_light.hako diff --git a/benchmarks/bench_aot_len_medium.nyash b/benchmarks/bench_aot_len_medium.hako similarity index 100% rename from benchmarks/bench_aot_len_medium.nyash rename to benchmarks/bench_aot_len_medium.hako diff --git a/benchmarks/bench_box_create_destroy.nyash b/benchmarks/bench_box_create_destroy.hako similarity index 100% rename from benchmarks/bench_box_create_destroy.nyash rename to benchmarks/bench_box_create_destroy.hako diff --git a/benchmarks/bench_box_create_destroy_small.nyash b/benchmarks/bench_box_create_destroy_small.hako similarity index 100% rename from benchmarks/bench_box_create_destroy_small.nyash rename to benchmarks/bench_box_create_destroy_small.hako diff --git a/benchmarks/bench_heavy.nyash b/benchmarks/bench_heavy.hako similarity index 100% rename from benchmarks/bench_heavy.nyash rename to benchmarks/bench_heavy.hako diff --git a/benchmarks/bench_light.nyash b/benchmarks/bench_light.hako similarity index 100% rename from benchmarks/bench_light.nyash rename to benchmarks/bench_light.hako diff --git a/benchmarks/bench_medium.nyash b/benchmarks/bench_medium.hako similarity index 100% rename from benchmarks/bench_medium.nyash rename to benchmarks/bench_medium.hako diff --git a/benchmarks/bench_method_call_only.nyash b/benchmarks/bench_method_call_only.hako similarity index 100% rename from benchmarks/bench_method_call_only.nyash rename to benchmarks/bench_method_call_only.hako diff --git a/benchmarks/bench_method_call_only_small.nyash b/benchmarks/bench_method_call_only_small.hako similarity index 100% rename from benchmarks/bench_method_call_only_small.nyash rename to benchmarks/bench_method_call_only_small.hako diff --git a/crates/nyash_kernel/README.md b/crates/nyash_kernel/README.md index 313b9c4f..ef957509 100644 --- a/crates/nyash_kernel/README.md +++ b/crates/nyash_kernel/README.md @@ -111,7 +111,7 @@ cargo build --release -p nyash_kernel ### For VM Backend ```bash # Runtime integration (automatic) -./target/release/nyash program.nyash +./target/release/nyash program.hako ``` ## Design Philosophy diff --git a/debug_counter_side_effects.nyash b/debug_counter_side_effects.hako similarity index 100% rename from debug_counter_side_effects.nyash rename to debug_counter_side_effects.hako diff --git a/debug_integer_method.nyash b/debug_integer_method.hako similarity index 100% rename from debug_integer_method.nyash rename to debug_integer_method.hako diff --git a/debug_simple_counter.nyash b/debug_simple_counter.hako similarity index 100% rename from debug_simple_counter.nyash rename to debug_simple_counter.hako diff --git a/debug_simple_integer.nyash b/debug_simple_integer.hako similarity index 100% rename from debug_simple_integer.nyash rename to debug_simple_integer.hako diff --git a/debug_simple_math.nyash b/debug_simple_math.hako similarity index 100% rename from debug_simple_math.nyash rename to debug_simple_math.hako diff --git a/dev/cranelift/README.md b/dev/cranelift/README.md index d6da50bd..a9219248 100644 --- a/dev/cranelift/README.md +++ b/dev/cranelift/README.md @@ -7,7 +7,7 @@ Quick AOT Smoke - Build core (once): - `cargo build --release --features cranelift-jit` - Lower to object + link with NyRT: - - `NYASH_DISABLE_PLUGINS=1 tools/aot_smoke_cranelift.sh apps/smokes/jit_aot_string_min.nyash app_str` + - `NYASH_DISABLE_PLUGINS=1 tools/aot_smoke_cranelift.sh apps/smokes/jit_aot_string_min.hako app_str` - Run app: - `./app_str` diff --git a/dev/selfhosting/README.md b/dev/selfhosting/README.md index 45c08982..baf04101 100644 --- a/dev/selfhosting/README.md +++ b/dev/selfhosting/README.md @@ -36,8 +36,8 @@ Tips Dev Loop (Ny-only) -- One-off run (VM): `./tools/dev_selfhost_loop.sh apps/selfhost-minimal/main.nyash` -- Watch + std libs: `./tools/dev_selfhost_loop.sh --watch --std apps/selfhost/ny-parser-nyash/main.nyash` +- One-off run (VM): `./tools/dev_selfhost_loop.sh apps/selfhost-minimal/main.hako` +- Watch + std libs: `./tools/dev_selfhost_loop.sh --watch --std apps/selfhost/ny-parser-nyash/main.hako` - Make targets: - `make dev` (VM, std on, verbose) - `make dev-watch` (watch mode) diff --git a/docs/archive/2025-08-08_outbox_methodbox_achievements.md b/docs/archive/2025-08-08_outbox_methodbox_achievements.md index 29de0285..f0de482a 100644 --- a/docs/archive/2025-08-08_outbox_methodbox_achievements.md +++ b/docs/archive/2025-08-08_outbox_methodbox_achievements.md @@ -16,11 +16,11 @@ static function Factory.create() { ``` ### ✅ **outbox活用プログラム完成!** -1. **simple_factory.nyash** - ケーキ工場 -2. **pet_shop.nyash** - ペットショップ -3. **omikuji.nyash** - おみくじ -4. **maze_generator.nyash** - 迷路生成 -5. **calculator_demo.nyash** - 数式評価器 +1. **simple_factory.hako** - ケーキ工場 +2. **pet_shop.hako** - ペットショップ +3. **omikuji.hako** - おみくじ +4. **maze_generator.hako** - 迷路生成 +5. **calculator_demo.hako** - 数式評価器 ## 🎊 **MethodBox完全実装大成功!** diff --git a/docs/archive/GETTING_STARTED.md b/docs/archive/GETTING_STARTED.md index 61df6ac6..132fa204 100644 --- a/docs/archive/GETTING_STARTED.md +++ b/docs/archive/GETTING_STARTED.md @@ -19,11 +19,11 @@ cd nyash/nyash-rust cargo build # 実行 -./target/debug/nyash your_program.nyash +./target/debug/nyash your_program.hako ``` ### **2. はじめてのNyashプログラム** -`hello.nyash`を作成: +`hello.hako`を作成: ```nyash print("Hello, Nyash World!") print("Everything is Box! 🎉") @@ -31,7 +31,7 @@ print("Everything is Box! 🎉") 実行: ```bash -./target/debug/nyash hello.nyash +./target/debug/nyash hello.hako ``` 出力: @@ -408,24 +408,24 @@ debuggingDemo() ### **プロジェクト構造** ``` my_nyash_project/ -├── main.nyash # メインプログラム +├── main.hako # メインプログラム ├── utils/ -│ ├── math.nyash # 数学ユーティリティ -│ ├── string.nyash # 文字列ユーティリティ -│ └── debug.nyash # デバッグ関数 +│ ├── math.hako # 数学ユーティリティ +│ ├── string.hako # 文字列ユーティリティ +│ └── debug.hako # デバッグ関数 └── models/ - ├── person.nyash # Personクラス - └── calculator.nyash # Calculatorクラス + ├── person.hako # Personクラス + └── calculator.hako # Calculatorクラス ``` -### **main.nyash** +### **main.hako** ```nyash # 📦 Module System Example -include "utils/math.nyash" -include "utils/string.nyash" -include "models/person.nyash" -include "models/calculator.nyash" +include "utils/math.hako" +include "utils/string.hako" +include "models/person.hako" +include "models/calculator.hako" function main() { print("🚀 Multi-module Nyash Application") @@ -509,7 +509,7 @@ loop(i < 1000) { ### **学習順序** 1. ✅ **基本構文** - このガイドで完了 -2. **並行処理** - `test_async_*.nyash`を参考に +2. **並行処理** - `test_async_*.hako`を参考に 3. **Static Box応用** - ユーティリティクラス作成 4. **デバッグ技法** - DebugBox完全活用 5. **アプリケーション開発** - 実践的なプロジェクト @@ -517,10 +517,10 @@ loop(i < 1000) { ### **サンプルプログラム** ```bash # 実装済みサンプル -./target/debug/nyash test_local_init.nyash # 初期化付き変数 -./target/debug/nyash app_dice_rpg.nyash # RPGバトルゲーム -./target/debug/nyash app_statistics.nyash # 統計計算 -./target/debug/nyash test_async_parallel.nyash # 並行処理 +./target/debug/nyash test_local_init.hako # 初期化付き変数 +./target/debug/nyash app_dice_rpg.hako # RPGバトルゲーム +./target/debug/nyash app_statistics.hako # 統計計算 +./target/debug/nyash test_async_parallel.hako # 並行処理 ``` ### **リファレンス** diff --git a/docs/archive/LANGUAGE_OVERVIEW_2025.md b/docs/archive/LANGUAGE_OVERVIEW_2025.md index 513b5a8f..af12a313 100644 --- a/docs/archive/LANGUAGE_OVERVIEW_2025.md +++ b/docs/archive/LANGUAGE_OVERVIEW_2025.md @@ -103,8 +103,8 @@ DEBUG.saveToFile("debug.txt") ### 📦 **モジュールシステム** ```nyash -include "math_utils.nyash" # ファイルインクルード -include "graphics.nyash" # 機能の組み込み +include "math_utils.hako" # ファイルインクルード +include "graphics.hako" # 機能の組み込み ``` ## 🎮 実装済みアプリケーション diff --git a/docs/archive/P2P_IMPLEMENTATION_ISSUE.md b/docs/archive/P2P_IMPLEMENTATION_ISSUE.md index 5cedb836..63b81d9a 100644 --- a/docs/archive/P2P_IMPLEMENTATION_ISSUE.md +++ b/docs/archive/P2P_IMPLEMENTATION_ISSUE.md @@ -56,7 +56,7 @@ pub type IntentBox = Arc>; **テストコード**: ```nyash -// tests/phase2/intent_box_test.nyash +// tests/phase2/intent_box_test.hako local msg = new IntentBox("chat.message", { text: "Hello P2P!" }) local console = new ConsoleBox() console.log("Name: " + msg.name) // "chat.message" @@ -131,7 +131,7 @@ impl P2PBoxData { ## 🧪 包括的テスト要件 ### **基本動作テスト** -**ファイル**: `test_p2p_basic_new.nyash` +**ファイル**: `test_p2p_basic_new.hako` ```nyash // 2つのノード作成 diff --git a/docs/archive/PHASE6_IMPLEMENTATION.md b/docs/archive/PHASE6_IMPLEMENTATION.md index 2bec8679..9049e27e 100644 --- a/docs/archive/PHASE6_IMPLEMENTATION.md +++ b/docs/archive/PHASE6_IMPLEMENTATION.md @@ -72,12 +72,12 @@ This document summarizes the implementation of Phase 6: Box operations minimal i ### VM Backend Execution ```bash -./nyash --backend vm program.nyash +./nyash --backend vm program.hako ``` ### MIR Generation and Inspection ```bash -./nyash --dump-mir program.nyash +./nyash --dump-mir program.hako ``` ### Running Tests diff --git a/docs/archive/README.ja.md b/docs/archive/README.ja.md index 7799c5cf..a4c0a72f 100644 --- a/docs/archive/README.ja.md +++ b/docs/archive/README.ja.md @@ -232,11 +232,11 @@ cd projects/nyash-wasm cargo build --release # プログラムをローカルで実行 -./target/release/nyash program.nyash +./target/release/nyash program.hako # 例を試す -./target/release/nyash test_async_demo.nyash -./target/release/nyash app_dice_rpg.nyash +./target/release/nyash test_async_demo.hako +./target/release/nyash app_dice_rpg.hako ``` #### 🪟 Windows版 (クロスコンパイル) diff --git a/docs/archive/SOCKETBOX_FIX_SUMMARY.md b/docs/archive/SOCKETBOX_FIX_SUMMARY.md index bbb5af49..76d1fe1c 100644 --- a/docs/archive/SOCKETBOX_FIX_SUMMARY.md +++ b/docs/archive/SOCKETBOX_FIX_SUMMARY.md @@ -69,10 +69,10 @@ me.server.isServer() // ✅ SocketBox clone B, is_server=true (sa ## Testing ### Test Files Created: -- `test_final_validation.nyash` - Replicates the exact issue scenario -- `test_complete_socketbox_fix.nyash` - Comprehensive SocketBox testing -- `test_multiple_stateful_boxes.nyash` - Tests multiple stateful box types -- `test_arc_fix.nyash` - Original issue test case +- `test_final_validation.hako` - Replicates the exact issue scenario +- `test_complete_socketbox_fix.hako` - Comprehensive SocketBox testing +- `test_multiple_stateful_boxes.hako` - Tests multiple stateful box types +- `test_arc_fix.hako` - Original issue test case ### Expected Results: All tests should show that `isServer()` returns `true` after `bind()` is called, confirming that state is preserved across field accesses. diff --git a/docs/archive/SOCKETBOX_ISSUE_REPRODUCTION.md b/docs/archive/SOCKETBOX_ISSUE_REPRODUCTION.md index 686daee1..ff84644c 100644 --- a/docs/archive/SOCKETBOX_ISSUE_REPRODUCTION.md +++ b/docs/archive/SOCKETBOX_ISSUE_REPRODUCTION.md @@ -5,7 +5,7 @@ ### **1. 最小デッドロック再現** ```bash # 実行コマンド (10秒でタイムアウト) -timeout 10s ./target/release/nyash test_socket_deadlock_minimal.nyash +timeout 10s ./target/release/nyash test_socket_deadlock_minimal.hako # 期待結果: タイムアウトでデッドロック確認 # 出力例: @@ -17,7 +17,7 @@ timeout 10s ./target/release/nyash test_socket_deadlock_minimal.nyash ### **2. 他のBox正常動作確認** ```bash # 実行コマンド -./target/release/nyash test_other_boxes_working.nyash +./target/release/nyash test_other_boxes_working.hako # 期待結果: 正常完了 # 出力例: @@ -29,7 +29,7 @@ timeout 10s ./target/release/nyash test_socket_deadlock_minimal.nyash ### **3. SocketBox全メソッドテスト** ```bash # 実行コマンド (30秒でタイムアウト) -timeout 30s ./target/release/nyash test_socket_methods_comprehensive.nyash +timeout 30s ./target/release/nyash test_socket_methods_comprehensive.hako # 期待結果: 最初のtoString()でデッドロック # 出力例: diff --git a/docs/archive/consultations/ai_conference_native_compilation_20250814.md b/docs/archive/consultations/ai_conference_native_compilation_20250814.md index 9562f82e..6ea4edf2 100644 --- a/docs/archive/consultations/ai_conference_native_compilation_20250814.md +++ b/docs/archive/consultations/ai_conference_native_compilation_20250814.md @@ -141,8 +141,8 @@ Module::deserialize_file("output.cwasm") **実装目標**: ```bash -nyash --compile-native program.nyash -o program.exe -nyash --aot program.nyash # 短縮形 +nyash --compile-native program.hako -o program.exe +nyash --aot program.hako # 短縮形 ``` **期待効果**: 280倍 → 500倍 (1.8倍追加向上) diff --git a/docs/archive/consultations/copilot_issues_20250814_145100_full.md b/docs/archive/consultations/copilot_issues_20250814_145100_full.md index 71d80f89..c8cdfb76 100644 --- a/docs/archive/consultations/copilot_issues_20250814_145100_full.md +++ b/docs/archive/consultations/copilot_issues_20250814_145100_full.md @@ -123,12 +123,12 @@ Scope: Tasks: - Cargo.toml: examples/GUI を feature でガード(default は CLI 最小)。 - ビルド検証: `cargo build --bin nyash`(Linux/Windows)。 -- 実行検証: `cargo run -- ./local_tests/sample.nyash`。 +- 実行検証: `cargo run -- ./local_tests/sample.hako`。 - ドキュメント: 上記手順を how-to-build-native に追記/点検。 Acceptance Criteria: - Linux/Windows で `cargo build --bin nyash` が成功する。 -- `local_tests/` 配下の簡単な .nyash が実行できる。 +- `local_tests/` 配下の簡単な .hako が実行できる。 - 他 bin/examples が壊れていても `--bin nyash` だけで通る。 Out of Scope: @@ -255,7 +255,7 @@ Summary: Scope/Tasks: - AST: BoxDeclaration(is_static=true, name=Main) を検出 → main() を抽出 - Lowering: body を Program に変換して既存経路に渡す -- Tests: local_tests/mir_loop_no_local.nyash で dump/VM が通る +- Tests: local_tests/mir_loop_no_local.hako で dump/VM が通る Acceptance Criteria: - `--dump-mir` が static Main サンプルで成功 @@ -350,7 +350,7 @@ Expected Duration: 1週間 ### 成功基準 - Phase 8.3のBox操作WASMが実際に動作 -- test_wasm_box_ops.nyash が正常実行 +- test_wasm_box_ops.hako が正常実行 - ユーザー定義Boxの完全サポート ------------------------------------------------------------ @@ -555,7 +555,7 @@ Scope/Tasks: - 起動時間・配布サイズ最適化 Acceptance Criteria: -- `nyash --compile-native app.nyash -o app.exe` 動作 +- `nyash --compile-native app.hako -o app.exe` 動作 - 起動時間大幅短縮(JIT起動コスト除去) - 配布可能実行ファイル生成 diff --git a/docs/archive/consultations/copilot_issues_phase0_to_94.txt b/docs/archive/consultations/copilot_issues_phase0_to_94.txt index 5452bd09..9ac0e4e2 100644 --- a/docs/archive/consultations/copilot_issues_phase0_to_94.txt +++ b/docs/archive/consultations/copilot_issues_phase0_to_94.txt @@ -124,12 +124,12 @@ Scope: Tasks: - Cargo.toml: examples/GUI を feature でガード(default は CLI 最小)。 - ビルド検証: `cargo build --bin nyash`(Linux/Windows)。 -- 実行検証: `cargo run -- ./local_tests/sample.nyash`。 +- 実行検証: `cargo run -- ./local_tests/sample.hako`。 - ドキュメント: 上記手順を how-to-build-native に追記/点検。 Acceptance Criteria: - Linux/Windows で `cargo build --bin nyash` が成功する。 -- `local_tests/` 配下の簡単な .nyash が実行できる。 +- `local_tests/` 配下の簡単な .hako が実行できる。 - 他 bin/examples が壊れていても `--bin nyash` だけで通る。 Out of Scope: @@ -256,7 +256,7 @@ Summary: Scope/Tasks: - AST: BoxDeclaration(is_static=true, name=Main) を検出 → main() を抽出 - Lowering: body を Program に変換して既存経路に渡す -- Tests: local_tests/mir_loop_no_local.nyash で dump/VM が通る +- Tests: local_tests/mir_loop_no_local.hako で dump/VM が通る Acceptance Criteria: - `--dump-mir` が static Main サンプルで成功 @@ -350,7 +350,7 @@ Expected Duration: 1週間 ### 成功基準 - Phase 8.3のBox操作WASMが実際に動作 -- test_wasm_box_ops.nyash が正常実行 +- test_wasm_box_ops.hako が正常実行 - ユーザー定義Boxの完全サポート ------------------------------------------------------------ @@ -555,7 +555,7 @@ Scope/Tasks: - 起動時間・配布サイズ最適化 Acceptance Criteria: -- `nyash --compile-native app.nyash -o app.exe` 動作 +- `nyash --compile-native app.hako -o app.exe` 動作 - 起動時間大幅短縮(JIT起動コスト除去) - 配布可能実行ファイル生成 @@ -592,7 +592,7 @@ Summary: 1. **WASM/AOT コンパイルエラー(最重要)** ```bash - $ ./target/release/nyash --compile-wasm test_simple_loop.nyash + $ ./target/release/nyash --compile-wasm test_simple_loop.hako ❌ Unsupported instruction: Jump { target: BasicBlockId(1) } ``` **影響**: ループ・条件分岐を含む全プログラムがWASM/AOT化不可 @@ -623,7 +623,7 @@ Summary: - グレースフルシャットダウン Acceptance Criteria: -- ✅ `nyash --compile-wasm test_loop.nyash` 成功 +- ✅ `nyash --compile-wasm test_loop.hako` 成功 - ✅ HTTPサーバー実動作(curl http://localhost:8080/) - ✅ unwrap()使用箇所: 26 → 5以下 - ✅ WASM性能: 11.5倍 → 13.5倍達成 diff --git a/docs/archive/gemini_consultation_include_namespace.md b/docs/archive/gemini_consultation_include_namespace.md index 754b640f..2bebf76e 100644 --- a/docs/archive/gemini_consultation_include_namespace.md +++ b/docs/archive/gemini_consultation_include_namespace.md @@ -30,7 +30,7 @@ nyashstd.string.upper("hello") ### 2. 既存include実装 単純なファイル読み込み+実行システム: ```nyash -include "myfile.nyash" # ファイル内容をパース・実行 +include "myfile.hako" # ファイル内容をパース・実行 ``` - 重複読み込み防止機能あり @@ -46,9 +46,9 @@ includeとnamespace/usingの統合が必要: ### A. 依存関係解決の複雑性 ```nyash -# main.nyash -using nyashstd # ← nyashstd.nyashの読み込みが必要 -using mylib # ← mylib.nyashの読み込みが必要 +# main.hako +using nyashstd # ← nyashstd.hakoの読み込みが必要 +using mylib # ← mylib.hakoの読み込みが必要 string.upper("hello") # nyashstdから mylib.custom() # mylibから ``` @@ -71,8 +71,8 @@ Cargo.toml/package.json類似の依存関係管理ファイル: ```toml # nyash.link (プロジェクトルート) [dependencies] -nyashstd = "./stdlib/nyashstd.nyash" -mylib = "./libs/mylib.nyash" +nyashstd = "./stdlib/nyashstd.hako" +mylib = "./libs/mylib.hako" [search_paths] stdlib = "./stdlib/" @@ -82,7 +82,7 @@ libs = "./libs/" ### 動作イメージ 1. `using nyashstd` 実行時 2. nyash.linkを読み取り -3. `"./stdlib/nyashstd.nyash"` を特定 +3. `"./stdlib/nyashstd.hako"` を特定 4. ファイル読み込み・名前空間登録 5. `string.upper()` が使用可能に @@ -96,7 +96,7 @@ libs = "./libs/" ### 2. 既存includeとの共存戦略 **選択肢A**: includeを低レベルAPIとして残す ```nyash -include "config.nyash" # 即座実行(設定ファイル等) +include "config.hako" # 即座実行(設定ファイル等) using mylib # 名前空間インポート(ライブラリ) ``` diff --git a/docs/archive/issue_phase951.md b/docs/archive/issue_phase951.md index d5c68260..b32ea053 100644 --- a/docs/archive/issue_phase951.md +++ b/docs/archive/issue_phase951.md @@ -13,7 +13,7 @@ Phase 9で実装されたWASM/AOTとHTTPサーバー機能に重大な制約が ### 1. **WASM/AOT コンパイルエラー(最重要)** ```bash # 現象 -$ ./target/release/nyash --compile-wasm test_simple_loop.nyash +$ ./target/release/nyash --compile-wasm test_simple_loop.hako ❌ WASM compilation error: Unsupported instruction: Jump { target: BasicBlockId(1) } ``` @@ -121,13 +121,13 @@ let listener = match self.listener.lock() { 1. **WASM/AOT成功** ```bash - $ ./target/release/nyash --compile-wasm test_wasm_loop.nyash + $ ./target/release/nyash --compile-wasm test_wasm_loop.hako ✅ WASM compilation completed successfully! ``` 2. **HTTPサーバー実動作** ```bash - $ ./target/release/nyash test_http_server_real.nyash & + $ ./target/release/nyash test_http_server_real.hako & $ curl http://localhost:8080/

Nyash Server Running!

``` diff --git a/docs/archive/language-specs/language-reference-2025-08-11.md b/docs/archive/language-specs/language-reference-2025-08-11.md index 3687a359..2dd391f3 100644 --- a/docs/archive/language-specs/language-reference-2025-08-11.md +++ b/docs/archive/language-specs/language-reference-2025-08-11.md @@ -65,7 +65,7 @@ Rust製インタープリターによる高性能実行と、直感的な構文 |-------|------|---| | `function` | 関数定義 | `function add(a,b) { }` | | `print` | 出力 | `print("Hello")` | -| `include` | ファイル取り込み | `include "math.nyash"` | +| `include` | ファイル取り込み | `include "math.hako"` | --- diff --git a/docs/archive/language-specs/language_spec_old.md b/docs/archive/language-specs/language_spec_old.md index a38caa7f..650048f7 100644 --- a/docs/archive/language-specs/language_spec_old.md +++ b/docs/archive/language-specs/language_spec_old.md @@ -65,7 +65,7 @@ Rust製インタープリターによる高性能実行と、直感的な構文 |-------|------|---| | `function` | 関数定義 | `function add(a,b) { }` | | `print` | 出力 | `print("Hello")` | -| `include` | ファイル取り込み | `include "math.nyash"` | +| `include` | ファイル取り込み | `include "math.hako"` | --- diff --git a/docs/archive/mir-26-specification.md b/docs/archive/mir-26-specification.md index 0d3c792b..4d6abcf3 100644 --- a/docs/archive/mir-26-specification.md +++ b/docs/archive/mir-26-specification.md @@ -203,9 +203,9 @@ Call @debug, %value, "message" ### **Golden MIR テスト** ```bash # 全バックエンドでMIR出力一致確認 -./target/release/nyash --dump-mir-26 program.nyash > golden.mir -./target/release/nyash --backend vm --dump-mir-26 program.nyash > vm.mir -./target/release/nyash --backend wasm --dump-mir-26 program.nyash > wasm.mir +./target/release/nyash --dump-mir-26 program.hako > golden.mir +./target/release/nyash --backend vm --dump-mir-26 program.hako > vm.mir +./target/release/nyash --backend wasm --dump-mir-26 program.hako > wasm.mir diff golden.mir vm.mir && diff vm.mir wasm.mir ``` diff --git a/docs/archive/mir-docs-old/mir-reference.md b/docs/archive/mir-docs-old/mir-reference.md index ca77e984..6f06cf66 100644 --- a/docs/archive/mir-docs-old/mir-reference.md +++ b/docs/archive/mir-docs-old/mir-reference.md @@ -14,11 +14,11 @@ ### 🚀 **差別化ポイント** ```bash # 全バックエンド統一実行 -nyash --target interp program.nyash # デバッグ -nyash --target vm program.nyash # 高速実行 -nyash --target wasm program.nyash # Web配布 -nyash --target aot-rust program.nyash # ネイティブ -nyash --target jit-cranelift program.nyash # JIT +nyash --target interp program.hako # デバッグ +nyash --target vm program.hako # 高速実行 +nyash --target wasm program.hako # Web配布 +nyash --target aot-rust program.hako # ネイティブ +nyash --target jit-cranelift program.hako # JIT ``` それぞれに**ベンチ + 互換テスト**が通る統一設計 @@ -112,22 +112,22 @@ br %alive -> %use_bb, %null_bb #### **Golden Dump検証** ```bash # MIR出力の一致検証 -nyash --dump-mir program.nyash > expected.mir -nyash --dump-mir program.nyash > actual.mir +nyash --dump-mir program.hako > expected.mir +nyash --dump-mir program.hako > actual.mir diff expected.mir actual.mir # 0でなければ回帰 # 全バックエンド同一出力 -nyash --target interp program.nyash > interp.out -nyash --target vm program.nyash > vm.out -nyash --target wasm program.nyash > wasm.out +nyash --target interp program.hako > interp.out +nyash --target vm program.hako > vm.out +nyash --target wasm program.hako > wasm.out diff interp.out vm.out && diff vm.out wasm.out ``` #### **Bus-elision検証** ```bash # Bus最適化のon/off切り替え -nyash --elide-bus program.nyash > optimized.out -nyash --no-elide-bus program.nyash > reference.out +nyash --elide-bus program.hako > optimized.out +nyash --no-elide-bus program.hako > reference.out diff optimized.out reference.out # 結果は同一であるべき ``` @@ -162,11 +162,11 @@ Bus-elision OFF: 分散通信フルサポート ### **統一コマンド体系** ```bash -nyash --target interp program.nyash # インタープリター -nyash --target vm program.nyash # 仮想マシン -nyash --target wasm program.nyash # WebAssembly -nyash --target aot-rust program.nyash # AOTネイティブ -nyash --target jit-cranelift program.nyash # JITコンパイル +nyash --target interp program.hako # インタープリター +nyash --target vm program.hako # 仮想マシン +nyash --target wasm program.hako # WebAssembly +nyash --target aot-rust program.hako # AOTネイティブ +nyash --target jit-cranelift program.hako # JITコンパイル ``` ### **品質保証体系** diff --git a/docs/archive/native-plan/copilot_issues_280x_misconception.txt b/docs/archive/native-plan/copilot_issues_280x_misconception.txt index b328d939..b6991326 100644 --- a/docs/archive/native-plan/copilot_issues_280x_misconception.txt +++ b/docs/archive/native-plan/copilot_issues_280x_misconception.txt @@ -49,8 +49,8 @@ Priority: High (Phase 8.3完了後に即座開始) ### 実装目標 新CLI機能: - nyash --compile-native program.nyash -o program.exe - nyash --aot program.nyash + nyash --compile-native program.hako -o program.exe + nyash --aot program.hako ### 技術アプローチ Pipeline: Nyash → AST → MIR → WASM → wasmtime compile → Native Binary diff --git a/docs/archive/nyash_file_refactoring_issue.md b/docs/archive/nyash_file_refactoring_issue.md index b4bbd60f..f10bb3b9 100644 --- a/docs/archive/nyash_file_refactoring_issue.md +++ b/docs/archive/nyash_file_refactoring_issue.md @@ -184,8 +184,8 @@ cargo check --all-targets cargo build --release # Functionality verification -./target/release/nyash test_comprehensive_operators.nyash -./target/release/nyash app_dice_rpg.nyash +./target/release/nyash test_comprehensive_operators.hako +./target/release/nyash app_dice_rpg.hako ./target/release/nyash --benchmark --iterations 10 # Regression testing diff --git a/docs/archive/phase_8_5_mir_25_instruction_specification.md b/docs/archive/phase_8_5_mir_25_instruction_specification.md index b14f4161..b13440da 100644 --- a/docs/archive/phase_8_5_mir_25_instruction_specification.md +++ b/docs/archive/phase_8_5_mir_25_instruction_specification.md @@ -247,29 +247,29 @@ impl JITCompiler { ### 1. Golden MIR テスト ```bash # 各サンプルのMIRダンプが全バックエンドで一致 -./target/release/nyash --dump-mir test_golden_mir.nyash > golden.mir -./target/release/nyash --backend vm --dump-mir test_golden_mir.nyash > vm.mir -./target/release/nyash --backend wasm --dump-mir test_golden_mir.nyash > wasm.mir +./target/release/nyash --dump-mir test_golden_mir.hako > golden.mir +./target/release/nyash --backend vm --dump-mir test_golden_mir.hako > vm.mir +./target/release/nyash --backend wasm --dump-mir test_golden_mir.hako > wasm.mir diff golden.mir vm.mir && diff vm.mir wasm.mir ``` ### 2. 行動一致テスト ```bash # 同入力→同出力(weak失効時のnull/false含む) -./target/release/nyash --backend interpreter test_behavior.nyash > interp.out -./target/release/nyash --backend vm test_behavior.nyash > vm.out -./target/release/nyash --backend wasm test_behavior.nyash > wasm.out +./target/release/nyash --backend interpreter test_behavior.hako > interp.out +./target/release/nyash --backend vm test_behavior.hako > vm.out +./target/release/nyash --backend wasm test_behavior.hako > wasm.out diff interp.out vm.out && diff vm.out wasm.out ``` ### 3. 性能スモークテスト ```bash # 5種の代表ケースで性能継続検証 -./target/release/nyash --benchmark add_loop.nyash -./target/release/nyash --benchmark map_getset.nyash -./target/release/nyash --benchmark alloc_free.nyash -./target/release/nyash --benchmark bus_local.nyash -./target/release/nyash --benchmark bus_actor.nyash +./target/release/nyash --benchmark add_loop.hako +./target/release/nyash --benchmark map_getset.hako +./target/release/nyash --benchmark alloc_free.hako +./target/release/nyash --benchmark bus_local.hako +./target/release/nyash --benchmark bus_actor.hako # 期待値: VMがinterp以上、WASMがVM以上 ``` @@ -309,13 +309,13 @@ diff interp.out vm.out && diff vm.out wasm.out ### デバッグ支援 ```bash # MIR命令別実行トレース -./target/release/nyash --trace-mir-execution test.nyash +./target/release/nyash --trace-mir-execution test.hako # 所有森検証 -./target/release/nyash --verify-ownership-forest test.nyash +./target/release/nyash --verify-ownership-forest test.hako # 効果システム確認 -./target/release/nyash --dump-mir-effects test.nyash +./target/release/nyash --dump-mir-effects test.hako ``` ## 📊 期待される効果 diff --git a/docs/archive/phases/phase-10.1/implementation_steps.md b/docs/archive/phases/phase-10.1/implementation_steps.md index 7ab1f1c8..4d6974da 100644 --- a/docs/archive/phases/phase-10.1/implementation_steps.md +++ b/docs/archive/phases/phase-10.1/implementation_steps.md @@ -70,7 +70,7 @@ fn load_builtin_plugins(&mut self) { #### 2.2 テストプログラム ```nyash -// test_array_plugin.nyash +// test_array_plugin.hako local arr arr = new ArrayBox() // プラグイン版を呼ぶ print(arr.length()) // 0が出力されれば成功 @@ -78,7 +78,7 @@ print(arr.length()) // 0が出力されれば成功 #### 2.3 VM実行 ```bash -./target/release/nyash --backend vm test_array_plugin.nyash +./target/release/nyash --backend vm test_array_plugin.hako ``` ### Step 3: JIT動作確認 @@ -97,7 +97,7 @@ match box_type { #### 3.2 JIT実行テスト ```bash -NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 ./target/release/nyash --backend vm test_array_plugin.nyash +NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 ./target/release/nyash --backend vm test_array_plugin.hako ``` ### Step 4: 段階的移行 @@ -123,7 +123,7 @@ if env::var("NYASH_USE_PLUGIN_BUILTINS").is_ok() { #### 5.1 ベンチマーク作成 ```nyash -// bench_array_ops.nyash +// bench_array_ops.hako local arr = new ArrayBox() local start = Timer.now() loop(i in 0..1000000) { @@ -136,10 +136,10 @@ print("Time: " + elapsed) #### 5.2 比較測定 ```bash # 従来版 -./target/release/nyash --benchmark bench_array_ops.nyash +./target/release/nyash --benchmark bench_array_ops.hako # プラグイン版 -NYASH_USE_PLUGIN_BUILTINS=1 ./target/release/nyash --benchmark bench_array_ops.nyash +NYASH_USE_PLUGIN_BUILTINS=1 ./target/release/nyash --benchmark bench_array_ops.hako ``` ## 🎯 成功基準 @@ -169,10 +169,10 @@ NYASH_USE_PLUGIN_BUILTINS=1 ./target/release/nyash --benchmark bench_array_ops.n ```bash # プラグインロード確認 -NYASH_DEBUG_PLUGIN=1 ./target/release/nyash test.nyash +NYASH_DEBUG_PLUGIN=1 ./target/release/nyash test.hako # JIT呼び出し確認 -NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm test.nyash +NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm test.hako ``` --- diff --git a/docs/archive/phases/phase-10.1/phase_plan.md b/docs/archive/phases/phase-10.1/phase_plan.md index 99c5d9b4..37bf9512 100644 --- a/docs/archive/phases/phase-10.1/phase_plan.md +++ b/docs/archive/phases/phase-10.1/phase_plan.md @@ -58,7 +58,7 @@ This plan refines how we leverage the existing plugin system (BID-FFI) to unify - Link scripts and `nyc build-aot` proof-of-concept. - Hello World-level standalone EXE on Linux/macOS. - DoD: - - `nyc build-aot -o app` runs without JIT/VM. + - `nyc build-aot -o app` runs without JIT/VM. - Basic debug info and minimal unwind. ### 10.5: Python Integration (moved; separate phase) diff --git a/docs/archive/phases/phase-10.11-builtins-to-plugins.md b/docs/archive/phases/phase-10.11-builtins-to-plugins.md index b152e26d..a7fe687a 100644 --- a/docs/archive/phases/phase-10.11-builtins-to-plugins.md +++ b/docs/archive/phases/phase-10.11-builtins-to-plugins.md @@ -46,7 +46,7 @@ export NYASH_PLUGIN_OVERRIDE_TYPES="ArrayBox,MapBox,ConsoleBox,StringBox,Integer export NYASH_DISABLE_BUILTINS=1 cargo build --release --features cranelift-jit -./target/release/nyash --backend vm examples/console_demo.nyash +./target/release/nyash --backend vm examples/console_demo.hako ``` ## Notes diff --git a/docs/archive/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt b/docs/archive/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt index 1d9d2d48..f5b1af44 100644 --- a/docs/archive/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt +++ b/docs/archive/phases/phase-10.5/10.1c_parser_integration/builtin_box_implementation_flow.txt @@ -440,7 +440,7 @@ pub fn register_builtin_boxes(env: &mut Environment) { ### 6. 使用例とテストケース ```nyash -// test_python_parser_phase1.nyash +// test_python_parser_phase1.hako local py = new PythonParserBox() // Phase 1: 基本的な関数定義と演算 @@ -513,7 +513,7 @@ export NYASH_PYTHONPARSER_TELEMETRY=2 # 詳細ログ export NYASH_PYTHONPARSER_STRICT=1 # フォールバック時にパニック # 実行例 -./target/release/nyash test_python_parser.nyash +./target/release/nyash test_python_parser.hako # 出力 [PythonParser] Module: test.py (Python 3.11) diff --git a/docs/archive/phases/phase-10.5/10.1e_transpiler/README.md b/docs/archive/phases/phase-10.5/10.1e_transpiler/README.md index f1407d89..120e7e24 100644 --- a/docs/archive/phases/phase-10.5/10.1e_transpiler/README.md +++ b/docs/archive/phases/phase-10.5/10.1e_transpiler/README.md @@ -46,7 +46,7 @@ result = add(10, 5) ## 🛠️ コマンドラインツール ```bash # 基本変換 -nyash-transpile input.py -o output.nyash +nyash-transpile input.py -o output.hako # 変換統計付き nyash-transpile --stats complex.py diff --git a/docs/archive/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt b/docs/archive/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt index 2bfe09a5..b784dfeb 100644 --- a/docs/archive/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt +++ b/docs/archive/phases/phase-10.5/10.1e_transpiler/python_to_nyash_transpiler.txt @@ -21,7 +21,7 @@ for i in range(10): ↓ 変換 ```nyash -# output.nyash +# output.hako function calculate(x, y) { local result result = x * 2 + y @@ -74,7 +74,7 @@ impl PythonParserBox { ### コマンドライン版 ```bash # PythonファイルをNyashに変換 -nyash-transpile input.py -o output.nyash +nyash-transpile input.py -o output.hako # 標準出力に出力 nyash-transpile script.py @@ -94,7 +94,7 @@ local python_code = FileBox.read("algorithm.py") local nyash_code = transpiler.to_nyash_source(python_code) // ファイルに保存 -FileBox.write("algorithm.nyash", nyash_code) +FileBox.write("algorithm.hako", nyash_code) // または直接実行 eval(nyash_code) diff --git a/docs/archive/phases/phase-10.5/10.5b-native-build-consolidation.md b/docs/archive/phases/phase-10.5/10.5b-native-build-consolidation.md index fd6b6e3e..8b8c1b9a 100644 --- a/docs/archive/phases/phase-10.5/10.5b-native-build-consolidation.md +++ b/docs/archive/phases/phase-10.5/10.5b-native-build-consolidation.md @@ -17,8 +17,8 @@ Python統合を本格化する前に、配布可能なネイティブ実行フ ## ✅ 成果(DoD) - `cargo build --release --features cranelift-jit` の後、 - - Linux: `./tools/build_aot.sh examples/aot_min_string_len.nyash -o app && ./app` - - Windows: `powershell -ExecutionPolicy Bypass -File tools\build_aot.ps1 -Input examples\aot_min_string_len.nyash -Out app.exe && .\app.exe` + - Linux: `./tools/build_aot.sh examples/aot_min_string_len.hako -o app && ./app` + - Windows: `powershell -ExecutionPolicy Bypass -File tools\build_aot.ps1 -Input examples\aot_min_string_len.hako -Out app.exe && .\app.exe` - プラグインは `.so` 記述でも各OSで自動解決(.dll/.dylib へ変換、lib剥がし) - `tools/smoke_aot_vs_vm.sh` で VM/EXE の `Result:` 行比較が可能(差異は警告表示) diff --git a/docs/archive/phases/phase-10.5/README.md b/docs/archive/phases/phase-10.5/README.md index 49a0c9c7..0756a34f 100644 --- a/docs/archive/phases/phase-10.5/README.md +++ b/docs/archive/phases/phase-10.5/README.md @@ -69,7 +69,7 @@ ### 10.5d JIT/AOT 統合(3–5日) - AOTパイプライン固定: Lower→CLIF→OBJ出力→`ny_main`+`libnyrt.a`リンク→EXE -- CLI: `nyash --compile-native file.nyash -o app` を追加(失敗は非ゼロ終了) +- CLI: `nyash --compile-native file.hako -o app` を追加(失敗は非ゼロ終了) - libnyrt: `nyash.python.*` 等のシムを提供し、未解決シンボル解決 - ディスパッチ: type_id→`nyplug_*_invoke` の静的/動的ルート(第一段は動的優先) @@ -79,8 +79,8 @@ - ドキュメント: 使用例、制約(GIL/スレッド)、AOT時のリンク・ランタイム要件 追加済みサンプル(最小チェーン) -- VM: `examples/py_min_chain_vm.nyash`(import→getattr→call→println) -- AOT: `examples/aot_py_min_chain.nyash`(import→getattr→call→return) +- VM: `examples/py_min_chain_vm.hako`(import→getattr→call→println) +- AOT: `examples/aot_py_min_chain.hako`(import→getattr→call→return) ## 🎯 DoD(定義) - NyashからPythonコードを評価し、PyObjectをHandleで往復できる diff --git a/docs/archive/phases/phase-10.6/PYTHON_NATIVE_PLAN.txt b/docs/archive/phases/phase-10.6/PYTHON_NATIVE_PLAN.txt index 1b436be6..6502f63d 100644 --- a/docs/archive/phases/phase-10.6/PYTHON_NATIVE_PLAN.txt +++ b/docs/archive/phases/phase-10.6/PYTHON_NATIVE_PLAN.txt @@ -6,8 +6,8 @@ 1) 到達イメージ(DoD) ==================== - Linux/Windows で以下が安定動作: - - AOT: `examples/aot_py_min_chain.nyash` → `Result: 4`(math.sqrt(16)) - - VM: `examples/py_min_chain_vm.nyash` → 4.0 表示(NYASH_PY_AUTODECODE=1) + - AOT: `examples/aot_py_min_chain.hako` → `Result: 4`(math.sqrt(16)) + - VM: `examples/py_min_chain_vm.hako` → 4.0 表示(NYASH_PY_AUTODECODE=1) - returns_result 系サンプル(importR/getattrR/callR)で Ok/Err が期待通りに表示 - AOTビルドの配布体験が明確: - `tools/build_aot.{sh,ps1}` で .o → EXE、`nyash.toml`/plugins 解決、Windowsでは PATH/PYTHONHOME 調整 @@ -66,7 +66,7 @@ M5: 観測/CI(軽量) ==================== 6) 成果物(Artifacts) ==================== -- 例: `examples/aot_py_min_chain.nyash`, `examples/py_min_chain_vm.nyash`(既存) +- 例: `examples/aot_py_min_chain.hako`, `examples/py_min_chain_vm.hako`(既存) - ツール: `tools/build_aot.{sh,ps1}`(Python節)、`tools/smoke_aot_vs_vm.sh`(Python最小) - Docs: `docs/guides/build/aot_quickstart.md`(Python節)、`docs/reference/abi/ffi_calling_convention_min.md`(bytes/N引数注記) diff --git a/docs/archive/phases/phase-10.7/README.md b/docs/archive/phases/phase-10.7/README.md index 6f5c64f4..57589d21 100644 --- a/docs/archive/phases/phase-10.7/README.md +++ b/docs/archive/phases/phase-10.7/README.md @@ -123,7 +123,7 @@ nyash-plugin-sdk = { path = "../../crates/plugin-sdk" } # テスト実行 cargo build --release -../../target/release/nyash test_parser.nyash +../../target/release/nyash test_parser.hako ``` ## 💡 創造的可能性 diff --git a/docs/archive/phases/phase-10.7/examples.md b/docs/archive/phases/phase-10.7/examples.md index 678c8b9f..32619641 100644 --- a/docs/archive/phases/phase-10.7/examples.md +++ b/docs/archive/phases/phase-10.7/examples.md @@ -5,7 +5,7 @@ ### 使用例1: 基本的な関数のネイティブ化 ```nyash -// example1_basic.nyash +// example1_basic.hako // Pythonコードをネイティブコンパイル // Step 1: Pythonコードを用意 @@ -51,7 +51,7 @@ if mir_module.isOk() { ### 使用例2: コンパイル可否の明確な判定 ```nyash -// example2_clear_separation.nyash +// example2_clear_separation.hako // コンパイルできるかどうか事前に判定 // Phase 1対応のコード @@ -107,7 +107,7 @@ if result2.isOk() { ### 使用例3: プログレッシブ最適化 ```nyash -// example3_progressive.nyash +// example3_progressive.hako // 実行しながら徐々に最適化 // 型推論付きコンパイラー @@ -153,7 +153,7 @@ for i in range(5) { ### 使用例4: 言語間相互運用 ```nyash -// example4_interop.nyash +// example4_interop.hako // PythonコードとNyashコードのシームレスな連携 // Pythonで数値計算関数を定義 @@ -198,7 +198,7 @@ box GameObject { ### 使用例5: デバッグとプロファイリング ```nyash -// example5_debug.nyash +// example5_debug.hako // 開発時のデバッグ支援 // デバッグモード有効 diff --git a/docs/archive/phases/phase-10.7/testing-plan.md b/docs/archive/phases/phase-10.7/testing-plan.md index 139439bd..7d5ffe27 100644 --- a/docs/archive/phases/phase-10.7/testing-plan.md +++ b/docs/archive/phases/phase-10.7/testing-plan.md @@ -59,7 +59,7 @@ fn test_compile_arithmetic() { ### 2. Differential Testing Framework ```nyash -// tests/differential/framework.nyash +// tests/differential/framework.hako box DifferentialTester { init { oracle, implementation, results } @@ -145,7 +145,7 @@ def test_arithmetic_properties(x, y): ### 4. ベンチマークスイート ```nyash -// benchmarks/numeric_suite.nyash +// benchmarks/numeric_suite.hako box NumericBenchmark { run() { local suite = new BenchmarkSuite() diff --git a/docs/archive/phases/phase-10/phase_10_10/README.md b/docs/archive/phases/phase-10/phase_10_10/README.md index 65b3bb6d..c5f6db5b 100644 --- a/docs/archive/phases/phase-10/phase_10_10/README.md +++ b/docs/archive/phases/phase-10/phase_10_10/README.md @@ -52,7 +52,7 @@ 5) ベンチと回帰(最小) - 目標: ラインの性能/退行の早期検知 - タスク: - - ny_bench.nyash のケース整理(関数呼出/Map set-get/branch) + - ny_bench.hako のケース整理(関数呼出/Map set-get/branch) - compare: VM vs JIT(ウォームアップ付き) - 受入: ベンチ出力に JIT/VM の比較が出る(改善/退行が見える) @@ -71,15 +71,15 @@ ```bash # math.min(関数スタイル) NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_NATIVE_F64=1 NYASH_JIT_EVENTS=1 \ - ./target/release/nyash --backend vm examples/jit_math_function_style_min_float.nyash + ./target/release/nyash --backend vm examples/jit_math_function_style_min_float.hako # Map.get HH直実行 NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EVENTS=1 \ - ./target/release/nyash --backend vm examples/jit_map_get_param_hh.nyash + ./target/release/nyash --backend vm examples/jit_map_get_param_hh.hako # Mutating opt-in(Array.push) NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EVENTS=1 \ - ./target/release/nyash --backend vm examples/jit_policy_optin_mutating.nyash + ./target/release/nyash --backend vm examples/jit_policy_optin_mutating.hako ## 例とスモーク(開発者向けクイック) - 例一覧: `examples/README.md`(HH直実行・mutating opt-in・GCデモ) diff --git a/docs/archive/phases/phase-10/phase_10_4d_barrier_ci_notes.txt b/docs/archive/phases/phase-10/phase_10_4d_barrier_ci_notes.txt index 2dbae9d5..1d4243fc 100644 --- a/docs/archive/phases/phase-10/phase_10_4d_barrier_ci_notes.txt +++ b/docs/archive/phases/phase-10/phase_10_4d_barrier_ci_notes.txt @@ -11,7 +11,7 @@ How-To (Local) (env) set NYASH_GC_BARRIER_STRICT=1 set NYASH_GC_TRACE=1 - nyash + nyash Expected - Barrier sites log to stderr. diff --git a/docs/archive/phases/phase-10/phase_10_7_jit_branch_wiring_and_abi.txt b/docs/archive/phases/phase-10/phase_10_7_jit_branch_wiring_and_abi.txt index 8fc17d87..cd888519 100644 --- a/docs/archive/phases/phase-10/phase_10_7_jit_branch_wiring_and_abi.txt +++ b/docs/archive/phases/phase-10/phase_10_7_jit_branch_wiring_and_abi.txt @@ -25,7 +25,7 @@ Deliverables - Lowering updates: Branch/Jump hook uses real block IDs; Compare emits b1-friendly shape. - Env flags: Reuse `NYASH_JIT_EXEC/THRESHOLD/STATS/DUMP`; guard hostcalls by `NYASH_JIT_HOSTCALL`. - Docs: Update execution-backends.md with “JIT control-flow coverage (10.7)”. -- Examples: `examples/jit_branch_demo.nyash` (if/loop minimal). +- Examples: `examples/jit_branch_demo.hako` (if/loop minimal). Design Sketch 1) Block Mapping @@ -59,13 +59,13 @@ Implementation Plan (Tasks) - For Branch/Jump, call builder with mapped blocks and condition value hint. - Compare: emit b1 icmp; when Compare is used as value elsewhere, allow i64 extend as needed. - T4: Minimal PHI support for a single merge (optional; guarded by env `NYASH_JIT_PHI_MIN=1`). -- T5: Add `examples/jit_branch_demo.nyash` with: `if (a < b) { return 1 } else { return 2 }` and a small loop with early `return`. +- T5: Add `examples/jit_branch_demo.hako` with: `if (a < b) { return 1 } else { return 2 }` and a small loop with early `return`. - T6: Docs update: execution-backends.md “JIT coverage 10.7” + env flags. - T7: Bench (optional): integrate into `--benchmark` with JIT warmup when `NYASH_JIT_EXEC=1`. Validation - Build matrix: with/without `cranelift-jit` feature. -- Smoke tests: run `jit_branch_demo.nyash` with `NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1`. +- Smoke tests: run `jit_branch_demo.hako` with `NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1`. - Fallback verification: force a path with unsupported op to confirm VM fallback. - GC/scheduler: ensure safepoint path still works (unchanged). diff --git a/docs/archive/phases/phase-10/phase_10_7_master_plan.txt b/docs/archive/phases/phase-10/phase_10_7_master_plan.txt index 32e376c7..bd6cbed3 100644 --- a/docs/archive/phases/phase-10/phase_10_7_master_plan.txt +++ b/docs/archive/phases/phase-10/phase_10_7_master_plan.txt @@ -14,10 +14,10 @@ Flags and CLI (common across 10.7) - CLI: --jit-exec --jit-stats --jit-stats-json --jit-dump --jit-threshold N --jit-phi-min --jit-hostcall Examples to validate -- examples/jit_branch_demo.nyash -- examples/jit_loop_early_return.nyash -- examples/jit_phi_demo.nyash -- examples/jit_array_param_call.nyash, jit_map_param_call.nyash (when hostcall is enabled) +- examples/jit_branch_demo.hako +- examples/jit_loop_early_return.hako +- examples/jit_phi_demo.hako +- examples/jit_array_param_call.hako, jit_map_param_call.hako (when hostcall is enabled) Sub-phases (10.7a → 10.7h) diff --git a/docs/archive/phases/phase-10/phase_10_7a_jit_phi_cfg_and_abi_min.txt b/docs/archive/phases/phase-10/phase_10_7a_jit_phi_cfg_and_abi_min.txt index c7d13872..08383640 100644 --- a/docs/archive/phases/phase-10/phase_10_7a_jit_phi_cfg_and_abi_min.txt +++ b/docs/archive/phases/phase-10/phase_10_7a_jit_phi_cfg_and_abi_min.txt @@ -42,9 +42,9 @@ Non-Goals (later 10.7b+) Deliverables - Working minimal PHI + branch JIT execution on curated examples: - - examples/jit_branch_demo.nyash - - examples/jit_loop_early_return.nyash - - examples/jit_phi_demo.nyash (single-PHI diamond) + - examples/jit_branch_demo.hako + - examples/jit_loop_early_return.hako + - examples/jit_phi_demo.hako (single-PHI diamond) - Fallback correctness: traps/panic → VM path; results match VM - Configurable via CLI flags; metrics visible via JIT summary/JSON diff --git a/docs/archive/phases/phase-10/phase_10_9_builtin_box_jit_support.md b/docs/archive/phases/phase-10/phase_10_9_builtin_box_jit_support.md index fa415238..06028ed7 100644 --- a/docs/archive/phases/phase-10/phase_10_9_builtin_box_jit_support.md +++ b/docs/archive/phases/phase-10/phase_10_9_builtin_box_jit_support.md @@ -67,11 +67,11 @@ - `NYASH_JIT_EVENTS=1`(標準出力へJSON) - 任意: `NYASH_JIT_EVENTS_PATH=target/nyash/jit-events.jsonl` - 代表サンプル(VM経由でJITパス通過) - - 成功: `./target/release/nyash --backend vm examples/jit_hostcall_len_string.nyash` - - 失敗: `NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm examples/jit_hostcall_array_append.nyash` - - 境界: `NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm examples/jit_hostcall_math_sin_mismatch.nyash` - - 署名一致(allow観測): `NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm examples/jit_hostcall_math_sin_allow_float.nyash` - - 関数スタイル(math.*): `NYASH_JIT_NATIVE_F64=1 NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm examples/jit_math_function_style_sin_float.nyash` + - 成功: `./target/release/nyash --backend vm examples/jit_hostcall_len_string.hako` + - 失敗: `NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm examples/jit_hostcall_array_append.hako` + - 境界: `NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm examples/jit_hostcall_math_sin_mismatch.hako` + - 署名一致(allow観測): `NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm examples/jit_hostcall_math_sin_allow_float.hako` + - 関数スタイル(math.*): `NYASH_JIT_NATIVE_F64=1 NYASH_JIT_EVENTS=1 ./target/release/nyash --backend vm examples/jit_math_function_style_sin_float.hako` - `cos/abs/min/max` も同様のサンプルあり - 詰まったら - `--features cranelift-jit` が付いているか @@ -98,15 +98,15 @@ ```bash # math.*(関数スタイル): 署名一致でallow、戻りFloat表示 NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_NATIVE_F64=1 NYASH_JIT_EVENTS=1 \ - ./target/release/nyash --backend vm examples/jit_math_function_style_min_float.nyash + ./target/release/nyash --backend vm examples/jit_math_function_style_min_float.hako # Map.get(パラメータ受け+Handleキー → HH直実行) NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EVENTS=1 \ - ./target/release/nyash --backend vm examples/jit_map_get_param_hh.nyash + ./target/release/nyash --backend vm examples/jit_map_get_param_hh.hako # Map.get(非パラメータ受け → fallback記録) NYASH_JIT_EXEC=1 NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EVENTS=1 \ - ./target/release/nyash --backend vm examples/jit_hostcall_map_get_handle.nyash + ./target/release/nyash --backend vm examples/jit_hostcall_map_get_handle.hako ``` ### ⚙️ Quick flags(イベント観測を確実に) diff --git a/docs/archive/phases/phase-10/phase_10_cranelift_jit_backend.md b/docs/archive/phases/phase-10/phase_10_cranelift_jit_backend.md index 251fdf78..ebc20574 100644 --- a/docs/archive/phases/phase-10/phase_10_cranelift_jit_backend.md +++ b/docs/archive/phases/phase-10/phase_10_cranelift_jit_backend.md @@ -104,9 +104,9 @@ Status(2025-08-27) ```bash cargo build --features cranelift-jit --release NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EXEC=1 \ - ./target/release/nyash --backend vm examples/jit_array_param_call.nyash + ./target/release/nyash --backend vm examples/jit_array_param_call.hako NYASH_JIT_THRESHOLD=1 NYASH_JIT_HOSTCALL=1 NYASH_JIT_EXEC=1 \ - ./target/release/nyash --backend vm examples/jit_map_param_call.nyash + ./target/release/nyash --backend vm examples/jit_map_param_call.hako ``` Notes - 関数パラメータに渡した配列/MapのみHostCall経由でアクセス(thread-local引数参照) @@ -238,12 +238,12 @@ JIT実装(10_a~10_h)で構築したMIR→CLIF変換基盤をそのまま ### 使用イメージ ```bash # ネイティブ実行ファイル生成 -./target/release/nyash --compile-native program.nyash -o program +./target/release/nyash --compile-native program.hako -o program ./program # スタンドアロン実行! # クロスコンパイル -./target/release/nyash --compile-native --target x86_64-pc-windows-msvc program.nyash -o program.exe -./target/release/nyash --compile-native --target aarch64-apple-darwin program.nyash -o program.mac +./target/release/nyash --compile-native --target x86_64-pc-windows-msvc program.hako -o program.exe +./target/release/nyash --compile-native --target aarch64-apple-darwin program.hako -o program.mac ``` ### 技術的詳細 diff --git a/docs/archive/phases/phase-11.5/11.5b-ATOMIC-OPTIMIZATION.md b/docs/archive/phases/phase-11.5/11.5b-ATOMIC-OPTIMIZATION.md index 5e3975f5..2f700e87 100644 --- a/docs/archive/phases/phase-11.5/11.5b-ATOMIC-OPTIMIZATION.md +++ b/docs/archive/phases/phase-11.5/11.5b-ATOMIC-OPTIMIZATION.md @@ -210,10 +210,10 @@ function sumStringLengths(strings) { ### 2. プロファイリング ```bash # Mutexプロファイル -NYASH_PROFILE_LOCKS=1 ./target/release/nyash bench.nyash +NYASH_PROFILE_LOCKS=1 ./target/release/nyash bench.hako # Atomic最適化後 -NYASH_ATOMIC_OPT=1 ./target/release/nyash bench.nyash +NYASH_ATOMIC_OPT=1 ./target/release/nyash bench.hako ``` ## 🚧 実装上の注意点 diff --git a/docs/archive/phases/phase-11.5/11.5c-COROUTINE-ASYNC.md b/docs/archive/phases/phase-11.5/11.5c-COROUTINE-ASYNC.md index 917b6d94..2d2f12d1 100644 --- a/docs/archive/phases/phase-11.5/11.5c-COROUTINE-ASYNC.md +++ b/docs/archive/phases/phase-11.5/11.5c-COROUTINE-ASYNC.md @@ -265,10 +265,10 @@ async function fetchAll(urls) { ### 2. ベンチマーク ```bash # 10000並行リクエスト -./target/release/nyash bench/async_stress.nyash +./target/release/nyash bench/async_stress.hako # メモリプロファイル -NYASH_COROUTINE_STATS=1 ./target/release/nyash bench/async_memory.nyash +NYASH_COROUTINE_STATS=1 ./target/release/nyash bench/async_memory.hako ``` ## 🚧 実装上の注意点 diff --git a/docs/archive/phases/phase-11.5/FIRST-FIVE-APPS.md b/docs/archive/phases/phase-11.5/FIRST-FIVE-APPS.md index d14404de..e8cc2473 100644 --- a/docs/archive/phases/phase-11.5/FIRST-FIVE-APPS.md +++ b/docs/archive/phases/phase-11.5/FIRST-FIVE-APPS.md @@ -10,7 +10,7 @@ Phase 11.5完了を待たずに、**今すぐ作れる**実用アプリ5本で **目的**: I/O・StringBoxの道通し確認 ```nyash -// apps/ny-echo/main.nyash +// apps/ny-echo/main.hako static box Main { main(args) { local console = new ConsoleBox() @@ -42,7 +42,7 @@ static box Main { **目的**: PyRuntimeBox/PyObjectBox経由のPluginInvoke検証 ```nyash -// apps/ny-jsonlint/main.nyash +// apps/ny-jsonlint/main.hako static box Main { init { py, console } @@ -85,7 +85,7 @@ except Exception as e: **目的**: ArrayBox map/reduce、StatsBox導入、性能可視化 ```nyash -// apps/ny-array-bench/main.nyash +// apps/ny-array-bench/main.hako static box Main { init { stats } @@ -139,7 +139,7 @@ static box Main { **目的**: BytesBox/FileBox(プラグイン)I/O、実用的なツール ```nyash -// apps/ny-filegrep/main.nyash +// apps/ny-filegrep/main.hako static box Main { init { pattern, recursive, results } @@ -202,7 +202,7 @@ static box Main { **目的**: NetBox(プラグイン)とイベントループ、FutureBox活用 ```nyash -// apps/ny-http-hello/main.nyash +// apps/ny-http-hello/main.hako static box Main { init { server, running } @@ -292,7 +292,7 @@ nyash-apps-v1.0/ │ ├── ny-filegrep[.exe] │ └── ny-http-hello[.exe] ├── examples/ -│ └── *.nyash (ソースコード) +│ └── *.hako (ソースコード) ├── benchmarks/ │ └── results.json └── README.md diff --git a/docs/archive/phases/phase-11.9/chatgpt5-feedback-integration.md b/docs/archive/phases/phase-11.9/chatgpt5-feedback-integration.md index acd07b6f..37804f3d 100644 --- a/docs/archive/phases/phase-11.9/chatgpt5-feedback-integration.md +++ b/docs/archive/phases/phase-11.9/chatgpt5-feedback-integration.md @@ -152,7 +152,7 @@ mod migration_tests { #[test] fn test_unified_vs_legacy_semantics() { - let test_cases = load_test_cases("tests/semantics/*.nyash"); + let test_cases = load_test_cases("tests/semantics/*.hako"); for case in test_cases { let legacy_result = legacy_interpreter.execute(&case); diff --git a/docs/archive/phases/phase-11/phase10_aot_scaffolding.md b/docs/archive/phases/phase-11/phase10_aot_scaffolding.md index ac974788..240bef8d 100644 --- a/docs/archive/phases/phase-11/phase10_aot_scaffolding.md +++ b/docs/archive/phases/phase-11/phase10_aot_scaffolding.md @@ -9,8 +9,8 @@ MIR→LLVM IR直接変換による最高性能AOT実現。Cranelift JITをスキ ## 🎯 実装目標 ```bash # Phase 9基盤の拡張 -nyash --compile-llvm app.nyash -o app # LLVM AOT実行ファイル生成 -nyash --optimize app.nyash -o app # 最適化AOT(LTO・PGO) +nyash --compile-llvm app.hako -o app # LLVM AOT実行ファイル生成 +nyash --optimize app.hako -o app # 最適化AOT(LTO・PGO) ./app # 最高性能実行 # 内部実装パイプライン diff --git a/docs/archive/phases/phase-11/phase_10_x_llvm_backend_skeleton.md b/docs/archive/phases/phase-11/phase_10_x_llvm_backend_skeleton.md index 70bfe09a..6b8911cb 100644 --- a/docs/archive/phases/phase-11/phase_10_x_llvm_backend_skeleton.md +++ b/docs/archive/phases/phase-11/phase_10_x_llvm_backend_skeleton.md @@ -12,7 +12,7 @@ Last Updated: 2025-08-25 - ExternCall命令(Phase 9.7)導入予定。ABIは`docs/予定/native-plan/box_ffi_abi.md`に準拠。 アウトカム(受け入れ基準) -- CLI: `nyash --backend llvm --emit obj app.nyash -o app.o` が成功し、`clang app.o -o app` で実行可能。 +- CLI: `nyash --backend llvm --emit obj app.hako -o app.o` が成功し、`clang app.o -o app` で実行可能。 - 代表サンプルで `main` が `i32` を返却(0=成功)。 - `ExternCall(env.console.log)` を `printf` 等へ写像し、標準出力へ表示できる(文字列は (i8*, i32))。 - 単純な四則演算・比較・分岐・ループが LLVM AOT で動作。 diff --git a/docs/archive/phases/phase-12.5/implementation-examples.md b/docs/archive/phases/phase-12.5/implementation-examples.md index 53d377b5..19b12a11 100644 --- a/docs/archive/phases/phase-12.5/implementation-examples.md +++ b/docs/archive/phases/phase-12.5/implementation-examples.md @@ -146,7 +146,7 @@ impl OptPass for DeadCodeElimPass { ```bash # MIRからCへ変換 -nyash --emit-c program.nyash -o program.c +nyash --emit-c program.hako -o program.c # 最適化コンパイル zig cc -O3 -flto -march=native \ @@ -178,7 +178,7 @@ zig cc -O3 -fprofile-use program.c -o program_opt ## 5. 性能測定の例 ```nyash -// benchmark.nyash +// benchmark.hako static box Benchmark { main() { local start, end, result diff --git a/docs/archive/phases/phase-12.5/optimization-strategy.txt b/docs/archive/phases/phase-12.5/optimization-strategy.txt index a2f36047..00e019d5 100644 --- a/docs/archive/phases/phase-12.5/optimization-strategy.txt +++ b/docs/archive/phases/phase-12.5/optimization-strategy.txt @@ -89,27 +89,27 @@ Branch(cond, then, else) → {likely: Some(true)} // thenが高確率 Level 0: 開発モード - MIR最適化なし - デバッグ情報完全保持 - - nyash program.nyash + - nyash program.hako Level 1: 基本最適化(デフォルト) - MIRカノニカル化のみ - Cエミッタ → gcc -O2 - - nyash --release program.nyash + - nyash --release program.hako Level 2: 高速化 - MIR全最適化パス - Cエミッタ → zig cc -O3 -flto - - nyash --release --opt program.nyash + - nyash --release --opt program.hako Level 3: プロファイルガイド(PGO) - 実行プロファイル収集 - ホットパス特定 - - nyash --release --pgo program.nyash + - nyash --release --pgo program.hako Level 4: 特殊用途 - SIMD必要 → LLVM使用(ただし依存が重い) - 起動速度重視 → Cranelift JIT(推奨) - - nyash --backend cranelift program.nyash + - nyash --backend cranelift program.hako ================================================================================ 5. 実装計画 diff --git a/docs/archive/phases/phase-12.7/README.md b/docs/archive/phases/phase-12.7/README.md index 707b893f..273e6987 100644 --- a/docs/archive/phases/phase-12.7/README.md +++ b/docs/archive/phases/phase-12.7/README.md @@ -231,9 +231,9 @@ override → O # オーバーライド **すべての糖衣構文は双方向変換可能:** ```bash # フォーマッターによる自由な変換 -nyash format --style=explicit code.nyash # 明示的記法へ -nyash format --style=sugar code.nyash # 糖衣構文へ -nyash format --style=ancp code.nyash # 極限圧縮へ +nyash format --style=explicit code.hako # 明示的記法へ +nyash format --style=sugar code.hako # 糖衣構文へ +nyash format --style=ancp code.hako # 極限圧縮へ ``` **同じコードの3つの表現:** diff --git a/docs/archive/phases/phase-12.7/ai-feedback/actionable-insights.md b/docs/archive/phases/phase-12.7/ai-feedback/actionable-insights.md index 6b8b2816..1ba819e0 100644 --- a/docs/archive/phases/phase-12.7/ai-feedback/actionable-insights.md +++ b/docs/archive/phases/phase-12.7/ai-feedback/actionable-insights.md @@ -54,9 +54,9 @@ onHover(position) { ### Phase 2: 実用化(2週間目) 1. **CLI実装**(Codex提案) ```bash - ancp encode --layer F input.nyash -o output.f + ancp encode --layer F input.hako -o output.f ancp decode output.f --map output.map - ancp verify input.nyash output.f # MIR等価性チェック + ancp verify input.hako output.f # MIR等価性チェック ``` 2. **プロジェクト辞書**(Gemini提案) diff --git a/docs/archive/phases/phase-12.7/ai-feedback/quick-implementation-guide.md b/docs/archive/phases/phase-12.7/ai-feedback/quick-implementation-guide.md index 36aeaab6..3c790c9d 100644 --- a/docs/archive/phases/phase-12.7/ai-feedback/quick-implementation-guide.md +++ b/docs/archive/phases/phase-12.7/ai-feedback/quick-implementation-guide.md @@ -102,7 +102,7 @@ esac ### Test 1: 最小Box ```nyash -# input.nyash +# input.hako box Test { init { value } } @@ -113,7 +113,7 @@ $Test{#{value}} ### Test 2: 簡単な関数 ```nyash -# input.nyash +# input.hako box Calculator { add(a, b) { return a + b diff --git a/docs/archive/phases/phase-12.7/ancp-specs/ULTIMATE-AI-CODING-GUIDE.md b/docs/archive/phases/phase-12.7/ancp-specs/ULTIMATE-AI-CODING-GUIDE.md index b72efdf6..61b47be1 100644 --- a/docs/archive/phases/phase-12.7/ancp-specs/ULTIMATE-AI-CODING-GUIDE.md +++ b/docs/archive/phases/phase-12.7/ancp-specs/ULTIMATE-AI-CODING-GUIDE.md @@ -252,22 +252,22 @@ peek ast { ### ステップ1: 標準コードを書く ```bash # 通常のNyashで開発 -vim src/feature.nyash +vim src/feature.hako ``` ### ステップ2: 段階的圧縮 ```bash # L1: 糖衣構文適用 -nyashfmt --sugar src/feature.nyash > feature.sugar.nyash +nyashfmt --sugar src/feature.hako > feature.sugar.hako # L2: ANCP変換 -nyash2ancp feature.sugar.nyash > feature.ancp +nyash2ancp feature.sugar.hako > feature.ancp # L3: 極限糖衣 -nyashfmt --ultra feature.ancp > feature.ultra.nyash +nyashfmt --ultra feature.ancp > feature.ultra.hako # L4: 最大圧縮 -nyash2fusion feature.ultra.nyash > feature.fusion +nyash2fusion feature.ultra.hako > feature.fusion ``` ### ステップ3: AIとの対話 @@ -284,10 +284,10 @@ cat *.fusion | clip ### ステップ4: 可逆展開 ```bash # AIの応答を展開 -fusion2nyash --level=0 ai_response.fusion > fixed.nyash +fusion2nyash --level=0 ai_response.fusion > fixed.hako # 差分確認 -diff src/feature.nyash fixed.nyash +diff src/feature.hako fixed.hako ``` ## 🛠️ ツールチェーン diff --git a/docs/archive/phases/phase-12.7/ancp-specs/chatgpt5-sugar-syntax-spec.md b/docs/archive/phases/phase-12.7/ancp-specs/chatgpt5-sugar-syntax-spec.md index 108b32bc..3c998527 100644 --- a/docs/archive/phases/phase-12.7/ancp-specs/chatgpt5-sugar-syntax-spec.md +++ b/docs/archive/phases/phase-12.7/ancp-specs/chatgpt5-sugar-syntax-spec.md @@ -251,9 +251,9 @@ r=d\:_.isValid()/:_|>n|>t ### 可逆変換の保証 ```bash # どの形式からでも相互変換可能 -nyash format --from=explicit --to=sugar code.nyash -nyash format --from=sugar --to=ancp code.nyash -nyash format --from=ancp --to=explicit code.nyash +nyash format --from=explicit --to=sugar code.hako +nyash format --from=sugar --to=ancp code.hako +nyash format --from=ancp --to=explicit code.hako ``` ## 🚀 Phase 15との相乗効果 diff --git a/docs/archive/phases/phase-12.7/ancp-specs/sugar-formatter-tool.txt b/docs/archive/phases/phase-12.7/ancp-specs/sugar-formatter-tool.txt index 087b3b5c..fb1df50c 100644 --- a/docs/archive/phases/phase-12.7/ancp-specs/sugar-formatter-tool.txt +++ b/docs/archive/phases/phase-12.7/ancp-specs/sugar-formatter-tool.txt @@ -178,7 +178,7 @@ result" 5. 使用例:コマンドラインツール ================================================================================ -// nyashfmt.nyash - フォーマッターCLI +// nyashfmt.hako - フォーマッターCLI static box Main { main(args) { local formatter = new NyashFormatter() @@ -285,7 +285,7 @@ box LearningMode { 8. 設定ファイル ================================================================================ -// .nyashfmt.json - プロジェクト別設定 +// .hakofmt.json - プロジェクト別設定 { "mode": "standard", "rules": { diff --git a/docs/archive/phases/phase-12.7/archive/implementation-plan.md b/docs/archive/phases/phase-12.7/archive/implementation-plan.md index 5339d04c..77e2312a 100644 --- a/docs/archive/phases/phase-12.7/archive/implementation-plan.md +++ b/docs/archive/phases/phase-12.7/archive/implementation-plan.md @@ -156,7 +156,7 @@ impl SourceMap { // ANCP位置 → Nyash位置への変換 self.mappings .binary_search_by_key(&ancp_pos, |m| m.ancp_pos) - .map(|i| self.mappings[i].nyash_pos) + .map(|i| self.mappings[i].hako_pos) .unwrap_or(ancp_pos) } } @@ -214,7 +214,7 @@ expected_pattern=$2 normal_output=$(./target/release/nyash "$test_file" 2>&1) # 2. ANCP変換 -ancp_file="${test_file%.nyash}.ancp" +ancp_file="${test_file%.hako}.ancp" ./target/release/nyash2ancp -i "$test_file" -o "$ancp_file" # 3. ANCP実行 @@ -289,8 +289,8 @@ def measure_file(nyash_path, ancp_path): # 全サンプルファイルで測定 results = [] -for nyash_file in glob.glob("examples/*.nyash"): - ancp_file = nyash_file.replace(".nyash", ".ancp") +for nyash_file in glob.glob("examples/*.hako"): + ancp_file = nyash_file.replace(".hako", ".ancp") results.append(measure_file(nyash_file, ancp_file)) # 統計出力 @@ -316,7 +316,7 @@ jobs: - name: Run roundtrip tests run: | - for f in examples/*.nyash; do + for f in examples/*.hako; do echo "Testing: $f" ./tools/test_ancp_roundtrip.sh "$f" done diff --git a/docs/archive/phases/phase-12.7/archive/technical-spec.md b/docs/archive/phases/phase-12.7/archive/technical-spec.md index 60d1aee3..4ea6e903 100644 --- a/docs/archive/phases/phase-12.7/archive/technical-spec.md +++ b/docs/archive/phases/phase-12.7/archive/technical-spec.md @@ -161,14 +161,14 @@ impl Lexer { ### 5.2 CLI統合 ```bash # 変換コマンド -nyash --to-ancp input.nyash > output.ancp -nyash --from-ancp input.ancp > output.nyash +nyash --to-ancp input.hako > output.ancp +nyash --from-ancp input.ancp > output.hako # 直接実行 nyash --dialect=ancp script.ancp # フォーマット表示 -nyash --view=ancp script.nyash # Nyashファイルをancp形式で表示 +nyash --view=ancp script.hako # Nyashファイルをancp形式で表示 nyash --view=hybrid script.ancp # 並列表示 ``` @@ -209,7 +209,7 @@ fn roundtrip_all_constructs() { "loop(i < 10) { i = i + 1 }", // 複雑な例 - include_str!("../examples/complex.nyash"), + include_str!("../examples/complex.hako"), ]; for case in test_cases { diff --git a/docs/archive/phases/phase-12.7/grammar-specs/grammar-technical-spec.txt b/docs/archive/phases/phase-12.7/grammar-specs/grammar-technical-spec.txt index e5f06981..771a9fc3 100644 --- a/docs/archive/phases/phase-12.7/grammar-specs/grammar-technical-spec.txt +++ b/docs/archive/phases/phase-12.7/grammar-specs/grammar-technical-spec.txt @@ -198,7 +198,7 @@ Expected 'token' but found 'actual' 【エラーメッセージ例】 ``` Error: Missing 'else' in peek expression - --> program.nyash:10:5 + --> program.hako:10:5 | 10 | peek value { | ^^^^ peek expression requires 'else' branch diff --git a/docs/archive/phases/phase-12.7/implementation/implementation-final-checklist.txt b/docs/archive/phases/phase-12.7/implementation/implementation-final-checklist.txt index a5bc7f5c..565154c7 100644 --- a/docs/archive/phases/phase-12.7/implementation/implementation-final-checklist.txt +++ b/docs/archive/phases/phase-12.7/implementation/implementation-final-checklist.txt @@ -167,7 +167,7 @@ if animal == "dog" { ================================================================================ ```nyash -// test_peek_basic.nyash +// test_peek_basic.hako local animal = "cat" local sound = peek animal { "dog" => "woof" @@ -176,7 +176,7 @@ local sound = peek animal { } print(sound) // "meow" -// test_peek_block.nyash +// test_peek_block.hako local result = peek x { 1 => { local temp = "one" @@ -185,7 +185,7 @@ local result = peek x { else => "other" } -// test_continue.nyash +// test_continue.hako local i = 0 local sum = 0 loop(i < 5) { @@ -197,7 +197,7 @@ loop(i < 5) { } print(sum) // 12 (1+2+4+5, 3はスキップ) -// test_field_declaration.nyash +// test_field_declaration.hako box Point { public x: IntegerBox public y: IntegerBox diff --git a/docs/archive/phases/phase-12/README.md b/docs/archive/phases/phase-12/README.md index 1f097f00..d86e4f5f 100644 --- a/docs/archive/phases/phase-12/README.md +++ b/docs/archive/phases/phase-12/README.md @@ -132,7 +132,7 @@ processor.process(3.14) # すべてプラグインで動作! ``` Nyashエコシステム(統一TypeBox ABI採用後): -├── Nyashスクリプトプラグイン ← .nyashファイル(純粋なNyashコード) +├── Nyashスクリプトプラグイン ← .hakoファイル(純粋なNyashコード) └── 統一TypeBoxプラグイン ← .so/.dll(ネイティブ実装) ├── 基本機能(旧C ABI互換) ├── 高速ディスパッチ(JIT最適化) diff --git a/docs/archive/phases/phase-12/design/NYASH-ABI-C-IMPLEMENTATION.md b/docs/archive/phases/phase-12/design/NYASH-ABI-C-IMPLEMENTATION.md index d4c914ca..f4be4dd4 100644 --- a/docs/archive/phases/phase-12/design/NYASH-ABI-C-IMPLEMENTATION.md +++ b/docs/archive/phases/phase-12/design/NYASH-ABI-C-IMPLEMENTATION.md @@ -195,7 +195,7 @@ tests/abi/ ### nyash.toml設定 ```toml -[plugins.nyash_abi_provider] +[plugins.hako_abi_provider] path = "plugins/nyash_abi_provider.so" abi = "c" types = ["NyashABIProvider"] diff --git a/docs/archive/phases/phase-12/design/WHY-AIS-FAILED.md b/docs/archive/phases/phase-12/design/WHY-AIS-FAILED.md index cbdd95d1..ebd4b609 100644 --- a/docs/archive/phases/phase-12/design/WHY-AIS-FAILED.md +++ b/docs/archive/phases/phase-12/design/WHY-AIS-FAILED.md @@ -54,10 +54,10 @@ AIの頭の中: ```bash # スクリプトファイルをAOTコンパイル可能 -./nyash --aot script.nyash -o script.exe +./nyash --aot script.hako -o script.exe # JITで実行(ホットコードを自動最適化) -./nyash --backend vm --jit script.nyash +./nyash --backend vm --jit script.hako ``` つまり: diff --git a/docs/archive/phases/phase-12/nyash-script-plugins.md b/docs/archive/phases/phase-12/nyash-script-plugins.md index 99b1e14c..6e3dc984 100644 --- a/docs/archive/phases/phase-12/nyash-script-plugins.md +++ b/docs/archive/phases/phase-12/nyash-script-plugins.md @@ -29,7 +29,7 @@ Nyashスクリプトプラグインは、**最もNyashらしいプラグイン ### 1. シンプルなユーティリティBox ```nyash -# math_utils.nyash - 数学ユーティリティプラグイン +# math_utils.hako - 数学ユーティリティプラグイン box MathUtils { init { } @@ -66,7 +66,7 @@ box MathUtils { ### 2. 他のプラグインと組み合わせる例 ```nyash -# data_processor.nyash - データ処理プラグイン +# data_processor.hako - データ処理プラグイン box DataProcessor { init { file, math, cache } @@ -109,7 +109,7 @@ box DataProcessor { ### 3. 高度なプラグイン - P2Pノード拡張 ```nyash -# mesh_node.nyash - P2Pメッシュネットワークノード +# mesh_node.hako - P2Pメッシュネットワークノード box MeshNode from P2PBox { init { routing, peers, messageHandlers } @@ -181,8 +181,8 @@ box MeshNode from P2PBox { ### 1. ローカルファイルとして ```nyash -# main.nyash -include "plugins/math_utils.nyash" +# main.hako +include "plugins/math_utils.hako" local utils = new MathUtils() print(utils.factorial(5)) # 120 @@ -209,7 +209,7 @@ local utils = new MathUtils() ```nyash # 実行時にプラグインをロード -local pluginCode = new FileBox().read("plugin.nyash") +local pluginCode = new FileBox().read("plugin.hako") eval(pluginCode) # プラグインが利用可能に local processor = new DataProcessor() @@ -270,7 +270,7 @@ box SafeCalculator { | パフォーマンス | 中速 | 最速 | 高速 | | 開発効率 | 最高 | 中 | 中 | | デバッグ | 簡単 | 難しい | 中程度 | -| 配布 | .nyashファイル | .so/.dll | 任意 | +| 配布 | .hakoファイル | .so/.dll | 任意 | ## 📚 まとめ diff --git a/docs/archive/phases/phase-12/specs/package-manager-design.md b/docs/archive/phases/phase-12/specs/package-manager-design.md index 5023aeb8..42fbc2a5 100644 --- a/docs/archive/phases/phase-12/specs/package-manager-design.md +++ b/docs/archive/phases/phase-12/specs/package-manager-design.md @@ -84,7 +84,7 @@ my-awesome-package/ │ └── README.md ├── examples/ │ └── basic_usage.ny -└── .nyashignore # 公開時の除外ファイル +└── .hakoignore # 公開時の除外ファイル ``` ### nyash.toml仕様 @@ -200,7 +200,7 @@ GET /search?q={query} # パッケージ検索 "dependencies": { "basic-utils": "^2.0.0" }, - "tarball": "https://registry.nyash.dev/awesome-math-1.0.0.tgz" + "tarball": "https://registry.hako.dev/awesome-math-1.0.0.tgz" } ``` @@ -221,7 +221,7 @@ public_key = "..." nyash_modules/ └── awesome-math/ ├── nyash.toml - └── .nyash-integrity # SHA256ハッシュ + └── .hako-integrity # SHA256ハッシュ ``` ### 権限システム @@ -247,9 +247,9 @@ members = [ ### プライベートレジストリ ```toml -# .nyashrc +# .hakorc [registries] -default = "https://registry.nyash.dev" +default = "https://registry.hako.dev" company = "https://npm.company.com" [scopes] @@ -276,7 +276,7 @@ nyash cache add awesome-math@1.0.0 ### インテリジェントキャッシュ ``` -~/.nyash/cache/ +~/.hako/cache/ ├── packages/ │ └── awesome-math-1.0.0.tgz ├── metadata/ diff --git a/docs/archive/phases/phase-13/README.md b/docs/archive/phases/phase-13/README.md index 14a3ada9..6a02979f 100644 --- a/docs/archive/phases/phase-13/README.md +++ b/docs/archive/phases/phase-13/README.md @@ -56,7 +56,7 @@ impl eframe::App for NyashBrowser { ui.text_edit_singleline(&mut self.url); if ui.button("Go").clicked() { // Nyashファイル実行 - if self.url.ends_with(".nyash") { + if self.url.ends_with(".hako") { self.content = execute_nyash(&self.url); } } @@ -78,7 +78,7 @@ impl eframe::App for NyashBrowser { // Tauriコマンドでブラウザ機能実装 #[tauri::command] async fn browse_nyash(url: String) -> Result { - if url.ends_with(".nyash") { + if url.ends_with(".hako") { // Nyash VMで直接実行 let vm = NyashVM::new(); let result = vm.execute_file(&url)?; @@ -158,7 +158,7 @@ box SharedMemoryRenderer { ```nyash box DevServer from FileWatcherBox { watchAndReload(directory) { - me.watch(directory, "*.nyash", (file) => { + me.watch(directory, "*.hako", (file) => { // 変更を検出したら即座にリコンパイル local compiled = me.compiler.compileWithSourceMap(file) @@ -231,7 +231,7 @@ box CollaborativeEditor from P2PBox { - [ ] Nyash VM統合 ### Week 2: コア機能 -- [ ] .nyashファイル実行 +- [ ] .hakoファイル実行 - [ ] JIT/AOTコンパイル統合 - [ ] 基本的なセキュリティ diff --git a/docs/archive/phases/phase-13/codex-browser-architecture-proposal.md b/docs/archive/phases/phase-13/codex-browser-architecture-proposal.md index 0ca136a0..e7186646 100644 --- a/docs/archive/phases/phase-13/codex-browser-architecture-proposal.md +++ b/docs/archive/phases/phase-13/codex-browser-architecture-proposal.md @@ -14,15 +14,15 @@ Nyashでブラウザーを作り、ネイティブ実行する構想について { "name": "Nyash Browser Extension", "permissions": ["webRequest", "webRequestBlocking", "nativeMessaging"], - "host_permissions": ["*://*/*.nyash"] + "host_permissions": ["*://*/*.hako"] } // background.js chrome.webRequest.onBeforeRequest.addListener( (details) => { - if (details.url.endsWith('.nyash')) { + if (details.url.endsWith('.hako')) { // Native hostと通信してNyash VMで実行 - chrome.runtime.sendNativeMessage('com.nyash.runtime', + chrome.runtime.sendNativeMessage('com.hako.runtime', { command: 'execute', url: details.url }, (response) => { // 結果を新しいタブで表示 @@ -99,8 +99,8 @@ async fn execute_nyash(window: Window, code: String) -> Result { fn nyash_protocol_handler(app: &AppHandle, request: &Request) -> Response { let path = request.uri().path(); - // .nyashファイルを実行 - if path.ends_with(".nyash") { + // .hakoファイルを実行 + if path.ends_with(".hako") { let code = std::fs::read_to_string(path).unwrap(); let vm = VM::new(); let result = vm.execute(&code).unwrap(); @@ -124,7 +124,7 @@ fn nyash_protocol_handler(app: &AppHandle, request: &Request) -> Response { #### 1. カスタムHTMLエレメント ```html - +