mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
Merge branch 'github_develop' into github_master
This commit is contained in:
commit
d79973efb1
@ -2,6 +2,11 @@
|
|||||||
|
|
||||||
This is a list of notable changes to Hyperscan, in reverse chronological order.
|
This is a list of notable changes to Hyperscan, in reverse chronological order.
|
||||||
|
|
||||||
|
## [5.2.1] 2019-10-13
|
||||||
|
- Bugfix for issue #186: fix compile issue when `BUILD_SHARED_LIBS` is on in
|
||||||
|
release mode.
|
||||||
|
- Disable redundant move check for older compiler versions.
|
||||||
|
|
||||||
## [5.2.0] 2019-07-12
|
## [5.2.0] 2019-07-12
|
||||||
- Literal API: add new API `hs_compile_lit()` and `hs_compile_lit_multi()` to
|
- Literal API: add new API `hs_compile_lit()` and `hs_compile_lit_multi()` to
|
||||||
process pure literal rule sets. The 2 literal APIs treat each expression text
|
process pure literal rule sets. The 2 literal APIs treat each expression text
|
||||||
|
@ -3,7 +3,7 @@ project (hyperscan C CXX)
|
|||||||
|
|
||||||
set (HS_MAJOR_VERSION 5)
|
set (HS_MAJOR_VERSION 5)
|
||||||
set (HS_MINOR_VERSION 2)
|
set (HS_MINOR_VERSION 2)
|
||||||
set (HS_PATCH_VERSION 0)
|
set (HS_PATCH_VERSION 1)
|
||||||
set (HS_VERSION ${HS_MAJOR_VERSION}.${HS_MINOR_VERSION}.${HS_PATCH_VERSION})
|
set (HS_VERSION ${HS_MAJOR_VERSION}.${HS_MINOR_VERSION}.${HS_PATCH_VERSION})
|
||||||
|
|
||||||
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
@ -395,6 +395,12 @@ if (CXX_IGNORED_ATTR)
|
|||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-ignored-attributes")
|
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-ignored-attributes")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# gcc 9 complains about redundant move for returned variable
|
||||||
|
CHECK_CXX_COMPILER_FLAG("-Wredundant-move" CXX_REDUNDANT_MOVE)
|
||||||
|
if (CXX_REDUNDANT_MOVE)
|
||||||
|
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-redundant-move")
|
||||||
|
endif()
|
||||||
|
|
||||||
# note this for later
|
# note this for later
|
||||||
# g++ doesn't have this flag but clang does
|
# g++ doesn't have this flag but clang does
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wweak-vtables" CXX_WEAK_VTABLES)
|
CHECK_CXX_COMPILER_FLAG("-Wweak-vtables" CXX_WEAK_VTABLES)
|
||||||
|
@ -613,8 +613,9 @@ When an expression has the :c:member:`HS_FLAG_COMBINATION` flag set, it ignores
|
|||||||
all other flags except the :c:member:`HS_FLAG_SINGLEMATCH` flag and the
|
all other flags except the :c:member:`HS_FLAG_SINGLEMATCH` flag and the
|
||||||
:c:member:`HS_FLAG_QUIET` flag.
|
:c:member:`HS_FLAG_QUIET` flag.
|
||||||
|
|
||||||
Hyperscan will reject logical combination expressions at compile time that
|
Hyperscan will accept logical combination expressions at compile time that
|
||||||
evaluate to *true* when no patterns have matched; for example: ::
|
evaluate to *true* when no patterns have matched, and report the match for
|
||||||
|
combination at end of data if no patterns have matched; for example: ::
|
||||||
|
|
||||||
!101
|
!101
|
||||||
!101|102
|
!101|102
|
||||||
|
@ -414,6 +414,7 @@ buildEngineHyperscan(const ExpressionMap &expressions, ScanMode scan_mode,
|
|||||||
hs_compile_error_t *compile_err;
|
hs_compile_error_t *compile_err;
|
||||||
Timer timer;
|
Timer timer;
|
||||||
|
|
||||||
|
#ifndef RELEASE_BUILD
|
||||||
if (useLiteralApi) {
|
if (useLiteralApi) {
|
||||||
// Pattern length computation should be done before timer start.
|
// Pattern length computation should be done before timer start.
|
||||||
vector<size_t> lens(count);
|
vector<size_t> lens(count);
|
||||||
@ -434,6 +435,26 @@ buildEngineHyperscan(const ExpressionMap &expressions, ScanMode scan_mode,
|
|||||||
grey);
|
grey);
|
||||||
timer.complete();
|
timer.complete();
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
if (useLiteralApi) {
|
||||||
|
// Pattern length computation should be done before timer start.
|
||||||
|
vector<size_t> lens(count);
|
||||||
|
for (unsigned int i = 0; i < count; i++) {
|
||||||
|
lens[i] = strlen(patterns[i]);
|
||||||
|
}
|
||||||
|
timer.start();
|
||||||
|
err = hs_compile_lit_multi(patterns.data(), flags.data(),
|
||||||
|
ids.data(), lens.data(), count,
|
||||||
|
full_mode, nullptr, &db, &compile_err);
|
||||||
|
timer.complete();
|
||||||
|
} else {
|
||||||
|
timer.start();
|
||||||
|
err = hs_compile_ext_multi(patterns.data(), flags.data(),
|
||||||
|
ids.data(), ext_ptr.data(), count,
|
||||||
|
full_mode, nullptr, &db, &compile_err);
|
||||||
|
timer.complete();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
compileSecs = timer.seconds();
|
compileSecs = timer.seconds();
|
||||||
peakMemorySize = getPeakHeap();
|
peakMemorySize = getPeakHeap();
|
||||||
|
@ -336,9 +336,8 @@ void checkExpression(UNUSED void *threadarg) {
|
|||||||
#else
|
#else
|
||||||
if (use_literal_api) {
|
if (use_literal_api) {
|
||||||
size_t len = strlen(regexp);
|
size_t len = strlen(regexp);
|
||||||
err = hs_compile_lit_multi_int(®exp, &flags, nullptr, &extp,
|
err = hs_compile_lit_multi(®exp, &flags, nullptr, &len, 1,
|
||||||
&len, 1, mode, nullptr, &db,
|
mode, nullptr, &db, &compile_err);
|
||||||
&compile_err, *g_grey);
|
|
||||||
} else {
|
} else {
|
||||||
err = hs_compile_ext_multi(®exp, &flags, nullptr, &extp, 1,
|
err = hs_compile_ext_multi(®exp, &flags, nullptr, &extp, 1,
|
||||||
mode, nullptr, &db, &compile_err);
|
mode, nullptr, &db, &compile_err);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user