From 6d223ab557629ea1a3ab4c9bd6c6a496b379c81f Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Tue, 23 May 2023 09:41:23 -0400 Subject: [PATCH 1/2] Adding C++20 tests in CI. --- .github/workflows/ubuntu20-cxx20.yml | 2 +- .github/workflows/ubuntu22-clang.yml | 2 +- .github/workflows/ubuntu22-gcc12.yml | 2 +- .github/workflows/vs17-cxx20.yml | 2 +- include/fast_float/float_common.h | 5 +++++ tests/installation_tests/find/CMakeLists.txt | 2 ++ 6 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ubuntu20-cxx20.yml b/.github/workflows/ubuntu20-cxx20.yml index debb13b..72908b7 100644 --- a/.github/workflows/ubuntu20-cxx20.yml +++ b/.github/workflows/ubuntu20-cxx20.yml @@ -13,7 +13,7 @@ jobs: run: | mkdir build && cd build && - cmake -DCMAKE_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination .. && + cmake -DFASTFLOAT_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON -DCMAKE_INSTALL_PREFIX:PATH=destination .. && cmake --build . && ctest --output-on-failure && cmake --install . diff --git a/.github/workflows/ubuntu22-clang.yml b/.github/workflows/ubuntu22-clang.yml index 14cf763..b0f9b6d 100644 --- a/.github/workflows/ubuntu22-clang.yml +++ b/.github/workflows/ubuntu22-clang.yml @@ -20,6 +20,6 @@ jobs: run: | mkdir build20 && cd build20 && - CXX=clang++-14 cmake -DFASTFLOAT_CONSTEXPR_TESTS=ON -DCMAKE_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON .. && + CXX=clang++-14 cmake -DFASTFLOAT_CONSTEXPR_TESTS=ON -DFASTFLOAT_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON .. && cmake --build . && ctest --output-on-failure \ No newline at end of file diff --git a/.github/workflows/ubuntu22-gcc12.yml b/.github/workflows/ubuntu22-gcc12.yml index 666888a..3f6062e 100644 --- a/.github/workflows/ubuntu22-gcc12.yml +++ b/.github/workflows/ubuntu22-gcc12.yml @@ -18,6 +18,6 @@ jobs: run: | mkdir build20 && cd build20 && - CXX=g++-12 CXXFLAGS=-Werror cmake -DFASTFLOAT_CONSTEXPR_TESTS=ON -DCMAKE_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON .. && + CXX=g++-12 CXXFLAGS=-Werror cmake -DFASTFLOAT_CONSTEXPR_TESTS=ON -DFASTFLOAT_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON .. && cmake --build . && ctest --output-on-failure \ No newline at end of file diff --git a/.github/workflows/vs17-cxx20.yml b/.github/workflows/vs17-cxx20.yml index 69476f9..d9d6876 100644 --- a/.github/workflows/vs17-cxx20.yml +++ b/.github/workflows/vs17-cxx20.yml @@ -20,7 +20,7 @@ jobs: - name: configure run: >- cmake -S . -B build -G "${{matrix.gen}}" -A ${{matrix.arch}} - -DCMAKE_CXX_STANDARD=20 + -DFASTFLOAT_CXX_STANDARD=20 -DFASTFLOAT_TEST=ON -DFASTFLOAT_CONSTEXPR_TESTS=ON -DCMAKE_INSTALL_PREFIX:PATH=destination diff --git a/include/fast_float/float_common.h b/include/fast_float/float_common.h index 2465ea6..cb08650 100644 --- a/include/fast_float/float_common.h +++ b/include/fast_float/float_common.h @@ -126,6 +126,11 @@ using parse_options = parse_options_t; #define FASTFLOAT_DEBUG_ASSERT(x) { ((void)(x)); } #endif + + #if defined(__SSE2__) || defined(__x86_64__) || defined(__x86_64) || (defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP == 2)) + #define FASTFLOAT_SSE2 1 + #endif + // rust style `try!()` macro, or `?` operator #define FASTFLOAT_TRY(x) { if (!(x)) return false; } diff --git a/tests/installation_tests/find/CMakeLists.txt b/tests/installation_tests/find/CMakeLists.txt index 9a61879..537ee24 100644 --- a/tests/installation_tests/find/CMakeLists.txt +++ b/tests/installation_tests/find/CMakeLists.txt @@ -2,6 +2,8 @@ cmake_minimum_required(VERSION 3.15) project(test_install VERSION 0.1.0 LANGUAGES CXX) +set(FASTFLOAT_CXX_STANDARD 17 CACHE STRING "the C++ standard to use for fastfloat") +set(CMAKE_CXX_STANDARD ${FASTFLOAT_CXX_STANDARD}) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(MSVC_VERSION GREATER 1910) From 92061ebe31908576a73a8322064ca22e2bba56a0 Mon Sep 17 00:00:00 2001 From: Daniel Lemire Date: Tue, 23 May 2023 09:55:35 -0400 Subject: [PATCH 2/2] Pruning bad code. --- include/fast_float/float_common.h | 5 ----- 1 file changed, 5 deletions(-) diff --git a/include/fast_float/float_common.h b/include/fast_float/float_common.h index cb08650..2465ea6 100644 --- a/include/fast_float/float_common.h +++ b/include/fast_float/float_common.h @@ -126,11 +126,6 @@ using parse_options = parse_options_t; #define FASTFLOAT_DEBUG_ASSERT(x) { ((void)(x)); } #endif - - #if defined(__SSE2__) || defined(__x86_64__) || defined(__x86_64) || (defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP == 2)) - #define FASTFLOAT_SSE2 1 - #endif - // rust style `try!()` macro, or `?` operator #define FASTFLOAT_TRY(x) { if (!(x)) return false; }