feat(joinir): Phase 213-2 Step 2-2 & 2-3 Data structure extensions
Extended PatternPipelineContext and CarrierUpdateInfo for Pattern 3 AST-based generalization. Changes: 1. PatternPipelineContext: - Added loop_condition: Option<ASTNode> - Added loop_body: Option<Vec<ASTNode>> - Added loop_update_summary: Option<LoopUpdateSummary> - Updated build_pattern_context() for Pattern 3 2. CarrierUpdateInfo: - Added then_expr: Option<ASTNode> - Added else_expr: Option<ASTNode> - Updated analyze_loop_updates() with None defaults Status: Phase 213-2 Steps 2-2 & 2-3 complete Next: Create Pattern3IfAnalyzer to extract if statement and populate update summary
This commit is contained in:
@ -145,14 +145,15 @@ NYASH_CLI_VERBOSE=2 \
|
||||
JoinIR は制御構造を関数呼び出し + 継続に正規化する IR 層。フラグは config/env のポリシーで集約するよ。
|
||||
|
||||
**ポリシー入口**
|
||||
- `joinir_core_enabled()` … `NYASH_JOINIR_CORE` が優先。未設定時は `NYASH_JOINIR_EXPERIMENT` や IfSelect/VM bridge/LLVM 実験の明示設定で自動 ON。
|
||||
- `joinir_core_enabled()` … JoinIR は常に ON。`NYASH_JOINIR_CORE` は deprecated で無視(0 を指定すると警告だけ出す)。
|
||||
- `joinir_dev_enabled()` … `NYASH_JOINIR_DEV=1` または JoinIR debug level > 0 で ON(開発者向け束ねスイッチ)。
|
||||
|
||||
LoopBuilder は物理削除済みで、JoinIR を OFF にするモードは存在しない。
|
||||
|
||||
### Core(本線化対象)
|
||||
|
||||
| 変数 | デフォルト | 説明 |
|
||||
| --- | --- | --- |
|
||||
| `NYASH_JOINIR_CORE` | unset | Core トグルの明示 ON/OFF(未設定時は下記を見て自動判定) |
|
||||
| `NYASH_JOINIR_EXPERIMENT` | OFF | JoinIR 実験メイントグル(Core 判定に含まれる) |
|
||||
| `HAKO_JOINIR_IF_SELECT` | OFF | IfSelect/IfMerge JoinIR 経路。エイリアス `NYASH_JOINIR_IF_SELECT` は Deprecated。 |
|
||||
| `HAKO_JOINIR_IF_IN_LOOP_ENABLE` | OFF | if-in-loop JoinIR 本線切替(Core 候補)。 |
|
||||
@ -180,14 +181,15 @@ JoinIR は制御構造を関数呼び出し + 継続に正規化する IR 層。
|
||||
|
||||
| 変数 | 状態 | 説明 |
|
||||
| --- | --- | --- |
|
||||
| `NYASH_JOINIR_CORE` | Deprecated | JoinIR 本線の ON/OFF トグルだったが、LoopBuilder 削除後は無効化不可。設定しても警告のみにして無視する。 |
|
||||
| `HAKO_JOINIR_NESTED_IF` | Deprecated候補 | Route B nested if。 |
|
||||
| `HAKO_JOINIR_READ_QUOTED` / `_IFMERGE` | Deprecated候補 | read_quoted JoinIR 実験。 |
|
||||
|
||||
### 使用例
|
||||
|
||||
```bash
|
||||
# Core JoinIR + Stage-3(推奨)
|
||||
env NYASH_FEATURES=stage3 NYASH_JOINIR_CORE=1 ./target/release/hakorune program.hako
|
||||
# JoinIR は常に ON。Stage-3(推奨)
|
||||
env NYASH_FEATURES=stage3 ./target/release/hakorune program.hako
|
||||
|
||||
# VM bridge Route B(開発用)
|
||||
env NYASH_FEATURES=stage3 NYASH_JOINIR_EXPERIMENT=1 NYASH_JOINIR_VM_BRIDGE=1 ./target/release/hakorune program.hako
|
||||
|
||||
Reference in New Issue
Block a user