feat: Constant Folding/Partial Evaluation#410
Draft
anakrish wants to merge 1 commit intomicrosoft:mainfrom
Draft
feat: Constant Folding/Partial Evaluation#410anakrish wants to merge 1 commit intomicrosoft:mainfrom
anakrish wants to merge 1 commit intomicrosoft:mainfrom
Conversation
eafcdbc to
691fc59
Compare
A special mode of evaluation is introduced in which
- access to input is disallowed
- only those builtin functions that are idempotent are allowed
- extensions are disallowed
Those rules which evaluate to value other than undefined will
procduce the same value irrespective of the input.
Values of such rules are cached so that in regular evaluation
these rules don't have to be evaluated.
TODO:
- Expressions evaluating to values other than undefined can also
be cached. But this might consume memory.
- Even if one expression or statement in a query evaluated to
undefined, evaluation can still proceed to evaluate other
expressions so that they can be cached if possible.
- Expensive to create objects such as Regexes can also be cached.
This will require caching at a lower level than expressions.
Impact on memory must also be considered.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
691fc59 to
a02de7b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
A special mode of evaluation is introduced in which
Those rules which evaluate to value other than undefined will procduce the same value irrespective of the input. Values of such rules are cached so that in regular evaluation these rules don't have to be evaluated.
TODO: