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
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
from typing import Dict, Any, List
|
||||
from llvmlite import ir
|
||||
from trace import debug as trace_debug
|
||||
from trace import phi_json as trace_phi_json
|
||||
|
||||
|
||||
def lower_blocks(builder, func: ir.Function, block_by_id: Dict[int, Dict[str, Any]], order: List[int], loop_plan: Dict[str, Any] | None):
|
||||
@ -225,13 +226,9 @@ def lower_blocks(builder, func: ir.Function, block_by_id: Dict[int, Dict[str, An
|
||||
snap = dict(vmap_cur)
|
||||
try:
|
||||
keys = sorted(list(snap.keys()))
|
||||
from phi_wiring.common import trace as trace_phi_json
|
||||
try:
|
||||
trace_phi_json({"phi": "snapshot", "block": int(bid), "keys": [int(k) for k in keys[:20]]})
|
||||
except Exception:
|
||||
pass
|
||||
except Exception:
|
||||
pass
|
||||
keys = list(snap.keys())
|
||||
trace_phi_json({"phi": "snapshot", "block": int(bid), "keys": [int(k) for k in keys[:20]]})
|
||||
for vid in created_ids:
|
||||
if vid in vmap_cur:
|
||||
builder.def_blocks.setdefault(vid, set()).add(block_data.get("id", 0))
|
||||
@ -240,4 +237,3 @@ def lower_blocks(builder, func: ir.Function, block_by_id: Dict[int, Dict[str, An
|
||||
delattr(builder, '_current_vmap')
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
@ -33,12 +33,7 @@ from phi_wiring import setup_phi_placeholders as _setup_phi_placeholders, finali
|
||||
from phi_wiring import ensure_phi as _ensure_phi
|
||||
from trace import debug as trace_debug
|
||||
from trace import phi as trace_phi
|
||||
try:
|
||||
# Structured JSON trace for PHI wiring (shared with phi_wiring)
|
||||
from phi_wiring.common import trace as trace_phi_json
|
||||
except Exception:
|
||||
def trace_phi_json(_msg):
|
||||
pass
|
||||
from trace import phi_json as trace_phi_json
|
||||
from prepass.loops import detect_simple_while
|
||||
from prepass.if_merge import plan_ret_phi_predeclare
|
||||
from build_ctx import BuildCtx
|
||||
|
||||
@ -51,3 +51,27 @@ def phi(msg) -> None:
|
||||
def values(msg: str) -> None:
|
||||
if _enabled('NYASH_LLVM_TRACE_VALUES'):
|
||||
_write(msg)
|
||||
|
||||
def phi_json(msg):
|
||||
"""Safe JSON-style PHI trace delegator.
|
||||
|
||||
- Gated by NYASH_LLVM_TRACE_PHI=1 (same gate as phi())
|
||||
- Delegates to phi_wiring.common.trace if available; otherwise no-op
|
||||
- Accepts arbitrary Python objects and forwards as-is
|
||||
"""
|
||||
if not _enabled('NYASH_LLVM_TRACE_PHI'):
|
||||
return
|
||||
try:
|
||||
from phi_wiring.common import trace as _trace_phi_json # type: ignore
|
||||
_trace_phi_json(msg)
|
||||
except Exception:
|
||||
# Fallback: stringify and route via plain phi
|
||||
try:
|
||||
if not isinstance(msg, (str, bytes)):
|
||||
try:
|
||||
msg = json.dumps(msg, ensure_ascii=False, separators=(",", ":"))
|
||||
except Exception:
|
||||
msg = str(msg)
|
||||
phi(msg)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user