Open axch opened 8 years ago
The corresponding place for flat traces prefers proposal over constraint (that is, chooses propagation when there is reason to, even if there is also reason to choose constraint), and doesn't experience propagation at all because of #644.
Said algorithm currently chooses whether to use an SP's proposal, constraint, or propagation kernel depending on which of the application's parents are being resimulated. The choice is made locally as each dependency edge is traversed, but it's quite possible for multiple dependency edges of different types to enter the same trace location. Presently, the scaffold construction just crashes if kernels of different types appear to be called for.
The corresponding place in Lite contains a priority table: resimulation (which corresponds to proposal in Mite) trumps constraint, and there's a bunch of stuff involving brush, AAA, etc. If I correctly understand what propagation kernels are supposed to be, they are analogous to resimulating
ESROutputPSP
in Lite, so do not directly participate in the prioritization.It is tempting to resolve the problem by defining a priority table in that place in Mite too, which would be propose beats propagate beats constrain. However, I want to first confirm with @vkmvkmvkmvkm that my understanding of the architecture is appropriate to making such a change.