[4.5.0] 2017-06-09
- New API feature: approximate matching using the "edit distance" extended
parameter. This allows the user to request all matches that are a given edit
distance from an exact match for a pattern. - Initial support for Intel(R) Advanced Vector Extensions 512 (Intel(R)
AVX-512), disabled by default. To enable it, pass-DBUILD_AVX512=1
to
cmake
. - Major compile time improvements in many subsystems, reducing compile time
significantly for many large pattern sets. - Internal reworking of literal matchers to operate on literals of at
most eight characters, with subsequent confirmation done in the Rose
interpreter. This reduces complexity and bytecode size and improves
performance for many pattern sets. - Improve performance of the FDR literal matcher front end.
- Improve bucket assignment and other heuristics governing the FDR literal
matcher. - Improve optimisation passes that take advantage of extended parameter
constraints (min_offset
, etc). - Introduce further lookaround specialisations to improve scanning performance.
- Optimise Rose interpreter construction to reduce the length of programs
generated in some situations. - Remove the old "Rose" pattern decomposition analysis pass in favour of the
new "Violet" pass introduced in Hyperscan 4.3.0. - In streaming mode, allow exhaustion (where the stream can no longer produce
matchers) to be detected in more situations, improving scanning performance. - Improve parsing of control verbs (such as
(*UTF8)
) that can only occur at
the beginning of the pattern. Combinations of supported verbs in any order
are now permitted. - Update version of PCRE used by testing tools as a syntax and semantic
reference to PCRE 8.40. - Tuning support for Intel(R) microarchitecture code names Skylake, Skylake
Server, Goldmont. - CMake: when building a native build with a version of GCC that doesn't
recognise the host compiler, tune for the microarch selected by
-march=native
. - CMake: don't fail if SQLite (which is only required to build the
hsbench
tool) is not present. - CMake: detect libc++ directly and use that to inform the Boost version
requirement. - Bugfix for issue #51: make the fat runtime build wrapper less fragile.
- Bugfix for issues #46, #52: use
sqlite3_errmsg()
to allow SQLite 3.6.x to
be used. Thanks to @EaseTheWorld for the PR.