32 Commits

Author SHA1 Message Date
Chang, Harry
8a1c497f44 Logical Combination of patterns. 2018-06-27 14:04:57 +08:00
Matthew Barr
95c316afcc find_matches: don't create ridiculous accept paths 2018-01-19 06:20:37 -05:00
Matthew Barr
4fc11cfc65 Hamming: GraphTruth and corpus gen support 2018-01-19 06:12:28 -05:00
Matthew Barr
1891f14755 Add support for Hamming distance approx matching 2018-01-19 06:11:43 -05:00
Matthew Barr
56ec2dfc4a Remove out of date debug output 2017-08-21 11:23:41 +10:00
Matthew Barr
b8753e3daf clean up loops and add AVX-512 2017-08-21 11:20:22 +10:00
Matthew Barr
9d5a00bde1 Open input path once using file descriptor 2017-08-21 11:20:22 +10:00
Matthew Barr
30f93634b8 use string equality operator 2017-08-21 11:19:20 +10:00
Justin Viiret
9cf66b6ac9 util: switch from Boost to std::unordered set/map
This commit replaces the ue2::unordered_{set,map} types with their STL
versions, with some new hashing utilities in util/hash.h. The new types
ue2_unordered_set<T> and ue2_unordered_map<Key, T> default to using the
ue2_hasher.

The header util/ue2_containers.h has been removed, and the flat_set/map
containers moved to util/flat_containers.h.
2017-08-21 11:14:55 +10:00
Justin Viiret
bc232d272f ng_find_matches: speed up edge lookups
Improves the performance of step() on graphs with vertices with large
degree.
2017-08-21 11:12:36 +10:00
Matthew Barr
dba2470ec9 msvc: use the vectorcall calling convention
This requires declaring external interfaces with the cdecl
calling convention.
2017-06-09 10:12:02 +10:00
Justin Viiret
083d84cfd6 expressions: add much faster limitToSignatures() 2017-05-30 13:49:24 +10:00
Justin Viiret
5dfae12a62 ng: split NGWrapper into NGHolder, ExpressionInfo
We now use NGHolder for all graph information, while other expression
properties (report, flag information, etc) go in new class
ExpressionInfo.
2017-04-26 15:18:09 +10:00
Justin Viiret
2d660ce4db ng_corpus_generator: small fix for MSVC compat 2017-04-26 15:17:11 +10:00
Justin Viiret
3e597e85ff ng_corpus_generator: restore use of boost::next()
libc++ checks for forward_iterator_tag in std::next(), which isn't
provided by our (Boost-derived) ue2_graph iterators.
2017-04-26 15:17:03 +10:00
Justin Viiret
26ec7dd332 ng_corpus_generator: use std::next, not boost::next 2017-04-26 15:17:03 +10:00
Justin Viiret
037e39b6f5 ng_corpus_generator: stop using ptr_vector
Nowadays we can use vector<unique_ptr<T>>.
2017-04-26 15:17:03 +10:00
Justin Viiret
834aebe8b6 ng_find_matches: use wd.active for accepts too 2017-04-26 15:17:03 +10:00
Justin Viiret
bae8ebc62d ng_find_matches: speed up gather...ByDepth 2017-04-26 15:17:03 +10:00
Justin Viiret
749e3e64b9 getMatches: simplify 2017-04-26 15:17:03 +10:00
Justin Viiret
c81c30b144 findMatches: persist working data 2017-04-26 15:17:03 +10:00
Justin Viiret
cc1191d94c getSuccessors: reuse a vector<State> for output 2017-04-26 15:17:03 +10:00
Justin Viiret
7ad21500c4 getActiveStates: return a sorted, uniqued vector 2017-04-26 15:17:03 +10:00
Justin Viiret
7ca81ff530 ng_find_matches: limit how big we're willing to go
Tests which require tracking more than 15K states (including edit
distance states) are very, very slow.
2017-04-26 15:16:22 +10:00
Anatoly Burakov
4c2b7cc04f Add support for approximate matching in ue2collider 2017-04-26 15:11:51 +10:00
Anatoly Burakov
2de6706df2 Adding support for compiling approximate matching patterns
Adds new "edit_distance" extparam
2017-04-26 15:11:39 +10: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
Alex Coyte
e1e9010cac Introduce custom adjacency-list based graph 2016-12-02 11:31:33 +11:00
Alex Coyte
691b08d170 use NGHolder::foo in favour of NFAGraph::foo 2016-08-10 14:52:56 +10:00
Matthew Barr
3dc8bab78f Build convenience libraries as static libs 2016-04-20 13:34:55 +10:00
Justin Viiret
5dd4aa9c13 ng_find_matches: Simplify and improve performance
Improve performance by using bitsets rather than sets of vertex
indices.
2016-04-20 13:34:55 +10:00
Matthew Barr
904e436f11 Initial commit of Hyperscan 2015-10-20 09:13:35 +11:00