Maxime Coste
dbb175841b
Regex: do not write the search prefix inside the program bytecode
...
Its faster to have specialized code in the VM directly
2017-11-01 14:05:14 +08:00
Maxime Coste
cf5055f68b
Regex: small code tweak
2017-11-01 14:05:14 +08:00
Maxime Coste
e0fac20f6c
Regex: Use a custom allocated buffer for Saves instead of a Vector
2017-11-01 14:05:14 +08:00
Maxime Coste
1399563e40
Regex: make m_current_threads and m_next_threads local variable of exec
2017-11-01 14:05:14 +08:00
Maxime Coste
54da8098ae
Regex: Add a NoSaves RegexExecFlags to disable saving positions
2017-11-01 14:05:14 +08:00
Maxime Coste
119bc38254
Regex: small refactor of ThreadedRegexVM::clone_saves
2017-11-01 14:05:14 +08:00
Maxime Coste
9fbafba4cb
Regex: Refactor thread handling in ThreadedRegexVM
2017-11-01 14:05:14 +08:00
Maxime Coste
589cde67f0
Regex: store saves in a copy on write structure
2017-11-01 14:05:14 +08:00
Maxime Coste
11b9c996ea
Regex: small code style tweak
2017-11-01 14:05:14 +08:00
Maxime Coste
f007794d9c
Regex: introduce RegexExecFlags to control various behaviours
2017-11-01 14:05:14 +08:00
Maxime Coste
73b14b11be
Regex: small code tweak in ThreadedRegexVM
2017-11-01 14:05:14 +08:00
Maxime Coste
5b0c2cbdc2
Regex: Ensure we dont have a thread explosion in ThreadedRegexVM
...
Always remove threads with lower priority that end up on the same
instruction as a higher priority thread (as we know they will behave
the same from now on)
2017-11-01 14:05:14 +08:00
Maxime Coste
f02b2645da
Regex: validate that our custom impl gets the same results as boost regex
...
In addition to running boost regex, run our custom regex and compare
the results to ensure the two regex engine agree.
2017-11-01 14:05:14 +08:00
Maxime Coste
eb1015cdfb
Regex: whenever Kakoune compiles a regex, pass it to the custom impl as well
...
That way we can see which features are missing.
2017-11-01 14:05:14 +08:00
Maxime Coste
8c9976ea72
Regex: Add initial, exploratory work on a custom regex engine
2017-11-01 14:05:14 +08:00