Matthew Barr
b9d3b73ab8
Fix includes to meet our usual guidelines
2015-11-10 14:36:39 +11:00
Justin Viiret
9cffa7666f
Refine ComponentClass::class_empty
...
ComponentClass::class_empty should only be used on finalized classes to
determine whether a given class contains any elements; it should not
take the cr_ucp or cps_ucp into account, as they have been folden in by
the finalize call.
Fixes our failure to identify that the pattern /[^\D\d]/8W can never
match.
2015-11-10 14:36:39 +11:00
Justin Viiret
c68bfe05d8
Don't use class_empty in early class parsing
...
Instead, explicitly track whether we're still in the early class parsing
machine.
2015-11-10 14:36:39 +11:00
Justin Viiret
b1f6a539c7
Remove dead ComponentClass::{get,set}FirstChar
2015-11-10 14:36:39 +11:00
Justin Viiret
9a7b912a5d
Rework parser rejection for POSIX collating elems
...
Implement rejection of POSIX collating elements ("[.ch.]" and "[=ch=]"
entirely in the Ragel parser, using the same approach both inside and
ouside character classes.
Fix buggy rejection of [^.ch.], which we should accept as a character
class.
2015-11-10 14:36:39 +11:00
Justin Viiret
d9efe07125
depth: correct sign in printf format
2015-11-10 14:36:38 +11:00
Justin Viiret
62776b615b
nfa_api_queue: debug printf format fix
2015-11-10 14:36:38 +11:00
Justin Viiret
863ea1b2b2
mpv_dump: correct hex escapes in printf format
2015-11-10 14:36:38 +11:00
Justin Viiret
51c8020039
simplegrep: use correct sign in printf format
2015-11-10 14:36:38 +11:00
Justin Viiret
ed4a3cdcf1
compare: always use braces for for/if blocks
2015-11-10 14:36:38 +11:00
Justin Viiret
fb834114e5
limex_dump: use 'override' keyword in subclass
2015-11-10 14:36:38 +11:00
Justin Viiret
5805ac193c
NGWrapper: mark dtor with override
2015-11-10 14:36:38 +11:00
Justin Viiret
4c53bd4641
parser: use 'override' keyword in subclasses
2015-11-10 14:36:38 +11:00
Justin Viiret
46ad39f253
Add inlined sparseLastTop
...
This allows the code to be inlined into other sparse optimal repeat
functions.
2015-11-10 14:36:38 +11:00
Justin Viiret
2603be3924
storeInitialRingTopPatch: fix large delta bug
...
Check for staleness up front, so that it is safe to use u32 values to
handle adding more tops.
Adds LargeGap unit tests.
2015-11-10 14:36:38 +11:00
Justin Viiret
a083bcfa8d
repeat: use u32 arithmetic explicitly
...
In some ring-based models, we know that if the ring is not stale, then
all our bounds should fit within 32-bits. This change makes these
explicitly u32 rather than implicitly narrowing later on.
2015-11-10 14:36:38 +11:00
Justin Viiret
ae7dbc2472
repeatRecurTable: no need for u64a return type
2015-11-10 14:36:38 +11:00
Xiang Wang
e8bfe5478b
Optimize max clique analysis
...
Use vectors of state ids to avoid the overhead of subgraph copies
2015-11-10 14:36:38 +11:00
Alex Coyte
1507b3fd36
move oversize graph check out of Automaton_holder ctor
2015-11-10 14:36:14 +11:00
Alex Coyte
89660e30b6
raw_som_dfa: initialize members in constructor
2015-11-10 14:36:14 +11:00
Justin Viiret
4311775b43
LimEx NFA: unify flush br/estate behaviour
...
Make the GPR NFA models only clear cached_estate conditionally based on
cached_br, as per the SIMD models.
2015-11-10 14:36:14 +11:00
Justin Viiret
b5e290e985
LimEx NFA: no need to zero estate cache in STREAM
...
We believe that we have solved the issues that required zeroing of the
exception state in STREAM_FN and REV_STREAM_FN nowadays.
2015-11-10 14:36:14 +11:00
Justin Viiret
01498fa8a5
LimEx NFA: no need to zero init cached_esucc
...
All of the "exception cache" members are guarded by cached_esucc.
2015-11-10 14:25:05 +11:00
Alex Coyte
510e999738
make Automaton_Base ctor protected
...
Makes explicit that Automaton_Base is intended to be used as a only base class
2015-11-10 14:25:05 +11:00
Alex Coyte
a255e6b678
add asserts to make bounds on alphaShift clear
2015-11-10 14:25:05 +11:00
Alex Coyte
7b6ad2a01a
doComponent: make it obvious that a is never null
2015-11-10 14:25:05 +11:00
Justin Viiret
c7bebf8836
RoseBuildImpl: init base_id members
...
These are set late in the Rose build process, when final IDs are
allocated.
2015-11-10 14:25:04 +11:00
Justin Viiret
447753f148
FDR compiler: assert that all models are < 32 bits
2015-11-10 14:25:04 +11:00
Justin Viiret
da2386585d
Init filter members to nullptr
...
Note that BGL filters must be default-constructible.
2015-11-10 14:25:04 +11:00
Justin Viiret
cea914e18e
Add q_last_type() queue function
...
Analogous to q_cur_type(), asserts that queue indices are within a valid
range.
2015-11-10 14:25:04 +11:00
Justin Viiret
a6383a54a4
assignStringsToBuckets: assert that there are lits
2015-11-10 14:25:04 +11:00
Matthew Barr
fe31630221
Merge develop into master
v4.0.1
2015-10-30 11:29:20 +11:00
Matthew Barr
91343b00e9
Bump version number
2015-10-30 11:28:38 +11:00
Matthew Barr
aa674e4e47
unit: Don't run unit-internal in release build
2015-10-30 11:28:38 +11:00
Matthew Barr
1f47b82106
Remove unneeded code at preproc stage
...
If we know we have BMI2 we shouldn't produce the fallback code.
2015-10-30 11:28:38 +11:00
Matthew Barr
aafbd96a1d
docs: describe BOOST_ROOT cmake variable
2015-10-30 11:28:38 +11:00
Matthew Barr
ba0b2b788b
cmake: collection of fixes
2015-10-30 11:28:38 +11:00
Alex Coyte
629be08683
reduce memory use in ng_small_literal_set/ng_literal_decorated
...
These passes kept temporary strings/paths alive longer than was needed which
lead to high memory usage during these passes in pathological cases.
2015-10-30 11:28:37 +11:00
Justin Viiret
1afc591c30
Check for (and throw on) large min repeat
...
We were only checking for large maximum bounds, which meant that we
would attempt to compile A{N,} where N is huge.
2015-10-30 11:28:37 +11:00
Matthew Barr
b77613802d
Update CMake required min version to 2.8.11
...
RedHat/CentOS 7 ship with 2.8.11 so this is a sane minimum.
2015-10-30 11:28:37 +11:00
Justin Viiret
e67b8032f7
Unbreak unit-internal for builds w/o dump support
...
Use printable, rather than escapeString.
2015-10-30 11:28:37 +11:00
Justin Viiret
55b357f7d1
Remove enum mqe_event and use u32 for queue events
...
We were using intermediate values int he enum and casting back and forth
with a u32; it is cleaner to just use a u32 and define some special
values.
Silences ICC warning #188 : enumerated type mixed with another type.
2015-10-30 11:28:37 +11:00
Justin Viiret
9ff1303cd8
Allow no scratch for stream reset API calls
...
Bring hs_reset_stream(), hs_reset_and_copy_stream()'s functionality into
line with hs_close_stream() by accepting a NULL scratch if and only if
the match callback is also NULL, indicating that no matches should be
delivered.
2015-10-30 11:28:37 +11:00
Justin Viiret
b59491d0db
Custom NFA_API_NO_IMPL variant for zombie_status
...
Silences ICC warning #188 : enumerated type mixed with another type.
2015-10-30 11:28:37 +11:00
Justin Viiret
a2f2e11e60
sidecar: use aligned_zmalloc_unique
2015-10-30 11:28:37 +11:00
Justin Viiret
441329f15a
FDRp tests: less raw malloc/free
2015-10-30 11:28:37 +11:00
Justin Viiret
4a98c664b4
HyperscanScanGigabytesMatch: use a vector
2015-10-30 11:28:37 +11:00
Justin Viiret
9578ae6ee2
nfagraph_find_matches: simplify/cleanup
2015-10-30 11:28:37 +11:00
Justin Viiret
a5660ee3d4
nfagraph_comp: use common constructGraph
2015-10-30 11:28:37 +11:00
Matthew Barr
904e436f11
Initial commit of Hyperscan
v4.0.0
2015-10-20 09:13:35 +11:00