redis/.github/workflows
Salvatore Sanfilippo 670993a89d
Replace fast_float C++ library with pure C implementation (#14661)
The fast_float dependency required C++ (libstdc++) to build Redis. This
commit replaces the 3800-line C++ template library with a minimal pure C
implementation (~360 lines) that provides the same functionality needed
by Redis.

This is **very important** because Redis build process would fail
without g++ installed, a common situation in Linux distributions even
after installing the basic build tools: we want the build process of
Redis to be the simplest possible. Also Redis sometimes is compiled in
embedded systems lacking the g++ toolchain. There is no reason to depend
on C++ in a project written in C.

## The C implementation uses
1. Fast path (Clinger's algorithm) for numbers with mantissa <= 2^53 and
exponent in [-22, 22], covering ~99% of real-world cases.
2. Fallback to strtod() for complex cases to ensure correctly-rounded
results.

## Changes
- Move new fast_float_strtod.c(C implementation) from deps into Redis
core since it is now a single file and no longer needs a separate
directory.
- Remove all c++ dependencies

The implementation was tested against both strtod and the original C++
implementation with 10,000+ test cases including edge cases, special
values (inf/nan), and random inputs.

---------

Co-authored-by: debing.sun <debing.sun@redis.com>
Co-authored-by: Mincho Paskalev <minchopaskal@gmail.com>
Co-authored-by: Moti Cohen <moti.cohen@redis.com>
2026-04-15 20:33:55 +08:00
..
ci.yml Replace fast_float C++ library with pure C implementation (#14661) 2026-04-15 20:33:55 +08:00
codecov.yml Pin third-party action to commit SHA and move secrets to step env (#14937) 2026-04-09 10:17:39 +08:00
codeql-analysis.yml Upgrade action/checkout version and add old-chain CI actions to test gcc4.8 (#13394) 2024-07-08 21:34:14 +08:00
coverity.yml Pin third-party action to commit SHA and move secrets to step env (#14937) 2026-04-09 10:17:39 +08:00
daily.yml Replace fast_float C++ library with pure C implementation (#14661) 2026-04-15 20:33:55 +08:00
external.yml Refine CI timeout from 14400 to 360 minutes (#14798) 2026-02-19 11:31:08 +02:00
post-release-automation.yml RED-183356: Automate tarball creation (#14911) 2026-04-09 17:58:37 +03:00
redis_docs_sync.yaml Only run redis_docs_sync.yaml on latest release (#13603) 2024-10-15 16:02:11 +03:00
reply-schemas-linter.yml Upgrade action/checkout version and add old-chain CI actions to test gcc4.8 (#13394) 2024-07-08 21:34:14 +08:00
spell-check.yml Upgrade action/checkout version and add old-chain CI actions to test gcc4.8 (#13394) 2024-07-08 21:34:14 +08:00