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:
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user