Move Reduceops into ast_parse
- pop ctx method
#4407
Closed
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.
this is the method I settled on for the best way to properly order multiple reduceops
it renders them in ast_parse by "undoing" any uops that belong to a prior loop context, renders the full reduction, then puts those uops back
the "undoing" portion might be bandaid-ey; the main point is to render the entire reduceop and then put in the right place in the uop graph. undoing and then redoing seemed more intuitive because it also removed any context from the rendering of the second reduceop (ex. in
x.std()
, both reduce loops need to load in x. but when the recursion hits the mean reduce, it will already have x inself.load_cache
from the variance reduce)render_reduceop
could also build a sort of subgraph and then ast_parse could handle where to insert it, but that would require a bigger diff