Skip to content

Engine: prefix accelerated PikeVM#18

Merged
Aurele-Barriere merged 30 commits intomainfrom
mw/prefix-acc-pikevm
Dec 17, 2025
Merged

Engine: prefix accelerated PikeVM#18
Aurele-Barriere merged 30 commits intomainfrom
mw/prefix-acc-pikevm

Conversation

@shilangyu
Copy link
Contributor

No description provided.

@shilangyu shilangyu force-pushed the mw/prefix-acc-pikevm branch from 0337e99 to 9178363 Compare December 10, 2025 22:47
@shilangyu shilangyu marked this pull request as ready for review December 12, 2025 15:04
Copy link
Collaborator

@Aurele-Barriere Aurele-Barriere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Renamings Suggestions

  • lazy_tree to lazy_iter: given t1 and t2, what this describes is really just a single iteration
  • .*_lazyprefix: how about .*_unanchored? These lemmas are only useful when doing unanchored matching. And again prefix here has several meanings. (And I swear this is the last time I suggest "unanchored" for any renaming).
  • nextt in PikeTree: how about future? It avoids the many meanings of next. 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. So future would describe what happens if you try to start matching in the future.
  • pvs_nextchar_generate how about pvs_generate ? Same for pvs_nextchar_filter to pvs_filter.
  • pike_tree_acc and associated lemmas: how about tree_acceleration? We don't need the pike keyword here, and acceleration might be easier to understand
  • pike_tree_nextt_shape how about future_tree_shape. Again I don't think the pike keyword helps here

@shilangyu
Copy link
Contributor Author

  • pvs_nextchar_generate how about pvs_generate ? Same for pvs_nextchar_filter to pvs_filter

To me the generate and filter steps are directly related to nextchar, personally I find it clearer to have the nextchar in the name. But I can change it if you wish

@shilangyu
Copy link
Contributor Author

Rename commits to be Engine:

shilangyu and others added 19 commits December 17, 2025 13:31
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
@shilangyu shilangyu force-pushed the mw/prefix-acc-pikevm branch from 84c3662 to 760478e Compare December 17, 2025 12:33
@shilangyu
Copy link
Contributor Author

I think everything is ready now! Once the CI passes and you give it a last look, feel free to merge @Aurele-Barriere!

@Aurele-Barriere
Copy link
Collaborator

Amazing work!

@Aurele-Barriere Aurele-Barriere merged commit baba7e3 into main Dec 17, 2025
1 check passed
@shilangyu shilangyu deleted the mw/prefix-acc-pikevm branch December 17, 2025 15:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants