270 Commits

Author SHA1 Message Date
Alex Coyte
e099d85524 CMake: put the stream compress files in the correct part 2017-08-21 11:19:11 +10:00
Hong, Yang A
205a5bc98f multibit compression support 2017-08-21 11:19:11 +10:00
Alex Coyte
952f0aad21 support dynamic stream compression 2017-08-21 11:18:54 +10:00
Matthew Barr
2a044427c8 cmake: another convenience lib for compile side 2017-08-21 11:18:43 +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
21a4c8d4e2 rdfa: move raw_dfa member functions to rdfa.cpp 2017-08-21 11:12:26 +10:00
Justin Viiret
0d1e441629 cmake: add graph_range.h 2017-08-21 11:12:26 +10:00
Justin Viiret
a1ff4d3293 small_color_map: add efficient 2-bit color map 2017-08-21 11:12:26 +10:00
Matthew Barr
44e45f727e Bump version number for release 2017-07-26 15:51:23 +10:00
Matthew Barr
2b788f1234 Bump version number for release 2017-06-16 10:07:40 +10:00
Matthew Barr
87469d4775 Bump version number for release 2017-06-09 10:12:03 +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
Matthew Barr
73765f1f84 cmake: Improve the microarch checks 2017-06-09 10:12:02 +10:00
Matthew Barr
3e345c2567 If we can shift by an immediate, do it. Otherwise, don't. 2017-05-30 14:00:45 +10:00
Matthew Barr
055ff7391c cmake: build shared libs with the PIC objs 2017-05-30 13:59:23 +10:00
Matthew Barr
ec7869711f avx512 fat runtime support: experimental 2017-05-30 13:59:23 +10:00
Matthew Barr
423569ec82 De-multiaccel 2017-05-30 13:59:00 +10:00
Alex Coyte
15c8a7bd98 rose: rework storage of extra lookaround information
- remove explicit lookaround table from bytecode
- make the RoseInstr responsible for adding required info to blob
2017-05-30 13:59:00 +10:00
Alex Coyte
bb29aeb298 rose: shift program construction functions to rose_build_program 2017-05-30 13:58:32 +10:00
Justin Viiret
82838f5728 rose_build: move dedupe analysis into own file 2017-05-30 13:58:32 +10:00
Alex Coyte
1287b70f4b split out instruction details to own files 2017-05-30 13:58:32 +10:00
Matthew Barr
b1c57f9f54 cmake: check for libc++ directly
Rather than trying to infer libc++ use from platform and compiler, just
look for a defined symbol.
2017-04-26 15:19:52 +10:00
Justin Viiret
1ef87c43ee noncopyable: switch over from boost 2017-04-26 15:18:26 +10:00
Justin Viiret
a61b92f8d1 operators: add simple ue2::totally_ordered class 2017-04-26 15:18:26 +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
Matthew Barr
ce50ff6119 Use GNUInstallDirs for install paths 2017-04-26 15:17:19 +10:00
Matthew Barr
5daa191313 cmake: simplify g++ version check 2017-04-26 15:17:19 +10:00
Matthew Barr
11aac07855 cmake: override gcc's tuning guess 2017-04-26 15:17:19 +10:00
Matthew Barr
b68e4ea336 cmake: move boost tests 2017-04-26 15:17:19 +10:00
Matthew Barr
287f519205 cmake: look for Boost in-tree first
During development we tend to use a symlink to the most recent version of
Boost from the Hyperscan source tree, so look there first.

Also, unset some cached results so we recheck when the Boost version changes.
2017-04-26 15:17:19 +10:00
Justin Viiret
187a4b82c2 small_vector: add header to handle older Boost
This provides ue2::small_vector<T, N, Alloc> which will fall back to
std::vector<T, Alloc> where the Boost version is too old or not present.
2017-04-26 15:17:11 +10:00
Matthew Barr
79308e6791 cmake: don't build static libs if we don't have to 2017-04-26 15:17:03 +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
Alex Coyte
fddcdbb129 determinisation: use unordered_map to hold state set -> id mapping 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
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
c6bf1919d0 rose: merge all dump code into rose_build_dump.cpp 2017-04-26 14:49:35 +10:00
Alex Coyte
c32d7d51d9 remove ng_rose 2017-04-26 14:44:49 +10:00
Justin Viiret
2fda8c0b20 hwlm: move accel from hwlm build to rose 2017-04-26 14:41:29 +10:00
Matthew Barr
f7d3ccc7e5 Bump version number for release 2017-03-01 13:05:44 +11:00
Matthew Barr
53a8d97e77 Bump version number for release 2017-01-20 14:15:53 +11:00
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
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
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
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
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