phase: 20.49 COMPLETE; 20.50 Flow+String minimal reps; 20.51 selfhost v0/v1 minimal (Option A/B); hv1-inline binop/unop/copy; docs + run_all + CURRENT_TASK -> 21.0

This commit is contained in:
nyash-codex
2025-11-06 15:41:52 +09:00
parent 2dc370223d
commit 77d4fd72b3
1658 changed files with 6288 additions and 2612 deletions

View File

@ -7,16 +7,16 @@
- マクロ登録(例):
```
export NYASH_MACRO_ENABLE=1
export NYASH_MACRO_PATHS=apps/macros/examples/loop_normalize_macro.nyash
export NYASH_MACRO_PATHS=apps/macros/examples/loop_normalize_macro.hako
```
- 自己ホスト前展開autoを利用して、parse直後にLoopForm展開を有効化PyVM環境
JSON生成ユーティリティJsonBuilder
- ループ正規化では AST JSON v0 の断片を安全に構成する必要があります。
- 最小ユーティリティとして `apps/lib/json_builder.nyash` を提供していますincludeで読み込み、文字列でJSON断片を生成
- 最小ユーティリティとして `apps/lib/json_builder.hako` を提供していますincludeで読み込み、文字列でJSON断片を生成
- 例:
```
local JB = include "apps/lib/json_builder.nyash"
local JB = include "apps/lib/json_builder.hako"
local v_i = JB.variable("i")
local v_sum = JB.variable("sum")
local lit_0 = JB.literal_int(0)
@ -48,7 +48,7 @@ while (i < n) {
AST JSON v0 のスケッチJsonBuilder を用いた生成例)
```
local JB = include "apps/lib/json_builder.nyash"
local JB = include "apps/lib/json_builder.hako"
local v_i = JB.variable("i")
local v_s = JB.variable("sum")
local v_n = JB.variable("n")
@ -126,10 +126,10 @@ for / foreach の糖衣と正規化(概要)
- 出力一致スモークVM, v2
- `tools/smokes/v2/run.sh --profile quick --filter "loop_two_vars|macro"`
- 自己ホスト前展開PyVM 経由)
- `NYASH_VM_USE_PY=1 NYASH_USE_NY_COMPILER=1 NYASH_MACRO_ENABLE=1 NYASH_MACRO_PATHS=apps/macros/examples/loop_normalize_macro.nyash ./target/release/nyash --macro-preexpand --backend vm apps/tests/macro/loopform/simple.nyash`
- `NYASH_VM_USE_PY=1 NYASH_USE_NY_COMPILER=1 NYASH_MACRO_ENABLE=1 NYASH_MACRO_PATHS=apps/macros/examples/loop_normalize_macro.hako ./target/release/nyash --macro-preexpand --backend vm apps/tests/macro/loopform/simple.hako`
Selfhost compiler prepass恒等→最小正規化
- Runner が `NYASH_LOOPFORM_NORMALIZE=1``--loopform` にマップして子に渡し、`apps/lib/loopform_normalize.nyash` の前処理を適用(現状は恒等)。
- Runner が `NYASH_LOOPFORM_NORMALIZE=1``--loopform` にマップして子に渡し、`apps/lib/loopform_normalize.hako` の前処理を適用(現状は恒等)。
- 既定OFF。将来、キー順正規化→簡易キャリア整列を段階的に追加する。
実装メモ(内蔵変換ルート / Rust