|
2 | 2 |
|
3 | 3 | This is a list of notable changes to Hyperscan, in reverse chronological order. |
4 | 4 |
|
| 5 | +## [4.5.0] 2017-06-09 |
| 6 | +- New API feature: approximate matching using the "edit distance" extended |
| 7 | + parameter. This allows the user to request all matches that are a given edit |
| 8 | + distance from an exact match for a pattern. |
| 9 | +- Initial support for Intel(R) Advanced Vector Extensions 512 (Intel(R) |
| 10 | + AVX-512), disabled by default. To enable it, pass `-DBUILD_AVX512=1` to |
| 11 | + `cmake`. |
| 12 | +- Major compile time improvements in many subsystems, reducing compile time |
| 13 | + significantly for many large pattern sets. |
| 14 | +- Internal reworking of literal matchers to operate on literals of at |
| 15 | + most eight characters, with subsequent confirmation done in the Rose |
| 16 | + interpreter. This reduces complexity and bytecode size and improves |
| 17 | + performance for many pattern sets. |
| 18 | +- Improve performance of the FDR literal matcher front end. |
| 19 | +- Improve bucket assignment and other heuristics governing the FDR literal |
| 20 | + matcher. |
| 21 | +- Improve optimisation passes that take advantage of extended parameter |
| 22 | + constraints (`min_offset`, etc). |
| 23 | +- Introduce further lookaround specialisations to improve scanning performance. |
| 24 | +- Optimise Rose interpreter construction to reduce the length of programs |
| 25 | + generated in some situations. |
| 26 | +- Remove the old "Rose" pattern decomposition analysis pass in favour of the |
| 27 | + new "Violet" pass introduced in Hyperscan 4.3.0. |
| 28 | +- In streaming mode, allow exhaustion (where the stream can no longer produce |
| 29 | + matchers) to be detected in more situations, improving scanning performance. |
| 30 | +- Improve parsing of control verbs (such as `(*UTF8)`) that can only occur at |
| 31 | + the beginning of the pattern. Combinations of supported verbs in any order |
| 32 | + are now permitted. |
| 33 | +- Update version of PCRE used by testing tools as a syntax and semantic |
| 34 | + reference to PCRE 8.40. |
| 35 | +- Tuning support for Intel(R) microarchitecture code names Skylake, Skylake |
| 36 | + Server, Goldmont. |
| 37 | +- CMake: when building a native build with a version of GCC that doesn't |
| 38 | + recognise the host compiler, tune for the microarch selected by |
| 39 | + `-march=native`. |
| 40 | +- CMake: don't fail if SQLite (which is only required to build the `hsbench` |
| 41 | + tool) is not present. |
| 42 | +- CMake: detect libc++ directly and use that to inform the Boost version |
| 43 | + requirement. |
| 44 | +- Bugfix for issue #51: make the fat runtime build wrapper less fragile. |
| 45 | +- Bugfix for issues #46, #52: use `sqlite3_errmsg()` to allow SQLite 3.6.x to |
| 46 | + be used. Thanks to @EaseTheWorld for the PR. |
| 47 | + |
5 | 48 | ## [4.4.1] 2017-02-28 |
6 | 49 | - Bugfixes to fix issues where stale data was being referenced in scratch |
7 | | - memory. In particular this may have resulted in hs_close_stream() |
| 50 | + memory. In particular this may have resulted in `hs_close_stream()` |
8 | 51 | referencing data from other previously scanned streams. This may result in |
9 | 52 | incorrect matches being been reported. |
10 | 53 |
|
@@ -142,9 +185,7 @@ This is a list of notable changes to Hyperscan, in reverse chronological order. |
142 | 185 | supplied with a NULL scratch pointer if no matches are required. This is in |
143 | 186 | line with the behaviour of `hs_close_stream()`. |
144 | 187 | - Disallow bounded repeats with a very large minimum repeat but no maximum, |
145 | | - i.e. { |
146 | | - N, |
147 | | -} for very large N. |
| 188 | + i.e. {N,} for very large N. |
148 | 189 | - Reduce compile memory usage in literal set explansion for some large cases. |
149 | 190 |
|
150 | 191 | ## [4.0.0] 2015-10-20 |
|
0 commit comments