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
fbaa0a1b25
make expected too large patterns even larger
2017-04-26 14:44:49 +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
Matthew Barr
2bb0295c50
PCRE version updated to 8.40
2017-04-26 14:43:28 +10:00
Justin Viiret
c6b2563df6
rose: delete literal_info requires_explode flag
2017-04-26 14:43:28 +10:00
Justin Viiret
f964801923
rose: explode mixed-case literals early
2017-04-26 14:43:28 +10:00