docs(current_task): add structured tasks under docs/current_task/{main,llvm,self_current_task} and unignore path

This commit is contained in:
Selfhosting Dev
2025-09-08 11:35:30 +09:00
parent a45c22891c
commit 62246c76e3
12 changed files with 175 additions and 0 deletions

View File

@ -0,0 +1,11 @@
# Self Current Task — Overview (llvm)
目的
- LLVM AOT の Core13 前提化を完了し、VM と一致する代表ケースを安定化。
- BitOps/Shift の構文着地に合わせ、AOT 側の IR 生成/実行互換を維持。
指針
- Opaque Pointer 対応済get_element_type 不使用)。
- `env.box.new/_i64x` は NyRT shim に統一、引数は i64 正規化。
- BinOp/Compare は i64/f64 必要分を網羅する。

View File

@ -0,0 +1,17 @@
# Self Current Task — Now (llvm)
20250908現状と直近タスク
- P0 完了BitOps/Array/Echo/Map 緑)。
- VInvoke(byname/byid vector) で戻り値マッピングの課題ret_tag=3 でも 0 になる)。
直近タスク
1) VInvoke 戻り値の短期特例:既知メソッド(例: MapBox.getの整数返りは i64 として保持。
2) byid vector`nyash.plugin.invoke_tagged_v_i64`)も同様に統一。
3) 受け入れ:
- `NYASH_LLVM_VINVOKE_SMOKE=1``VInvokeRc: 42`
- `NYASH_LLVM_VINVOKE_RET_SMOKE=1``Result: 42`
代表コマンド
- `LLVM_SYS_180_PREFIX=$(llvm-config-18 --prefix) NYASH_LLVM_BITOPS_SMOKE=1 ./tools/llvm_smoke.sh release`
- `NYASH_LLVM_VINVOKE_TRACE=1 NYASH_LLVM_VINVOKE_SMOKE=1 ./tools/llvm_smoke.sh release`

View File

@ -0,0 +1,8 @@
# Self Current Task — Decisions (llvm)
20250908
- VInvokevector 経路)の戻り値:短期は既知メソッドの整数返りを i64 として保持Unknown/Box でも整数扱いにする特例)。
- 中期は正道へ:
- nyash.toml に戻り型ヒントprimitive/handle/f64/boolを追加し codegen に供給、または
- NyRT シムに「期待戻り形式」フラグを追加し codegen から通知。

View File

@ -0,0 +1,9 @@
# Self Current Task — Backlog (llvm)
短期
- VInvokevectorの短期特例実装とスモーク更新byname/byid 一致)。
中期
- 正道化(戻り型ヒント or NyRT 期待フラグ)と IR 経路の統一。
- AOT E2E 強化plugins あり/なし両系統)。

View File

@ -0,0 +1,16 @@
# Self Current Task — Overview (main)
目的
- main ブランチで Core13MIR13前提の制御フローを整備し、LLVM/Cranelift(EXE)/VM に綺麗に降ろす土台を完成させる。
- 箱言語の既存命令セットBranch/Jump/Phi 他を活かし、continue/break を新命令なしで表現する。
前提と指針
- MIR13 前提(純化モードを含む)。
- ループは canonical 形preheader → header → body → latch → header、exit は単一)。
- continue/break は分岐のみで表現continue→ヘッダ/ラッチ、break→単一 exit
- Verifier支配関係/SSA緑を最優先。postterminated 後の emit 禁止、合流点を明確化。
スコープ外
- 新規 MIR 命令の追加。
- try/finally と continue/break の相互作用(次段)。

View File

@ -0,0 +1,25 @@
# Self Current Task — Now (main)
20250908現状と直近タスク
- LLVM 側 P0 完了BitOps/Array/Echo/Map 緑。VInvoke(byname/byid vector) は戻り値マッピングの暫定課題を確認中Decisions 参照)。
- selfhosting-dev の作業を main に順次取り込み。VM/MIR 基盤は main で先に整える方針。
直近タスク(優先)
1) continue/break の loweringBuilder 修正のみで表現)
- ループ文脈スタック {head, exit} を導入。
- continue に遭遇 → headまたは latchへ br を emit し終端。
- break に遭遇 → exit へ br を emit し終端。
- postterminated 後に emit しない制御を徹底。
2) ループ CFG の厳密化
- 単一 exit ブロックの徹底。
- Phi はヘッダでキャリー変数を合流SSA/支配関係が崩れない形)。
3) 検証とスモーク
- Verifier 緑dominance/SSA
- VM のループ代表(単純/ネスト/早期継続・脱出)。
- LLVM/Cranelift EXE に綺麗に降りるbr/phi ベースで問題なし)。
代表コマンド(例)
- ビルド: `cargo build --release`
- LLVM smoke: `LLVM_SYS_180_PREFIX=$(llvm-config-18 --prefix) NYASH_LLVM_BITOPS_SMOKE=1 ./tools/llvm_smoke.sh release`
- VInvoke 調査: `NYASH_LLVM_VINVOKE_TRACE=1 NYASH_LLVM_VINVOKE_SMOKE=1 ./tools/llvm_smoke.sh release`

