
Fast_float is a C++ header-only library to parse doubles using SIMD instructions. The purpose is to speed up sorted sets and other commands that use doubles. A single-file copy of fast_float is included in this repo. This introduces an optional dependency on a C++ compiler. The use of fast_float is enabled at compile time using the make variable `USE_FAST_FLOAT=yes`. It is disabled by default. Fixes #1069. --------- Signed-off-by: Parth Patel <661497+parthpatel@users.noreply.github.com> Signed-off-by: Parth <661497+parthpatel@users.noreply.github.com> Signed-off-by: Madelyn Olson <madelyneolson@gmail.com> Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech> Co-authored-by: Roshan Swain <swainroshan001@gmail.com> Co-authored-by: Madelyn Olson <madelyneolson@gmail.com> Co-authored-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
38 lines
1.1 KiB
Makefile
38 lines
1.1 KiB
Makefile
CCCOLOR:="\033[34m"
|
|
SRCCOLOR:="\033[33m"
|
|
ENDCOLOR:="\033[0m"
|
|
|
|
CXX?=c++
|
|
# we need = instead of := so that $@ in QUIET_CXX gets evaluated in the rule and is assigned appropriate value.
|
|
TEMP:=$(CXX)
|
|
QUIET_CXX=@printf ' %b %b\n' $(CCCOLOR)C++$(ENDCOLOR) $(SRCCOLOR)$@$(ENDCOLOR) 1>&2;
|
|
CXX=$(QUIET_CXX)$(TEMP)
|
|
|
|
WARN=-Wall -W -Wno-missing-field-initializers
|
|
|
|
STD=-pedantic -std=c++11
|
|
|
|
OPT?=-O3
|
|
CLANG := $(findstring clang,$(shell sh -c '$(CC) --version | head -1'))
|
|
ifeq ($(OPT),-O3)
|
|
ifeq (clang,$(CLANG))
|
|
OPT+=-flto
|
|
else
|
|
OPT+=-flto=auto -ffat-lto-objects
|
|
endif
|
|
endif
|
|
|
|
# 1) Today src/Makefile passes -m32 flag for explicit 32-bit build on 64-bit machine, via CFLAGS. For 32-bit build on
|
|
# 32-bit machine and 64-bit on 64-bit machine, CFLAGS are empty. No other flags are set that can conflict with C++,
|
|
# therefore let's use CFLAGS without changes for now.
|
|
# 2) FASTFLOAT_ALLOWS_LEADING_PLUS allows +inf to be parsed as inf, instead of error.
|
|
CXXFLAGS=$(STD) $(OPT) $(WARN) -static -fPIC -fno-exceptions $(CFLAGS) -D FASTFLOAT_ALLOWS_LEADING_PLUS
|
|
|
|
.PHONY: all clean
|
|
|
|
all: fast_float_strtod.o
|
|
|
|
clean:
|
|
rm -f *.o || true;
|
|
|