You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
internal/core/adt: introduce new cycle detection mechanism
The old evaluator used Vertex.status for tracking processing
states. This was used to track cycles as well.
The status was set to "evaluating" when evaluating values at
the same level. A node that appeared with this status during
computation indicated an evaluation cycle.
The status was set to "evaluatingArc" while processing a
child arc. A node that appeared with this status during
processing indicated a structural cycle.
The status mechanism turned out to be broken, and the new
evaluator doesn't really use it much anymore. The goal is
to get rid of it altogether. This CL introduces a new
mechansim to replace the "evaluatingArcs" and "evaluating"
modes.
The new mechanism is higher fidelity than the old mechanism.
It is currently only used in a few locations, though.
Down the line, possibly only once the old evaluator is
removed, we intend to fully discard the old mechanism.
Issue #2884
Signed-off-by: Marcel van Lohuizen <[email protected]>
Change-Id: Ifbe99e0b6dbd782d1f81f7d5d19c0f7479be0afb
Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1193842
Unity-Result: CUE porcuepine <[email protected]>
TryBot-Result: CUEcueckoo <[email protected]>
Reviewed-by: Daniel Martí <[email protected]>
0 commit comments