1476 Commits

Author SHA1 Message Date
Justin Viiret
79512bd5c3 rose: use fragment ids earlier for anchored dfas 2017-04-26 15:04:30 +10:00
Justin Viiret
8b25d83415 rose: write fragment ids into literal_info 2017-04-26 15:04:30 +10:00
Justin Viiret
1eae677d73 rose_build_impl: fix header guard 2017-04-26 15:04:30 +10:00
Justin Viiret
893674d3c7 rose_build_anchored: tbi->build 2017-04-26 15:04:30 +10:00
Alex Coyte
fddcdbb129 determinisation: use unordered_map to hold state set -> id mapping 2017-04-26 14:59:22 +10:00
Justin Viiret
1be1293491 fdr: add grey box control for flood detection 2017-04-26 14:59:22 +10:00
Matthew Barr
9363ae7486 Clear upper half of AVX register before libm call
Clearing the upper half of the AVX register is required before calling SSE
code to avoid AVX-to-SSE transition penalties.
2017-04-26 14:59:22 +10:00
Justin Viiret
1245156f44 parser: handle "control verbs" without close paren 2017-04-26 14:59:02 +10:00
Justin Viiret
084596bb5e parser: check for std::out_of_range from stoul 2017-04-26 14:58:46 +10:00
Justin Viiret
821a1b81e6 rose: only dump delay rebuild table if streaming 2017-04-26 14:58:46 +10:00
Justin Viiret
bef6889844 parser: use control_verb parser inline 2017-04-26 14:58:43 +10:00
Justin Viiret
bfc8be5675 parser: use stoul(), not strtol() 2017-04-26 14:57:53 +10:00
Justin Viiret
4def0c8a52 parser: switch to using char* pointers 2017-04-26 14:57:53 +10:00
Justin Viiret
1875d55cf1 parser: add initial parser for control verbs
This more reliably handles control verbs like (*UTF8) that can only
happen at the start of the pattern, and allows them in any ordering.
2017-04-26 14:57:46 +10:00
Justin Viiret
d43e9d838f rose: delete dead code for cloneVertex 2017-04-26 14:56:49 +10:00
Justin Viiret
d48a11cbbd ng_literal_analysis: refactor splitOffLeadingLiteral 2017-04-26 14:56:49 +10:00
Justin Viiret
7acd8dcac8 dead code: remove splitOffAnchoredLeadingLiteral 2017-04-26 14:56:49 +10:00
Justin Viiret
c4bfe0449c lookaround: reduce compile time for trimLiterals 2017-04-26 14:56:49 +10:00
Justin Viiret
8ee8f5f236 safety assertions for delayed rebuild 2017-04-26 14:56:49 +10:00
Justin Viiret
a4af801dd1 rose: define invalid value for program offset 2017-04-26 14:56:49 +10:00
Justin Viiret
ebe12797e6 assert program offsets are non-zero 2017-04-26 14:56:49 +10:00
Justin Viiret
7bdb327203 rose: use final_ids less in program construction 2017-04-26 14:56:48 +10:00
Justin Viiret
a83b7cb348 move final_id_to_literal into build_context 2017-04-26 14:56:48 +10:00
Justin Viiret
a0260c0362 rose: do fragment group assignment earlier 2017-04-26 14:56:48 +10:00
Justin Viiret
6bf35cb637 rose: make groupByFragment local 2017-04-26 14:49:51 +10:00
Justin Viiret
a5b3bc814f rose: delete RoseEngine::literalCount 2017-04-26 14:49:51 +10:00
Justin Viiret
9550058e75 remove lit program tables from bytecode 2017-04-26 14:49:51 +10:00
Justin Viiret
bd3357d3ac rose: dump lit programs from frag map 2017-04-26 14:49:51 +10:00
Justin Viiret
c6bf1919d0 rose: merge all dump code into rose_build_dump.cpp 2017-04-26 14:49:35 +10:00
Justin Viiret
c2cac5009a tidy up args to builders 2017-04-26 14:46:49 +10:00
Justin Viiret
3ae2fb417e move final_to_frag_map into RoseBuildImpl (for dump code) 2017-04-26 14:46:49 +10:00
Justin Viiret
cfa63a7096 stream: simplify do_rebuild call site 2017-04-26 14:46:49 +10:00
Justin Viiret
76f72b6ab4 rose: use program offsets directly in lit tables 2017-04-26 14:46:48 +10:00
Justin Viiret
ac858cd47c rose: build a separate delay rebuild matcher 2017-04-26 14:46:48 +10:00
Justin Viiret
5706acf5c0 role aliasing: bail if new graph is not implementable 2017-04-26 14:46:46 +10:00
Justin Viiret
1fad822735 violet: use bitset to speed up poisonFromSuccessor 2017-04-26 14:46:42 +10:00
Alex Coyte
bbd64f98ae allow streams to marked as exhausted in more cases
At stream boundaries, we can mark streams as exhausted if there are no
groups active and there are no other ways to report matches. This allows us
to stop maintaining the history buffer on subsequent stream writes.
Previously, streams were only marked as exhausted if a pure highlander case
reported all patterns or the outfix in a sole outfix case died.
2017-04-26 14:44:53 +10:00
Alex Coyte
d402ef9b28 violet: heuristic tweaks for ensuring implementablity 2017-04-26 14:44:49 +10:00
Alex Coyte
c32d7d51d9 remove ng_rose 2017-04-26 14:44:49 +10:00
Alex Coyte
2a1202e1e6 add checkViolet and switch SOM path accross to use violet 2017-04-26 14:44:49 +10:00
Alex Coyte
cde6ebf516 violet: decompose further for implementability 2017-04-26 14:44:49 +10:00
Alex Coyte
d89cf2f699 tidy 2017-04-26 14:44:29 +10:00
Alex Coyte
a43116c6d4 remove util functions from ng_rose. 2017-04-26 14:44:29 +10:00
Alex Coyte
8741759c3a refactor restoreTrailingLiteral use 2017-04-26 14:44:29 +10:00
Alex Coyte
7767651b59 shift all early_dfa creation logic to ng_violet/ng_rose 2017-04-26 14:44:29 +10:00
Alex Coyte
9d35e2ad36 allow outfixes to be converted to prefixes of the eod event literal 2017-04-26 14:44:03 +10:00
Alex Coyte
512c049493 shift early_dfa construction earlier 2017-04-26 14:44:03 +10:00
Alex Coyte
caa46201f0 add information on the runtime impl to rose.txt 2017-04-26 14:44:03 +10:00
Alex Coyte
8af4850d85 remove 'fast teddy' models 2017-04-26 14:43:43 +10:00
Justin Viiret
05b5265aff fdr: remove dead code to do with link structures 2017-04-26 14:43:43 +10:00