Konstantinos Margaritis
0d2f9ccbaa
Fix 'unqualified call to std::move' errors in clang 15+
2023-10-03 20:24:39 +03:00
Konstantinos Margaritis
e35b88f2c8
use STL make_unique, remove wrapper header, breaks C++17 compilation
2021-10-12 11:51:34 +03:00
Konstantinos Margaritis
556206f138
replace push_back by emplace_back where possible
2021-10-12 11:51:33 +03:00
Wang Xiang W
9ea1e4be3d
limex: add fast NFA check
2021-01-25 14:13:13 +02:00
Chang, Harry
5ad3d64b4b
Discard HAVE_AVX512VBMI checks at Sheng/McSheng compile time.
2021-01-25 14:13:13 +02:00
Zhu,Wenjun
d96f1ab505
MCSHENG64: extend to 64-state based on mcsheng
2021-01-25 14:13:13 +02:00
Chang, Harry
ed4b0f713a
SHENG64: 64-state 1-byte shuffle based DFA.
2021-01-25 14:13:13 +02:00
Chang, Harry
6a42b37fca
SHENG32: Compile priority sheng > mcsheng > sheng32.
2021-01-25 14:13:13 +02:00
Hong, Yang A
23e5f06594
add new Literal API for pure literal expressions:
...
Design compile time api hs_compile_lit() and hs_compile_lit_multi()
to handle pure literal pattern sets. Corresponding option --literal-on
is added for hyperscan testing suites. Extended parameters and part of
flags are not supported for this api.
2019-08-13 14:51:38 +08:00
Chang, Harry
1f4c10a58d
Logical combination: support EOD match from purely negative case.
2019-08-13 14:50:07 +08:00
Hong, Yang A
f68723a606
literal matching: separate path for pure literal patterns
2019-01-21 09:59:22 +08:00
Chang, Harry
8a1c497f44
Logical Combination of patterns.
2018-06-27 14:04:57 +08:00
Matthew Barr
dd286323a9
Don't let haigs into Tamarama
2017-09-18 13:29:34 +10:00
Justin Viiret
3ff70d5568
insertion_ordered_{map,set}: add new containers
...
These are associative map/set structures that are iterable in insertion
order.
2017-08-21 11:25:21 +10:00
Wang, Xiang W
a645201675
UE-3147: ensure the same squash behavior for literals shared between different literal matchers
2017-08-21 11:25:03 +10:00
Justin Viiret
ba1df6412b
groupByFragment: make fewer string copies
2017-08-21 11:24:52 +10:00
Justin Viiret
09938d532f
rose: return a vector from findEdgesByLiteral
2017-08-21 11:24:52 +10:00
Alex Coyte
37033ef9bb
Provide RoseResources to roseQuality.
...
RoseResources is an alternative to manually digging through the bytecode.
2017-08-21 11:24:52 +10:00
Alex Coyte
ffc2d578b1
roseQuality() no longer needs to be part of rose's API.
2017-08-21 11:23:41 +10:00
Alex Coyte
952f0aad21
support dynamic stream compression
2017-08-21 11:18:54 +10:00
Justin Viiret
9cf66b6ac9
util: switch from Boost to std::unordered set/map
...
This commit replaces the ue2::unordered_{set,map} types with their STL
versions, with some new hashing utilities in util/hash.h. The new types
ue2_unordered_set<T> and ue2_unordered_map<Key, T> default to using the
ue2_hasher.
The header util/ue2_containers.h has been removed, and the flat_set/map
containers moved to util/flat_containers.h.
2017-08-21 11:14:55 +10:00
Wang, Xiang W
86c5f7feb1
FDR: Squash buckets of included literals in FDR confirm
...
- Change the compile of literal matchers to two passes.
- Reverse the bucket assignment in FDR, bucket with longer literals has
smaller bucket id.
- Squash the buckets of included literals and jump to the the program of
included literals directly from parent literal program without going
through FDR confirm for included iterals.
2017-08-21 11:12:36 +10:00
Alex Coyte
2b1a7da188
deterministic assembleProgramBlocks()
2017-05-30 13:59:00 +10:00
Alex Coyte
15c8a7bd98
rose: rework storage of extra lookaround information
...
- remove explicit lookaround table from bytecode
- make the RoseInstr responsible for adding required info to blob
2017-05-30 13:59:00 +10:00
Justin Viiret
8b9328fe9e
rose: replace RoseLiteralMap use of bimap
...
This apoproach is simpler and more efficient for cases with large
numbers of literals.
2017-05-30 13:58:59 +10:00
Alex Coyte
bb29aeb298
rose: shift program construction functions to rose_build_program
2017-05-30 13:58:32 +10:00
Alex Coyte
1287b70f4b
split out instruction details to own files
2017-05-30 13:58:32 +10:00
Alex Coyte
f74f475189
rose_program: merge RECORD_ANCHORED instruction into ANCHORED_DELAY
2017-05-30 13:58:32 +10:00
Alex Coyte
e24c38a85c
rose: minor improvements to avoid unneeded program instructions
...
- strip out lonely check handled instructions
- avoid producing programs for empty ghost roles
2017-05-30 13:58:32 +10:00
Alex Coyte
88fd95e38a
rose: minor clean up of catchup
...
- anchored dfa do not mean that catchup is required
- remove needsCatchup from rose bytecode as catchup is based on interpreter
2017-05-30 13:58:32 +10:00
Alex Coyte
a810bac8f7
be more selective about generating CLEAR_WORK_DONE instructions
2017-05-30 13:58:32 +10:00
Alex Coyte
cd424bdb45
minor clean up of rose_build_bytecode.cpp
...
- consistently name functions creating programs as makeFoo()
- replace writeLiteralProgram() with makeFragmentProgram()
- make applyFinalSpecialisation() part of writeProgram(bc, prog)
- seperate users who want to make a program for a single literal and fragments
2017-05-30 13:58:04 +10:00
Justin Viiret
0dd8536c6e
dfa: only accel init states from smwr path
...
If the small-write DFA has been built from literals, then we only need
to look for accel states at init.
2017-05-30 13:57:32 +10:00
Matthew Barr
19c7161d04
Use ue2::noncopyable instead of deleting copy ctor
2017-04-26 15:19:51 +10:00
Justin Viiret
3e5a8c9c90
rose: eliminate roseSize, use bytecode_ptr size
2017-04-26 15:19:43 +10:00
Justin Viiret
b6047ea5d4
rose: use bytecode_ptr for interpreter programs
2017-04-26 15:19:36 +10:00
Justin Viiret
0a3bd455ad
rose_build_bytecode: fix up indentation
2017-04-26 15:19:36 +10:00
Justin Viiret
63fe84c3f1
bytecode_ptr: add make_zeroed_bytecode_ptr
...
Rather than always zeroing memory.
2017-04-26 15:19:36 +10:00
Justin Viiret
a197074c5d
nfa: switch to using bytecode_ptr<NFA>
2017-04-26 15:19:36 +10:00
Justin Viiret
905ac78061
rose_build_anchored: use bytecode_ptr
2017-04-26 15:19:36 +10:00
Justin Viiret
7b17d418e7
hwlm: use bytecode_ptr for HWLM structures
2017-04-26 15:19:36 +10:00
Justin Viiret
813f1e3fb9
rose: use bytecode_ptr<RoseEngine>
2017-04-26 15:19:36 +10:00
Justin Viiret
a5ed9a9330
smallwrite_build: use bytecode_ptr
2017-04-26 15:19:35 +10:00
Alex Coyte
894e6835e6
ensure that engines added to the leftQueueMap are real rather than lookarounds
2017-04-26 15:19:33 +10:00
Alex Coyte
37cb93e60f
rose_build: reduce size/scope of context objects
2017-04-26 15:19:01 +10:00
Xu, Chi
ae3cb7de6f
rose: add multi-path shufti 16x8, 32x8, 32x16, 64x8 and multi-path lookaround instructions.
2017-04-26 15:18:56 +10:00
Justin Viiret
1ef87c43ee
noncopyable: switch over from boost
2017-04-26 15:18:26 +10:00
Justin Viiret
5fe524fbb3
rose: allow lits that squash to share fragments
2017-04-26 15:18:26 +10:00
Justin Viiret
18f843bcc1
rose: add CLEAR_WORK_DONE instruction
...
Preparatory work for allowing fragments to be shared between literals
that squash groups and those that don't.
2017-04-26 15:18:26 +10:00
Alex Coyte
de52b30c3e
make rose responsible for dumping its bytecode
2017-04-26 15:17:19 +10:00