569 Commits

Author SHA1 Message Date
Matthew Barr
8c2e033540 cmake: test reverse_graph instead of using version
It seems that some distros are using a patched Boost 1.62.0 which means our
workaround in reverse_graph has a conflict. Add a CMake test to see if we
need to use the patched reverse_graph.
2017-01-20 09:26:34 +11:00
Justin Viiret
cacf07fe9b prefilter: workaround for \b in UCP and !UTF8 mode
For now, just drop the assertion (which will still return a superset of
matches, as per prefiltering semantics).
2017-01-20 09:19:51 +11:00
Alex Coyte
734eb2ce62 we can only trim lookarounds based on information common to all literals 2017-01-17 11:39:17 +11:00
Alex Coyte
35716c70ef ensure that we add default top when creating a new infix graph 2017-01-17 11:39:04 +11:00
Matthew Barr
e23316f453 Boost 1.61 required for clang/libc++
The libc++ headers aren't specific enough and causes the compiler to think
there are ambiguous functions when using older Boost versions.
2017-01-17 11:38:31 +11:00
Matthew Barr
1c9f38e98d Silence ABI notes in release builds 2017-01-17 11:38:16 +11:00
Matthew Barr
46f74300f2 update copyright year 2017-01-17 11:38:09 +11:00
Matthew Barr
981e9896b4 MSVC gets confused by one line of the graph tests 2017-01-06 11:24:16 +11:00
Matthew Barr
988ee0eb55 MSVC requires the attribute before the type 2017-01-06 11:24:12 +11:00
Alex Coyte
10346f53f7 mcclellan: handle 0 length block scans correctly 2017-01-06 11:22:59 +11:00
Alex Coyte
c699e98750 Add explicit casts to succ table entry calculations.
Although overflow should not be possible given the range of alphaShift, this
resolves coverity scan issues CID 158536 and CID 158537.
2017-01-06 11:22:26 +11:00
Matthew Barr
83e69cc195 hyperscan#41: ignore carriage-return in pattern files 2017-01-03 08:55:20 +11:00
Matthew Barr
2f57681bb6 cmake: check the generator for fat runtime builds
The RULE_LAUNCH_COMPILE property only works for Unix Makefiles, or
for Ninja with CMake newer than v3.0.
2016-12-14 15:35:44 +11:00
Matthew Barr
8334745063 SSE2 preprocessor test for MSVC
MSVC doesn't define __SSE2__ but we can figure it out from
other macros.
2016-12-14 15:35:44 +11:00
Matthew Barr
ea5e3bc0b1 Mark dispatch functions as public API 2016-12-14 15:35:44 +11:00
Matthew Barr
0d87116d33 cmake: check clang version for fat runtime support 2016-12-14 15:35:44 +11:00
Matthew Barr
f29b203a86 cmake: combine hs_exec src lists correctly 2016-12-14 15:35:28 +11:00
Matthew Barr
5754709dd5 Don't ignore unused attrib warnings in test 2016-12-14 15:35:28 +11:00
Matthew Barr
1ed2bdc46f Don't set flags for common files 2016-12-14 15:35:22 +11:00
Matthew Barr
c337ac665b cmake: default to fat runtime for release builds 2016-12-14 15:35:19 +11:00
Matthew Barr
6967c7ddf1 cmake: unneeded header check 2016-12-14 15:35:16 +11:00
Matthew Barr
0d0e1a5106 api: hs_valid_platform 2016-12-14 15:35:13 +11:00
Matthew Barr
c3a73446ee Fat runtime 2016-12-14 15:34:54 +11:00
Matthew Barr
2214296b7f Convert compile-time code to not require SIMD 2016-12-14 15:29:01 +11:00
Matthew Barr
e993fe1eb0 Remove erroneous semicolon 2016-12-14 15:28:58 +11:00
Justin Viiret
e271781d95 multibit, fatbit: make _size build-time only
This commit makes mmbit_size() and fatbit_size compile-time only, and
adds a resource limit for very large multibits.
2016-12-14 15:28:54 +11:00
Alex Coyte
8b7b06d2a4 calcDepthFromSource: only take one copy of the graph 2016-12-14 15:28:47 +11:00
Alex Coyte
582f71c5bb mcsheng: remove dead code 2016-12-14 15:27:31 +11:00
Alex Coyte
e51b6d23b9 introduce Sheng-McClellan hybrid 2016-12-14 15:27:18 +11:00
Matthew Barr
f626276271 hsbench: add Hyperscan benchmarker
The hsbench tool provides an easy way to measure Hyperscan's
performance for a particular set of patterns and corpus of data
to be scanned.
2016-12-14 15:26:01 +11:00
Justin Viiret
06cde4c94d ng_literal_analysis: use ue2_graph
This reduces compile time ~10% on a number of large cases.
2016-12-02 11:35:56 +11:00
Justin Viiret
32af5fa794 mcclellan: fix printf format specifiers 2016-12-02 11:35:52 +11:00
Alex Coyte
106667e24e refactor mcclellan runtime
1. use u32 to hold the state during runtime to prevent repeated zero extension
2. have a tight small loop for processing characters which breaks when
   something interesting happens
2016-12-02 11:35:47 +11:00
Justin Viiret
ef99ae108f rose_build_merge: correctly merge NFA outfixes
We were not doing our bookkeeping properly for merges where the number
of NFAs was greater than the batch size of 200.
2016-12-02 11:34:52 +11:00
Alex Coyte
eb7759361d Rework the creation of startDs edges in fillHolderForLockCheck().
This prevents clearing of edges created for virtual starts in late regions.
2016-12-02 11:34:41 +11:00
Alex Coyte
8b94eb86f8 precise dverm fix for 5a32993: handle sign extension correctly 2016-12-02 11:34:20 +11:00
Alex Coyte
f605ca0dc1 check for partial matches at end of dverm 2016-12-02 11:34:04 +11:00
Justin Viiret
16aa22a361 gough: don't dump int data unless it's requested 2016-12-02 11:33:54 +11:00
Matthew Barr
5a842caaf1 shufti: slightly faster short shufti operation
It is better to shift the high lane values in an XMM
before then using insert to combine the high and low lanes.
2016-12-02 11:33:51 +11:00
Matthew Barr
99e14df117 Fix combine2x128 2016-12-02 11:33:48 +11:00
Alex Coyte
8ff7a3cdbb correct dump filenames of som rev engines 2016-12-02 11:33:44 +11:00
Alex Coyte
32c826e9c6 have single dump function per engine 2016-12-02 11:32:36 +11:00
Alex Coyte
71ff480b77 nfa_api: remove subtype from dispatch 2016-12-02 11:32:28 +11:00
Alex Coyte
1614c73eeb Implement some ue2_graph functions using TMP rather than friends
This helps work around issues with some compilers
2016-12-02 11:32:24 +11:00
Alex Coyte
530d84c6f3 allow edge_descriptors to be created from pair<edge_descriptor, bool> 2016-12-02 11:32:20 +11:00
Alex Coyte
e1e9010cac Introduce custom adjacency-list based graph 2016-12-02 11:31:33 +11:00
Alex Coyte
05683655cb remove unused define and old inlining controls 2016-12-02 11:30:27 +11:00
Alex Coyte
2341fe7baa use stable_sort in analysis from 47f53f6; missed review comment 2016-12-02 11:29:30 +11:00
Justin Viiret
29472c7b71 rose_dump: remove stray newline 2016-12-02 11:28:20 +11:00
Justin Viiret
91a7ce1cda getData256(): data needs to be 32-byte aligned 2016-12-02 11:28:16 +11:00