spy v3.0.0
Andrée Borrel
Loading...
Searching...
No Matches
Change Log

Version 3.0.0 - Andrée Borrel

Changelog

  • BREAKING CHANGES
    • Clang-CL now reports as spy::clangcl_ and defines SPY_COMPILER_IS_CLANGCL. It reported as spy::msvc_ up to 2.0.0.
    • MINGW32 and MINGW64 now report as spy::mingw32_ and spy::mingw64_ and define SPY_COMPILER_IS_MINGW32 or SPY_COMPILER_IS_MINGW64. They reported as spy::gcc_ up to 2.0.0.
  • Features:
    • Report the C++ standard version through spy::cpp_standard and the _cpp literal.
    • Detect half-precision support through spy::supports::fp16, covering the _Float16 type, scalar and vector arithmetic, and packed conversions.
    • Detect the x86 F16C extension through spy::supports::f16c_.
    • Compiling below C++20 now stops on a diagnostic that names the required standard.
  • Bugs:
    • Restore SPY_DISABLE_ADDRESS_SANITIZERS and SPY_DISABLE_THREAD_SANITIZERS under MINGW, where the compiler reclassification had left them empty.
    • Lower the MINGW version floors of the unit tests to the one gcc has, 7'2. They asked for 15.2, which no runner carries, and the assertion had never run.
    • Give every spy::supports indicator one object per program. The fp16 ones were declared static and the sanitizer ones had no inline, so each translation unit held its own copy at its own address.
    • Accept both spellings of the Emscripten version macros, renamed in Emscripten 5.
    • Compile cleanly under -Wshadow.
  • Infrastructure:
    • Vendor CPM.cmake at v0.43.1, so a configure step no longer downloads it.
    • Drive the CI from CMake presets and the copacabana v8 shared workflows, with coverage, sanitizers, standalone generation and pre-commit checks.
    • Add Clang-CL and MINGW64 jobs to the Windows matrix, and cover every compiler tag in the unit tests.
    • Check what a test claims under NDEBUG too: assert is compiled out in Release, so half the matrix only ever checked that the tests build. test/assert.hpp holds a spy::check that takes the condition as a template argument and names what it looked at either way.

Our SPY:

Andrée Borrel

Version 2.0.0 - Denise Bloch

Changelog

  • Features:
    • [BREAKING CHANGE] Move to C++20 to improve compile times.
    • Detect RISC-V and RISC-V SIMD instructions sets.
    • Update SIMD detection by upstreaming EVE recent changes.
  • Bugs:
    • Fix #55 - Properly detect version for Clang CUDA.
    • Use <=> instead of macros for comparisons.
    • Fix streaming issues of SPY objects.
  • Infrastructure:
    • Update CI to g++ 13 and clang 18.
    • Make doxygen generate a spy.tag in the doc files.
    • Added a proper clang format settings.

Our SPY:

Denise Bloch

Version 1.1.0 - Julienne Aisner

Changelog

  • Features:
    • Split PPC VMX/VSX detection to take PPC ISA into account.
    • Separate ARM and ARM SVE tags and add SVE2 detectors.
    • Detect and supports sanitizers detection/disabling.
    • Implements SVE detection.
    • Add detections for ICPX and SYCL.
    • Add detections for NVIDIA CUDA usage.
  • Bugs:
    • Fix int width for the LLP64 data model by @jmgorius
    • Add missing whitespace in stdlib output by @ahoarau
  • Infrastructure:
    • Reorganize standalone header location & process.
    • Add Emscripten CI targets.
    • Now tests and supports Clang-CL.

New Contributors

Our SPY:

Julienne Aisner

Version 1.0.0 - Alix d'Unienville

Changelog

  • BREAKING CHANGES
    • ARM Neon and ASIMD discrimination are in line with SSE-like extensions. spy::asimd_ is now a descendant of spy::neon_. This leads to the removal of spy::supports_aarch64
  • Bugs:
    • Fix #12 : Remove <iostream> from public headers
  • Infrastructure:
    • Fix Circle CI uses a new Docker with more cross-compiler and setup

Our SPY:

Alix d'Unienville

Version 0.0.4 - Eileen Nearne

Changelog

  • Infrastructure:
    • Fix Circle CI use of compilers and proper dockers
    • More strict warnings handling in test
  • Bugs:
    • No more ALL_CAPS template parameters (Issue #10)
    • Fix duplicate macros in AVX512 detection

Our SPY:

Eileen Nearne

Version 0.0.3 - Virginia Hall

Changelog

  • Infrastructure:
    • Fixed #5 - SPY now provide a Conan package recipe
    • Documentation now uses Markdeep
  • Features
    • AVX512 detection and sub-ISA detection
    • SIMD ISA objects now provide member to access the actual ISA and version number
    • Added some macros to help to detect SPY successful detection. This is alas still required for some use cases.
    • Added detectors for POSIX

Our SPY:

Virginia Hall

Version 0.0.2 - Blanche Charlet

Changelog

  • Support for Continuous Integration
  • Fixed #2 - detecting compile-time support for SIMD instructions sets
  • Added detectors for data model (LP64, LP32, and all that jazz)
  • Added detectors for architecture brand

Our SPY:

Blanche Charlet

Version 0.0.1 - Peggy Knight

First public release.

Support for:

  • OS vendor
  • Compilers version & vendor
  • libc version & vendor
  • stdlib version & vendor

Our SPY:

Peggy Knight