ladybird/Tests
Timothy Flynn 3355fb39ae AK+LibJS: Replace home-grown Ryu implementation with fmt's dragonbox
In the benchmark added here, fmt's dragonbox is ~3x faster than our own
Ryu implementation (1197ms for dragonbox vs. 3435ms for Ryu).

Daniel Lemire recently published an article about these algorithms:
https://lemire.me/blog/2026/02/01/converting-floats-to-strings-quickly/

In this article, fmt's dragonbox implementation is actually one of the
slower ones (with the caveat that some comments note that the article is
a bit out-of-date). I've gone with fmt here because:

1. It has a readily available recent version on vcpkg.
2. It provides the methods we need to actually convert a floating point
   to decimal exponential form.
3. There is an ongoing effort to replace dragonbox with a new algorithm,
   zmij, which promises to be faster.
4. It is one of the only users of AK/UFixedBigInt, so we can potentially
   remove that as well soon.
5. Bringing in fmt opens the door to replacing a bunch of AK::format
   facilities with fmt as well.
2026-02-23 18:30:40 +01:00
..
AK AK+LibJS: Replace home-grown Ryu implementation with fmt's dragonbox 2026-02-23 18:30:40 +01:00
ClangPlugins Everywhere: Abandon Swift adoption 2026-02-17 10:48:09 -05:00
LibCompress CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
LibCore Everywhere: Abandon Swift adoption 2026-02-17 10:48:09 -05:00
LibCrypto LibCrypto: Add a method to count the number of digits in a big int 2026-02-22 09:39:10 -05:00
LibDatabase LibDatabase: Allow String values to contain embedded null bytes 2026-02-14 10:25:33 -05:00
LibDiff AK: Remove unused include from MemoryStream 2026-02-17 12:38:51 +00:00
LibDNS Meta+RequestServer: Remove local download of ca-certificates 2025-07-07 09:10:05 +02:00
LibGfx Documentation+Tests: Optimize PNGs using optipng 2026-02-23 13:45:04 +01:00
LibHTTP LibHTTP: Implement the must-understand cache directive 2026-02-14 14:34:34 -05:00
LibJS LibJS: Handle power-of-10 boundaries in Number.toExponential/toPrecision 2026-02-22 09:39:10 -05:00
LibMedia Everywhere: Rename IncrementallyPopulatedStream::reached_end_of_body 2026-02-18 13:13:32 -06:00
LibRegex LibRegex: Add some FileCheck-like tests to ensure opts don't break 2026-02-07 14:09:56 +01:00
LibTest CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
LibTextCodec CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
LibThreading LibThreading: Run BackgroundAction error handlers on the origin loop 2026-01-28 15:36:33 -06:00
LibTLS Everywhere: Make ByteBuffer::bytes() lvalue-only 2025-12-10 07:43:22 -05:00
LibUnicode LibUnicode: Add Unicode case folding support for regex matching 2026-02-16 07:51:00 -05:00
LibURL LibURL+Elsewhere: Consider file:// origins opaque by default 2026-02-21 23:00:57 +01:00
LibWasm LibWasm: Parse and validate typeuse references 2026-02-10 13:00:16 +01:00
LibWeb WebContent: Combine viewport size and DPR into a single IPC message 2026-02-23 15:22:12 +01:00
LibWebView LibWebView: Add a bit of explicit handling for "localhost:port" URLs 2025-11-08 11:14:44 -05:00
LibXML CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
CMakeLists.txt Everywhere: Abandon Swift adoption 2026-02-17 10:48:09 -05:00