1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 11:07:45 +00:00
serenity/Userland/Libraries
Timothy Flynn 7dce2bfe23 LibUnicode: Generate separate tables for General Category properties
Previously, each code point's General Category was part of the generated
UnicodeData structure. This ultimately presented two problems, one
functional and one performance related:

  * Some General Categories are applied to unassigned code points, for
    example the Unassigned (Cn) category. Unassigned code points are
    strictly excluded from UnicodeData.txt, so by relying on that file,
    the generator is unable to handle these categories.

  * Lookups for General Categories are slower when searching through the
    large UnicodeData hash map. Even though lookups are O(1), the hash
    function turned out to be slower than binary searching through a
    category-specific table.

So, now a table is generated for each General Category. When querying a
code point for a category, a binary search is done on each code point
range in that category's table to check if code point has that category.

Further, General Categories are now parsed from the UCD file
DerivedGeneralCategory.txt. This file is a normal "prop list" file and
contains the categories for unassigned code points.
2021-08-11 13:11:01 +02:00
..
LibArchive LibArchive: Move method implementations away from header 2021-05-17 18:14:05 +01:00
LibAudio LibAudio: Make playing lossy flacs more truthful 2021-08-06 23:50:10 +02:00
LibC Kernel: Add syscall performance event type 2021-08-10 21:55:48 +02:00
LibCards LibGfx: Use "try_" prefix for static factory functions 2021-07-21 18:02:15 +02:00
LibChess LibChess: Fix hashing of the chess board 2021-07-30 20:49:18 +02:00
LibCompress LibCompress: Discard GZip NAME & COMMENT optional strings 2021-05-18 08:09:21 +02:00
LibCore Everywhere: Replace AK::Singleton => Singleton 2021-08-08 00:03:45 +02:00
LibCoreDump LibCoreDump: Make narrowing uint64_t => FlatPtr conversion explicit 2021-08-08 10:55:36 +02:00
LibCpp LibCpp: Do macro substitution in the preprocessor instead of the parser 2021-08-07 21:24:11 +02:00
LibCrypt Everywhere: Add a blank line after copyright header where missing 2021-05-15 00:27:09 +01:00
LibCrypto LibCrypto: Add operator<= and operator>= to SignedBigInteger 2021-07-19 09:11:20 +01:00
LibDebug LibDebug: Store 64-bit numbers in AttributeValue 2021-08-08 10:55:36 +02:00
LibDesktop Userland: Use Core::Process::spawn() instead of posix_spawn() in places 2021-08-06 01:06:42 +02:00
LibDiff AK+Everywhere: Consolidate String::index_of() and String::find() 2021-05-24 11:59:18 +02:00
LibDl Toolchain+Userland: Enable TLS for x86_64 2021-07-04 01:07:28 +02:00
LibELF LibELF: Remove (FlatPtr)something.as_ptr() idiom 2021-08-09 23:15:48 +02:00
LibFileSystemAccessClient FileSystemAccessServer: Add window title as parameter for opening file 2021-08-07 12:48:22 +02:00
LibGemini AK: Implement String::find_any_of() and StringView::find_any_of() 2021-07-02 21:54:21 +02:00
LibGfx Everywhere: Use tobyase@serenityos.org for my copyright headers 2021-08-09 21:43:05 +02:00
LibGL LibGfx: Use "try_" prefix for static factory functions 2021-07-21 18:02:15 +02:00
LibGUI LibGUI: Draw a focus rect over the row when sel. behavior is SelectRows 2021-08-10 21:56:47 +02:00
LibHTTP LibHTTP: Finish the request up on TLS connection finish 2021-06-30 01:23:25 +04:30
LibImageDecoderClient Userland: Remove dummy IPC methods 2021-06-24 00:38:58 +02:00
LibIMAP Everywhere: Make use of container version of all_of 2021-08-03 10:46:43 +02:00
LibIPC Libraries: Remove unused header includes 2021-08-01 08:10:16 +02:00
LibJS LibJS: Reduce UTF-8 to UTF-16 transcoding when only UTF-16 is wanted 2021-08-10 23:07:50 +02:00
LibKeyboard LibKeyboard: Remove an unnecessary #include when building with KERNEL 2021-06-30 11:30:28 +02:00
LibLine LibLine: Correct spelling mistake in variable name 2021-07-21 14:15:24 +02:00
LibM AK: Introduce Math.h 2021-07-19 16:34:21 +04:30
LibMarkdown LibMarkdown: Wrap non-inline code blocks in <pre> 2021-06-09 18:06:54 +01:00
LibPCIDB Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
LibPDF Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
LibProtocol LibProtocol: Use URL class in RequestClient::start_request argument 2021-06-06 16:00:11 +02:00
LibPthread LibPthread+Kernel: Add pthread_kill() and the thread_kill syscall 2021-07-09 15:36:50 +02:00
LibRegex LibRegex: Support property escapes of Unicode script extensions 2021-08-04 13:50:32 +01:00
LibSanitizer LibSanitizer+AK: Add float cast overflow handler 2021-08-08 10:55:36 +02:00
LibSQL LibSQL: Use compiler generated default functions 2021-08-06 23:54:36 +02:00
LibSymbolication LibDebug+Everywhere: Make DebugInfo not own the ELF image 2021-08-06 01:14:03 +02:00
LibSyntax LibWeb+LibSyntax: Implement nested syntax highlighters 2021-06-07 14:45:49 +04:30
LibSystem Kernel+LibSystem: Add a 4th syscall argument 2021-07-25 14:08:50 +02:00
LibTest Meta/LibTest: Build object libraries for test main files 2021-07-29 21:46:25 +01:00
LibTextCodec LibTextCodec: Add Turkish (aka ISO-8859-9, Windows-1254) encoding 2021-06-23 16:32:47 +01:00
LibThreading Revert "LibThreading: Fix BackgroundAction result use-after-free" 2021-07-12 11:29:37 +02:00
LibTLS Everywhere: Replace AK::Singleton => Singleton 2021-08-08 00:03:45 +02:00
LibUnicode LibUnicode: Generate separate tables for General Category properties 2021-08-11 13:11:01 +02:00
LibUSBDB LibUSBDB: Fix vendor id decoding 2021-06-18 19:41:25 +04:30
LibVideo Userland: Use kmalloc_array() where appropriate 2021-08-08 00:03:45 +02:00
LibVT Userland: Make use of container version of any_of 2021-08-02 00:37:18 +02:00
LibWasm Everywhere: Prefer using {:#x} over 0x{:x} 2021-07-22 08:57:01 +02:00
LibWeb Everywhere: Use tobyase@serenityos.org for my copyright headers 2021-08-09 21:43:05 +02:00
LibWebSocket AK+Everywhere: Disallow constructing Functions from incompatible types 2021-06-06 00:27:30 +04:30
LibX86 LibX86: Stub out Disassembler::next() for x86_64 2021-08-02 17:11:47 +02:00
CMakeLists.txt LibTTF/LibGfx: Remove circular dependency by merging LibTTF into LibGfx 2021-07-29 21:46:25 +01:00