View File

@ -0,0 +1,9 @@
# Self Current Task — Decisions (main)
20250908
- ループ制御は既存命令Branch/Jump/Phiで表現し、新命令は導入しない。
- Builder に loop_ctx{head, exit}を導入し、continue/break を分岐で降ろす。
- Verifier の支配関係/SSA を崩さないよう、単一 exit と postterminated 後の emit 禁止を徹底。
- VInvokevector 経路)の戻り値は、短期は「既知メソッドの整数返り」を特例扱いで保持し、
中期は nyash.toml の戻り型ヒント or NyRT シムの期待フラグで正道化。

View File

@ -0,0 +1,15 @@
# Self Current Task — Backlog (main)
短期
- continue/break 降ろしの実装と単体/統合テストの追加。
- Verifier の支配関係/SSA の確認強化(ループ exit 合流の一意性チェック)。
- LLVM/Cranelift EXE スモーク(単純/ネスト/継続/脱出)。
中期
- VInvokevector戻り型の正道化toml 記述 or NyRT 期待フラグ)。
- ループ式として値を返す仕様が必要になった場合の設計(現状不要)。
周辺
- selfhosting-dev への取り込みと Ny ツールでの continue/break 使用解禁。
- docs 更新(言語ガイドに continue/break の記法・制約を明記)。

View File

@ -0,0 +1,16 @@
# Self Current Task — Overview (main)
目的
- main ブランチで Core13MIR13前提の制御フローを整備し、LLVM/Cranelift(EXE)/VM に綺麗に降ろす土台を完成させる。
- 箱言語の既存命令セットBranch/Jump/Phi 他を活かし、continue/break を新命令なしで表現する。
前提と指針
- MIR13 前提(純化モードを含む)。
- ループは canonical 形preheader → header → body → latch → header、exit は単一)。
- continue/break は分岐のみで表現continue→ヘッダ/ラッチ、break→単一 exit
- Verifier支配関係/SSA緑を最優先。postterminated 後の emit 禁止、合流点を明確化。
スコープ外
- 新規 MIR 命令の追加。
- try/finally と continue/break の相互作用(次段)。

View File

@ -0,0 +1,25 @@
# Self Current Task — Now (main)
20250908現状と直近タスク
- LLVM 側 P0 完了BitOps/Array/Echo/Map 緑。VInvoke(byname/byid vector) は戻り値マッピングの暫定課題を確認中(下記 Decisions 参照)。
- selfhosting-dev の作業を main に順次取り込み。VM/MIR 基盤は main で先に整える方針。
直近タスク(優先)
1) continue/break の loweringBuilder 修正のみで表現)
- ループ文脈スタック {head, exit} を導入。
- continue に遭遇 → headまたは latchへ br を emit し終端。
- break に遭遇 → exit へ br を emit し終端。
- postterminated 後に emit しない制御を徹底。
2) ループ CFG の厳密化
- 単一 exit ブロックの徹底。
- Phi はヘッダでキャリー変数を合流SSA/支配関係が崩れない形)。
3) 検証とスモーク
- Verifier 緑dominance/SSA
- VM のループ代表(単純/ネスト/早期継続・脱出)。
- LLVM/Cranelift EXE に綺麗に降りるbr/phi ベースで問題なし)。
代表コマンド(例)
- ビルド: `cargo build --release`
- LLVM smoke: `LLVM_SYS_180_PREFIX=$(llvm-config-18 --prefix) NYASH_LLVM_BITOPS_SMOKE=1 ./tools/llvm_smoke.sh release`
- VInvoke 調査: `NYASH_LLVM_VINVOKE_TRACE=1 NYASH_LLVM_VINVOKE_SMOKE=1 ./tools/llvm_smoke.sh release`

View File

@ -0,0 +1,9 @@
# Self Current Task — Decisions (main)
20250908
- ループ制御は既存命令Branch/Jump/Phiで表現し、新命令は導入しない。
- Builder に loop_ctx{head, exit}を導入し、continue/break を分岐で降ろす。
- Verifier の支配関係/SSA を崩さないよう、単一 exit と postterminated 後の emit 禁止を徹底。
- VInvokevector 経路)の戻り値は、短期は「既知メソッドの整数返り」を特例扱いで保持し、
中期は nyash.toml の戻り型ヒント or NyRT シムの期待フラグで正道化。

View File

@ -0,0 +1,15 @@
# Self Current Task — Backlog (main)
短期
- continue/break 降ろしの実装と単体/統合テストの追加。
- Verifier の支配関係/SSA の確認強化(ループ exit 合流の一意性チェック)。
- LLVM/Cranelift EXE スモーク(単純/ネスト/継続/脱出)。
中期
- VInvokevector戻り型の正道化トムル記述 or NyRT 期待フラグ)。
- ループ式として値を返す仕様が必要になった場合の設計(現状不要)。
周辺
- selfhosting-dev への取り込みと Ny ツールでの continue/break 使用解禁。
- docs 更新(言語ガイドに continue/break の記法・制約を明記)。