docs: confirm Option A (no var/let; explicit local). Add notes to cheatsheet, language reference, tutorials. CURRENT_TASK updated with decision and next small items.
This commit is contained in:
@ -10,6 +10,13 @@ Status Snapshot — 2025‑09‑27
|
|||||||
- VM method_router: special-method table extended minimally — equals/1 now tries instance class then base class when only base provides equals (deterministic, no behavior change where both exist). toString→stringify remains.
|
- VM method_router: special-method table extended minimally — equals/1 now tries instance class then base class when only base provides equals (deterministic, no behavior change where both exist). toString→stringify remains.
|
||||||
- MIR Callee Phase‑3: added TypeCertainty to Callee::Method (Known/Union). Builder sets Known when receiver origin is known; legacy/migration BoxCall marks Union. JSON emitter and MIR printer include certainty for diagnostics. Backends ignore it functionally for now.
|
- MIR Callee Phase‑3: added TypeCertainty to Callee::Method (Known/Union). Builder sets Known when receiver origin is known; legacy/migration BoxCall marks Union. JSON emitter and MIR printer include certainty for diagnostics. Backends ignore it functionally for now.
|
||||||
- Using/SSOT: JSONモジュール内部 using を相対に統一(alias配下でも安定)
|
- Using/SSOT: JSONモジュール内部 using を相対に統一(alias配下でも安定)
|
||||||
|
- DebugHub: 追加ゲート `NYASH_DEBUG_SAMPLE_EVERY`(N件に1度だけ emit)。重いケースでのログ制御のため(既定OFF・ゼロコスト)。
|
||||||
|
|
||||||
|
Decision — Variables (Option A; 2025‑09‑27)
|
||||||
|
- 方針: var/let は導入しない。ローカルは常に `local` で明示宣言。
|
||||||
|
- 目的: SSA/Loop‑Form と Known/Union 解析の単純さを維持し、未宣言代入の混入を防ぐ。
|
||||||
|
- 補足: 開発用の糖衣(行頭 `@name = expr` → `local name = expr`)はランナー前処理で提供(既定OFF)。言語仕様には含めない。
|
||||||
|
- Docs 更新: quick-reference, language reference, tutorials に「var/let 不採用」を明記。
|
||||||
- Tokenizer/Parser デバッグ導線(devトレース)を追加
|
- Tokenizer/Parser デバッグ導線(devトレース)を追加
|
||||||
- json_lint_vm: fast‑pathの誤判定を除去+未終端ガードを追加(PASS)
|
- json_lint_vm: fast‑pathの誤判定を除去+未終端ガードを追加(PASS)
|
||||||
- json_query_min_vm/json_query_vm/json_pp_vm: PASS
|
- json_query_min_vm/json_query_vm/json_pp_vm: PASS
|
||||||
@ -69,6 +76,8 @@ Work Queue (Next)
|
|||||||
3) エラーメッセージの詳細化(expected/actual/line/column)
|
3) エラーメッセージの詳細化(expected/actual/line/column)
|
||||||
4) Ny 実行器 M2 スケルトン(JSON v0 ローダ+const/binop 等の最小実装)下書き
|
4) Ny 実行器 M2 スケルトン(JSON v0 ローダ+const/binop 等の最小実装)下書き
|
||||||
5) Parity ミニセット(VM↔llvmlite↔Ny)を用意し、差分ダッシュボード化
|
5) Parity ミニセット(VM↔llvmlite↔Ny)を用意し、差分ダッシュボード化
|
||||||
|
6) Router 観測ログの軽追加(dev-only, 既定OFF): class-reroute / special-reroute を DebugHub に emit(サンプル制御対応)
|
||||||
|
7) LLVM ハーネスの MIR ダンプに certainty 表示(挙動不変の診断整合)
|
||||||
|
|
||||||
Runbook(抜粋)
|
Runbook(抜粋)
|
||||||
- VM quick: `tools/smokes/v2/run.sh --profile quick`
|
- VM quick: `tools/smokes/v2/run.sh --profile quick`
|
||||||
|
|||||||
@ -215,6 +215,8 @@ x = 42
|
|||||||
y = 42 // Runtime Error + 修正提案
|
y = 42 // Runtime Error + 修正提案
|
||||||
```
|
```
|
||||||
|
|
||||||
|
注記: Nyash は `var`/`let` をサポートしません。必ず `local` で宣言してから使用します。
|
||||||
|
|
||||||
### ループ構文統一
|
### ループ構文統一
|
||||||
```nyash
|
```nyash
|
||||||
// ✅ 唯一の正しい形式
|
// ✅ 唯一の正しい形式
|
||||||
@ -251,4 +253,4 @@ while condition { } // 使用不可
|
|||||||
📚 **関連ドキュメント:**
|
📚 **関連ドキュメント:**
|
||||||
- [Getting Started](GETTING_STARTED.md) - 環境構築・最初の一歩
|
- [Getting Started](GETTING_STARTED.md) - 環境構築・最初の一歩
|
||||||
- [P2P Guide](P2P_GUIDE.md) - P2P通信システム完全ガイド
|
- [P2P Guide](P2P_GUIDE.md) - P2P通信システム完全ガイド
|
||||||
- [Built-in Boxes](reference/builtin-boxes.md) - ビルトインBox詳細リファレンス
|
- [Built-in Boxes](reference/builtin-boxes.md) - ビルトインBox詳細リファレンス
|
||||||
|
|||||||
@ -10,6 +10,8 @@ local a, b, c # 複数宣言
|
|||||||
local x = 10, y = 20, z # 混合初期化
|
local x = 10, y = 20, z # 混合初期化
|
||||||
```
|
```
|
||||||
|
|
||||||
|
注意: Nyash は `var`/`let` を採用していません。常に `local` で明示宣言してください(未宣言名への代入はエラー)。
|
||||||
|
|
||||||
### Box定義(クラス)
|
### Box定義(クラス)
|
||||||
```nyash
|
```nyash
|
||||||
box ClassName {
|
box ClassName {
|
||||||
|
|||||||
@ -162,6 +162,11 @@ temp = 42
|
|||||||
x = 42 # RuntimeError: 未宣言変数 + 修正提案表示
|
x = 42 # RuntimeError: 未宣言変数 + 修正提案表示
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### **設計方針(var/let について)**
|
||||||
|
- Nyash は `var`/`let` を導入しません。ローカル変数は常に `local` で明示宣言します。
|
||||||
|
- 目的: 代入点と定義点を一致させ、Loop‑Form/SSA と解析(Known/Union)を簡潔に保つためです。
|
||||||
|
- 補足: 開発用の糖衣として行頭 `@name = expr` を `local name = expr` に前処理で展開する仕組みがあります(ランナー側、既定OFF)。言語仕様の一部ではありません。
|
||||||
|
|
||||||
### **2.3 制御構文**
|
### **2.3 制御構文**
|
||||||
|
|
||||||
#### **条件分岐**
|
#### **条件分岐**
|
||||||
|
|||||||
Reference in New Issue
Block a user