-
Notifications
You must be signed in to change notification settings - Fork 69
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[herd] Optimised evaluation by implicit transitive relations.
Add implicitly transitive relations to the cat interpreter. Implicitly transitive relations are subject to two main optimisations : + When the acyclic test argument is a disjunction `(..|r|..)` and that argument `r` is a relation in implicit transitive form, there is no need to apply transitive closure. Namely `acyclic (..|r|..)` and `acyclic (..|r+|..)` are equivalent. + Intersection with a standard relation provides a support for repetitively testing connectivity, without effectively computing transitive closures. The implicitly transitive relations are implemented as an ordinary relation `r`. Their value is `r+` Context where transitive closure need not be performed (such as a disjunction argument in an acyclicity clause) is implemented as a new boolean parameter to the evaluation function. Co-authored-by: Hadrien Renaud <[email protected]>
- Loading branch information
1 parent
c4a41ad
commit cc580d4
Showing
8 changed files
with
242 additions
and
126 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.