Skip to content

v0.5.0

Choose a tag to compare

@davidesantangelo davidesantangelo released this 17 Apr 14:29
· 5 commits to master since this release

Added

  • Introduced significant performance optimizations via compiler flags:
    • -Ofast, -march=native, -ffast-math, -fomit-frame-pointer added to release builds (CMake and build script).
    • Enabled Link-Time Optimization (LTO) (-flto) for release builds.
    • Enabled Interprocedural Optimization (IPO) via CMake where supported.
  • Added compiler-specific hints for potential performance gains:
    • VSORT_RESTRICT (__restrict__) for pointers.
    • VSORT_LIKELY/VSORT_UNLIKELY (__builtin_expect) for branch prediction.
    • inline and __attribute__((hot)) / VSORT_HOT for critical functions.
  • Introduced VSORT_HOT macro to manage __attribute__((hot)) portability.

Changed

  • Version bumped to 0.5.0.
  • Enabled Apple Silicon optimizations (USE_APPLE_SILICON_OPTIMIZATIONS) by default in CMake.
  • Updated and simplified CMake build steps in CI workflow (.github/workflows/apple_silicon_ci.yml).
  • Updated build instructions in README.md to reflect current CMake usage.
  • Applied optimization flags to the standalone build_script.sh.
  • Made internal usage of certain compiler attributes (always_inline, hot) conditional for improved portability.

Fixed

  • Improved build portability, especially for compilers like MSVC, by abstracting or conditionally compiling GCC/Clang-specific __attribute__ directives.

Removed

  • Outdated // TODO: comments from source code.
  • Development roadmap section from README.md.
  • Unnecessary forward declarations for swap_int/swap_float in vsort.c.