-
Notifications
You must be signed in to change notification settings - Fork 0
Engine: prefix accelerated PikeVM #18
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
0337e99 to
9178363
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Renamings Suggestions
-
lazy_treetolazy_iter: givent1andt2, what this describes is really just a single iteration -
.*_lazyprefix: how about.*_unanchored? These lemmas are only useful when doing unanchored matching. And againprefixhere has several meanings. (And I swear this is the last time I suggest "unanchored" for any renaming). -
nexttin PikeTree: how aboutfuture? It avoids the many meanings ofnext. And we had this conversation that it would also be nice to indicate that this only describes what happens if we try to match from the future positions onwards. Sofuturewould describe what happens if you try to start matching in the future. -
pvs_nextchar_generatehow aboutpvs_generate? Same forpvs_nextchar_filtertopvs_filter. -
pike_tree_accand associated lemmas: how abouttree_acceleration? We don't need thepikekeyword here, andaccelerationmight be easier to understand -
pike_tree_nextt_shapehow aboutfuture_tree_shape. Again I don't think thepikekeyword helps here
To me the generate and filter steps are directly related to |
|
Rename commits to be |
They now support prefix acceleration with a simulation of the .*? prefix. This is optional, if the nextprefix is set to None, no acceleration and no .*? is used.
The only thing left to prove is the invariant_preservation. Then, Complexity might need a big overhaul to support the new algorithm.
WIP: prove restricted complexity
…s still one invariant missing about strictly advancing when accelerating
_lazyprefix -> _unanchored lazy_tree -> lazy_iter nextt -> future pike_tree_acc -> tree_acceleration
- remove empty lines in proofs or add a comment - remove large replaces - remove large asserts - remove eauto depth specifiers
84c3662 to
760478e
Compare
|
I think everything is ready now! Once the CI passes and you give it a last look, feel free to merge @Aurele-Barriere! |
|
Amazing work! |
No description provided.