Skip to content

Commit a00bd31

Browse files
author
Matthew Barr
committed
Merge branch develop into master
2 parents 7aff6f6 + 87469d4 commit a00bd31

File tree

334 files changed

+21370
-21886
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

334 files changed

+21370
-21886
lines changed

CHANGELOG.md

Lines changed: 45 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,52 @@
22

33
This is a list of notable changes to Hyperscan, in reverse chronological order.
44

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+
548
## [4.4.1] 2017-02-28
649
- 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()`
851
referencing data from other previously scanned streams. This may result in
952
incorrect matches being been reported.
1053

@@ -142,9 +185,7 @@ This is a list of notable changes to Hyperscan, in reverse chronological order.
142185
supplied with a NULL scratch pointer if no matches are required. This is in
143186
line with the behaviour of `hs_close_stream()`.
144187
- 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.
148189
- Reduce compile memory usage in literal set explansion for some large cases.
149190

150191
## [4.0.0] 2015-10-20

0 commit comments

Comments
 (0)