Minimal repro (v0.25.0 + #382):
# mod.eigs
g is 0.0
define feedg(v) as:
g is v + 0.0
define readg() as:
return report of g
define stableg() as:
return stable of g
Load it, feed g a nonzero constant 14 times, then:
So the REPORT_NAME/REPORT_SLOT compile path and the predicate-of-name path disagree about name resolution across a function boundary. Whichever is intended, they should agree; today a slot-dispatch helper can expose stable of/diverging of verdicts but not report of ones (found building lib/observer_slots.eigs — its verdict() API is dropped until this is resolved).
🤖 Generated with Claude Code
Minimal repro (v0.25.0 + #382):
Load it, feed
ga nonzero constant 14 times, then:stableg of []→ 1 —stable of ginside the function resolves the module global's Env slot and sees the trajectory.readg of []→ "equilibrium" —report of ginside the same function falls through to the no-binding builtin path (builtins.c'sbuiltin_report, the Observer dH-window lost when a residual is built via temps that NUM_REUSE-alias the convergence variable #262 value-based fallback), as ifghad no slot.So the REPORT_NAME/REPORT_SLOT compile path and the predicate-of-name path disagree about name resolution across a function boundary. Whichever is intended, they should agree; today a slot-dispatch helper can expose
stable of/diverging ofverdicts but notreport ofones (found buildinglib/observer_slots.eigs— itsverdict()API is dropped until this is resolved).🤖 Generated with Claude Code