1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-20 05:51:00 +00:00
serenity/Tests
Ali Mohammad Pur 4e69eb89e8 LibRegex: Generate a search tree when patterns would benefit from it
This takes the previous alternation optimisation and applies it to all
the alternation blocks instead of just the few instructions at the
start.
By generating a trie of instructions, all logically equivalent
instructions will be consolidated into a single node, allowing the
engine to avoid checking the same thing multiple times.
For instance, given the pattern /abc|ac|ab/, this optimisation would
generate the following tree:
    - a
    | - b
    | | - c
    | | | - <accept>
    | | - <accept>
    | - c
    | | - <accept>
which will attempt to match 'a' or 'b' only once, and would also limit
the number of backtrackings performed in case alternatives fails to
match.

This optimisation is currently gated behind a simple cost model that
estimates the number of instructions generated, which is pessimistic for
small patterns, though the change in performance in such patterns is not
particularly large.
2023-07-31 05:31:33 +02:00
..
AK AK: Serialize URL hosts with 'concept-host-serializer' 2023-07-31 05:18:51 +02:00
Kernel Everywhere: Update copyrights with my new serenityos.org e-mail :^) 2023-07-15 16:21:29 +02:00
LibAudio LibAudio: Extract loader stream creation from the plugins 2023-06-27 15:28:22 +01:00
LibC Tests: Un-flake the recent TestEnvironment addition 2023-06-06 12:20:38 +02:00
LibCompress LibCompress: Handle arbitrarily long FF-chains in the LZMA encoder 2023-05-19 23:40:33 +02:00
LibCore LibCore: Move the Promise::await() result instead of returning a ref 2023-07-24 16:42:15 +03:30
LibCpp AK: Rename Stream::read_entire_buffer to Stream::read_until_filled 2023-03-13 15:16:20 +00:00
LibCrypto LibCrypto: Add PBKDF2 2023-04-09 17:05:18 -06:00
LibEDID Tests: Prefer TRY_OR_FAIL() and MUST() over EXPECT(!.is_error()) 2023-05-14 15:39:38 -06:00
LibELF Tests: Prefer TRY_OR_FAIL() and MUST() over EXPECT(!.is_error()) 2023-05-14 15:39:38 -06:00
LibGfx LibGfx: Add initial ISO BMFF parsing and a utility to print file info 2023-07-27 12:02:37 +01:00
LibGL LibGfx: Move all image loaders and writers to a subdirectory 2023-03-21 22:39:25 +01:00
LibIMAP LibIMAP: Propagate OOM errors from decode_quoted_printable() 2023-03-09 14:47:45 +00:00
LibJS test-js: Add global function to determine if using bytecode interpreter 2023-07-23 07:36:13 +02:00
LibLocale LibTimeZone+Userland: Change timezone functions to use UnixDateTime 2023-05-24 23:18:07 +02:00
LibMarkdown AK: Rename Stream::read_entire_buffer to Stream::read_until_filled 2023-03-13 15:16:20 +00:00
LibPDF LibPDF: Make encrypted object streams work 2023-07-12 17:16:25 +02:00
LibRegex LibRegex: Generate a search tree when patterns would benefit from it 2023-07-31 05:31:33 +02:00
LibSQL LibSQL: Prevent writing to free heap blocks 2023-06-13 16:33:42 -04:00
LibTest LibTest: Add EXPECT_NO_CRASH 2021-12-19 14:22:06 -08:00
LibTextCodec LibTextCodec+Everywhere: Port Decoders to new Strings 2023-02-19 17:15:47 +01:00
LibThreading LibThreading: Improve resiliancy of timed threading tests 2023-05-24 00:25:35 +02:00
LibTimeZone LibTimeZone+Userland: Change timezone functions to use UnixDateTime 2023-05-24 23:18:07 +02:00
LibTLS LibTLS: Streamline certificate loading 2023-04-12 11:40:06 +03:30
LibTTF Tests: Correct serenity_test() invocation for LibTTF 2023-01-19 11:50:10 +00:00
LibUnicode LibUnicode: Perform code point case conversion lookups in constant time 2023-07-28 05:28:50 +02:00
LibVideo Tests/LibVideo: Add a test for Matroska files containing CRC32 elements 2023-06-25 20:27:02 -04:00
LibWasm LibJS: Port Value::to_object() to NonnullGCPtr 2023-04-14 09:59:29 +02:00
LibWeb LibWeb: Add and use the "snap a length as a border width" algorithm 2023-07-30 22:18:26 +01:00
LibXML LibXML: Actually append resolved references when parsing content 2023-07-23 16:09:12 +02:00
Spreadsheet Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
UserspaceEmulator Everywhere: Remove unused includes of LibC/stdlib.h 2023-01-02 20:27:20 -05:00
Utilities LibDiff+patch: Support multiple patches in a single patch file 2023-07-30 07:47:22 +01:00
CMakeLists.txt Tests: Add tests for sed utility 2023-04-09 18:09:23 -06:00