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
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
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
e51b6d23b9
introduce Sheng-McClellan hybrid
2016-12-14 15:27:18 +11:00
Alex Coyte
32c826e9c6
have single dump function per engine
2016-12-02 11:32:36 +11:00
Alex Coyte
e1e9010cac
Introduce custom adjacency-list based graph
2016-12-02 11:31:33 +11:00
Matthew Barr
be8bd41ec4
Merge master into develop
2016-12-02 11:21:29 +11:00
Matthew Barr
0a16e6f78c
Bump version number for release
2016-11-15 10:09:59 +11:00
Justin Viiret
68bf473e2e
fdr: move long literal handling into Rose
...
Move the hash table used for long literal support in streaming mode from
FDR to Rose, and introduce new instructions CHECK_LONG_LIT and
CHECK_LONG_LIT_NOCASE for doing literal confirm for long literals.
This simplifies FDR confirm, and guarantees that HWLM matchers will only
be used for literals < 256 bytes long.
2016-10-28 14:52:26 +11:00
Matthew Barr
6ed30194ce
Disable asserts everywhere when we say so
2016-10-28 14:52:15 +11:00
Matthew Barr
2e5a2ab2a9
cmake: don't be so heavyhanded with flags
2016-10-28 14:47:11 +11:00
Xu, Chi
04d79629de
rose: add shufti-based lookaround instructions
...
More lookaround specialisations that use the shufti approach.
2016-10-28 14:46:27 +11:00
Justin Viiret
13b6023a18
hash: add hash_all variadic tpl func, use in rose
2016-10-28 14:45:28 +11:00
Justin Viiret
13af3bfb74
rose: decouple build-time program representation
...
This commit replaces the build-time representation of the Rose
interpreter programs, from a class containing a discriminated union of
the bytecode structures to a class hierarchy of build-time prototypes.
This makes it easier to reason about and manipulate Rose programs during
compilation.
2016-10-28 14:45:15 +11:00
Alex Coyte
a08e1dd690
Introduce a 64-bit LimEx model.
...
On 64-bit platforms, the Limex 64 model is implemented in normal GPRs.
On 32-bit platforms, however, 128-bit SSE registers are used for the
runtime implementation.
2016-10-28 14:44:12 +11:00
Xu, Chi
b96d5c23d1
rose: add new instruction CHECK_MASK_32
...
This is a specialisation of the "lookaround" code.
2016-10-28 14:43:33 +11:00
Matthew Barr
d21fcbfa92
Bump version number for release
2016-08-29 11:30:24 +10:00
Matthew Barr
8cf0c41552
Bump version number for release
2016-08-24 14:27:59 +10:00
Matthew Barr
34d6a0d683
Change SONAME to only use the major version number
...
Hyperscan will only break ABI on major version changes, and the SONAME
used for shared library versions should reflect this.
2016-08-22 16:04:48 +10:00
Matthew Barr
f06f5d0702
Use SOURCE_DATE_EPOCH for timestamp if present
...
The Debian reproducible builds effort suggests using
this environment variable for timestamps.
2016-08-10 15:14:30 +10:00
Matthew Barr
e3c9bc7edf
GCC 6 warns about unused attributes - disable the warning
2016-08-10 15:14:07 +10:00
Matthew Barr
85e2ba7555
cmake: take control of our compiler flags
2016-08-10 15:14:03 +10:00
Anatoly Burakov
6331da4e29
dfa: adding new Sheng engine
...
A new shuffle-based DFA engine, complete with acceleration and smallwrite.
2016-08-10 15:10:46 +10:00
Anatoly Burakov
56bf25b091
McClellan refactor
...
Taking dfa strat out of McClellan, to be reused by other DFAs
2016-08-10 15:10:25 +10:00
Matthew Barr
cbd115f7fe
Don't shadow names
2016-08-10 15:06:57 +10:00
Alex Coyte
5c5ec905cc
violet: initial implementation
2016-08-10 15:01:08 +10:00
Xu, Chi
4d7469392d
rose: add CHECK_BYTE/CHECK_MASK instructions
...
These instructions are specialisations of the "lookaround" code for
performance.
2016-08-10 14:57:48 +10:00
Matthew Barr
4d6934fc77
Move limex specific shuffle utils and ssse3 funcs
2016-07-08 11:07:50 +10:00
Xiang Wang
9087d59be5
tamarama: add container engine for exclusive nfas
...
Add the new Tamarama engine that acts as a container for infix/suffix
engines that can be proven to run exclusively of one another.
This reduces stream state for pattern sets with many exclusive engines.
2016-07-08 11:01:34 +10:00
Justin Viiret
76d96809f8
rose: move roseRunProgram into its own unit
...
The roseRunProgram function had gotten very large for the number of
sites it was being inlined into, with negative effects on performance in
large cases. This change moves it into its own translation unit.
2016-07-08 11:01:34 +10:00
Matthew Barr
f9ded59361
Disable strict aliasing
...
Strict aliasing allows to compiler to make some optimisations, but they aren't
without risk. The benefits do not appear to be worth the risk.
2016-07-08 10:59:40 +10:00
Kirill Rybalchenko
9d2403e8bb
limex: implement variable shift NFA engines
...
Replaces the old LimEx NFA engines, which were specialised for model
size and number of shifts, with a new set of engines that can handle a
variable number of shifts.
2016-07-08 10:57:29 +10:00
Justin Viiret
cf8e8c90ff
eod: move stream eod code to stream.c
2016-07-08 10:55:36 +10:00
Matthew Barr
c7212a7478
Only omit frame pointers on 32bit release builds
...
Frame pointers are very useful for debugging and testing, and only
really make a difference to performance on IA32.
2016-07-08 10:50:08 +10:00
Justin Viiret
c2496fbf76
rose: elide SET_GROUPS when possible
2016-07-08 10:47:07 +10:00
Matthew Barr
212ed92ac5
Bump version number for release
2016-06-01 11:04:43 +10:00
Matthew Barr
89bc2b4b39
cmake: invoke the compiler to test arch features
...
We require SSSE3, and optionally support AVX2, and the best way of testing
the compiler and compile flags is to run the compiler.
2016-05-24 11:26:38 +10:00
Matthew Barr
e52783017e
pkgconfig: Add Libs.private for static linking
2016-05-24 11:26:06 +10:00
Matthew Barr
74d5d0e819
cmake: fix optimise define
2016-05-24 11:26:03 +10:00
Boris Nagaev
ba77229c02
install .dll to bin/, not to lib/
2016-05-22 15:56:49 +03:00