Commit Graph

30 Commits

Author SHA1 Message Date
1805ab3df2 mir(hints): add JoinResult trace smoke; add assign_both_branches case; docs: trace usage in scope-hints; all smokes pass 2025-09-20 05:55:25 +09:00
a811857cc8 mir(hints): add runtime tracing via NYASH_MIR_TRACE_HINTS; wire scope enter/leave at function entry/exit; add smoke to validate trace 2025-09-20 05:50:45 +09:00
765798a1ad llvm(smoke): add match literal_three_arms; guard mock cases; all PHI hygiene smokes passing or skipped appropriately 2025-09-20 05:47:54 +09:00
d27ca541d8 mir(hints): wire scope_enter/leave at function entry/exit; llvm(smoke): add guard-literal-or case with skip when mock; all smokes/goldens passing 2025-09-20 05:44:57 +09:00
7cd04e5942 macro(match): add golden for type-guard minimal (no Box); script to validate; all pass 2025-09-20 05:40:07 +09:00
3ee54470a5 macro(match): add golden for guard literal OR; add smoke; update CURRENT_TASK milestones 2025-09-20 05:36:25 +09:00
5a2f04be95 macro(match): add guard-literal-OR smoke (AST no PeekExpr + VM output); stabilize smoke robustness; LLVM PHI hygiene now passing for assign/print/match_literal 2025-09-20 05:34:23 +09:00
14122c1e55 llvm(smoke): make PHI hygiene robust; sanitize empty PHI via env; adjust tests to statement-if; allow non-zero exit; compute empty PHI safely 2025-09-20 05:21:09 +09:00
ff929aac5b smoke(match): relax guard/type smoke to only assert no PeekExpr (ast_json for BoxDeclarations uses Unsupported wrapper) 2025-09-20 05:04:40 +09:00
c536b402a2 macro(match): add guard/type normalization smoke; update CURRENT_TASK progress 2025-09-20 05:01:58 +09:00
166c374eec macro(if/match): stabilize PeekExpr→If normalization via internal-child; default runner off; propagate child stderr; fix JsonBuilder local_decl; add scope-hints doc; extend PHI smoke; golden for match literal passes 2025-09-20 05:00:31 +09:00
8cb93b9f1f tests(macro): inline samples into new directory hierarchy and drop legacy macro_golden_* sources 2025-09-20 03:37:20 +09:00
3c1486e411 tests(macro): organize under apps/tests/macro/{if,loopform,collections,types,strings,identity,test_runner} with thin include wrappers; update all golden/smoke scripts and docs to new paths 2025-09-20 02:20:02 +09:00
ec7d8ab726 llvm: extend If PHI hygiene smoke with multi-branch + guard chain case 2025-09-20 02:02:08 +09:00
a5a57e3d8b macro(if normalize): add return-if golden; llvm: extend PHI hygiene smoke to if-return and type_is cases 2025-09-20 01:55:45 +09:00
9b9080d0a3 macro/pattern: add type_is basic golden (MethodCall .is → MIR TypeOp mapping); docs: AST JSON v0 note for is/as mapping 2025-09-20 01:51:55 +09:00
126cf18e82 macro(if normalize): switch to ControlFlowBuilder for If stmt construction; llvm: add PHI hygiene smoke for If cases 2025-09-20 01:30:15 +09:00
4229e4259e macro(if normalize): add print-if normalization golden and runner 2025-09-20 01:29:02 +09:00
b7975c80db macro(if/match normalize): implement If-expression normalization for common statement contexts (Assignment/Return/Print); add golden (if-assign) and JSON builder helpers (print, return) 2025-09-20 01:22:55 +09:00
9999c7c456 llvm: add LoopForm PHI hygiene smoke (no empty PHI); docs: MIR hints (zero-cost); macros: scaffold If/Match normalize (identity) 2025-09-20 01:06:54 +09:00
b7e5b1e39c macro(loopform mvp-2): gate normalization to <=2 updated vars and no break/continue; add loop_two_vars golden and selfhost preexpand smoke 2025-09-20 00:40:05 +09:00
65227cb56f loopform: add loop_simple golden and test; prepare while normalization pathway via LoopNormalize + JsonBuilder 2025-09-19 23:18:07 +09:00
9a0fe71215 docs: prefer Nyash runner route (self-hosting); switch to NYASH_MACRO_PATHS; deprecations noted; update smokes to new envs 2025-09-19 22:59:29 +09:00
9d40e9137a macro(ast-json): add Loop/Break/Continue to AST JSON v0; add loop_normalize_macro (MVP identity) and loopform smoke; docs update 2025-09-19 22:47:12 +09:00
da32455afc freeze: macro platform complete; default ON with profiles; env consolidation; docs + smokes\n\n- Profiles: --profile {lite|dev|ci|strict} (dev-like default for macros)\n- Macro paths: prefer NYASH_MACRO_PATHS (legacy envs deprecated with warnings)\n- Selfhost pre-expand: auto mode, PyVM-only, add smokes (array/map)\n- Docs: user-macros updated; new macro-profiles guide; AGENTS freeze note; CURRENT_TASK freeze\n- Compat: non-breaking; legacy envs print deprecation notices\n 2025-09-19 22:27:59 +09:00
5bb7f67c01 perf(typebox): reduce clones with Arc<str> for MethodSignature.name and TypeBox.methods keys; API kept stable. tools: add all-cases empty-PHI smoke runner. parser(box): extract birth_once cycle validation into helper 2025-09-19 12:13:43 +09:00
ef1f5206da tools: add LLVM IR empty-PHI smoke checker; ensures every 'phi i64' has incoming list; used with NYASH_LLVM_DUMP_IR 2025-09-19 12:01:13 +09:00
5e818eeb7e stage3: unify to cleanup; MIR return-defer; docs+smokes updated; LLVM(harness): finalize_phis ownership, ret.py simplified, uses-predeclare; cleanup return override green; method-postfix cleanup return WIP (PHI head) 2025-09-19 02:07:38 +09:00
951a050592 selfhost: introduce using-based imports for compiler/parser/tools; keep includes temporarily. llvm: add PHI wiring JSON trace + unit/integration tests; fast test suite extended. runner: split selfhost helpers, small cleanups. 2025-09-18 13:35:38 +09:00
3fe908eb0d docs/runtime: externcall + println normalization; NyRT silent result flag; PyVM console warn/error/trace routing\nselfhost(M2): add MirEmitterBox (Return(Int)->const+ret) and --emit-mir switch; initial selfhost smoke\nrunner: child args/env hardening for selfhost (NYASH_NY_COMPILER_CHILD_ARGS under --; NYASH_JSON_ONLY=1, NYASH_VM_USE_PY=1, NYASH_DISABLE_PLUGINS=1); VM path strips using lines when NYASH_ENABLE_USING=1\nmeta: clarify PyVM/llvmlite as primary (vm/interpreter legacy OFF) in CURRENT_TASK.md; README links to externcall docs 2025-09-18 06:35:49 +09:00