Skip to content

v25.01

Latest
Compare
Choose a tag to compare
@blapie blapie released this 09 Jan 15:57

This new release provides numerous performance and codegen improvement in math/ and string/ routines. The directory structure is re-organised and simplified. The math test framework is reworked to improve testing capacity over math routines. This new release also provides several bug fixes and documentation updates.

  • Update MAINTAINERS

  • Improve subdirectory structure

    • Merge pl/ into math/. All math routines can now be built into a
      single library, and the new structure reduces code duplication.
    • Upgrade the test infrastructure. Intervals, thresholds and other
      test parameters are now embedded in source files, processed into
      files generated at compile-time, and finally passed to the tester
      script.
    • Move "lower-quality" routines into dedicated experimental/
      directories.
  • Changes in config and build system

    • Update minimum required versions of GCC (>= 10) and CLANG (>=5), as
      a consequence of always building SVE on AArch64.
    • Updates in config options, eg. removing WANT_SIMD_TESTS and
      WANT_SVE_MATH.
  • Changes in math/ subdirectory

    • Provide vector annotations to allow auto-vectorisation to our
      mathlib provided that -ffast-math is enabled and mathlib.h is
      included.
    • Many codegen and performance improvement in vector routines. Fixing
      most regressions that occurred between GCC 13 and 14.
      Improvement in memory access, reduction of spills, and better usage
      of instruction set.
    • Add vector variants for standard and non-standard routines:
      • C99: modf.
      • C23: tanpi.
      • other: sincospi.
    • Fix signature of vector sincos.
    • Fix tests with MPFR.
    • Allow building, testing and benchmarking scalar math routines on
      macOS and Windows.
  • Changes in string/ subdirectory

    • Fix 32-bit Arm build.
    • Improve string benchmarks.
    • Add support for MOPS memcpy/memmove/memset.
    • Improved memset performance.
    • Add new SVE memset implementation.
    • Remove ILP32 support.
  • Changes in networking/ subdirectory

    • Fix make install. Library and header might need renaming in the
      future to be consistent with other components.

Full Changelog: v24.05...v25.01