Greedy-like heuristics for consumeSingleLocation #728
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Heuristic that emulates greedy Silicon behavior for consuming single-receiver permissions for quantified resources.
First: Find singleton chunks that have the same receiver syntactically.
If there are any such chunks, consider those first, then all others.
Second: If nothing matches syntactically, try to find a singleton chunk that matches the receiver using the decider (using the check timeout, like in greedy lookup).
If that's the case, consider that chunk first, then all others.
Third: As a fallback, use the existing hint based heuristics.
This massively speeds up examples like the one @vakaras showed today.