reedsolomon v0.0.4.0 Release Notes

Release Date: 2016-03-13 // about 8 years ago
  • Highlights since version 0.0.3.0:

    👍 SIMD support for ARM NEON and PowerPC AltiVec

    ⚡️ The Galois field multiplication code implemented in C to optimize these calculations compared to native Haskell functions used to provide a generic implementation, and SIMD implementations for Intel SSSE3, AVX and AVX2.

    The generic implementation was supposed to work on non-Intel platforms, but is significantly slower than the SIMD versions. This version of the library is the first to contain SIMD versions of the code for non-Intel platforms:

    • ARM NEON
    • ⚡️ ARM NEON, optimized for AArch64 using vqtbl1q_u8
    • PowerPC AltiVec
    • ⚡️ PowerPC AltiVec, optimized for POWER8 using vec_vsrd

    Note: The library is tested on these platforms only at the C level by running some tests using Qemu's platform emulation, which could not trigger certain bugs. If you want to use this library on a foreign platform, make sure to run the full (Haskell) test-suite on it.

    0️⃣ Examples are no longer built and installed by default

    🏗 When building the library (e.g. as a dependency of your application), the examples shipped with the library are no longer built and installed by default. Enable the Cabal examples flag to build and install them anyway.

    🔨 Extended configure checks and refactored C code

    🔨 The configure script has been extended, some bugs in it have been fixed, and the C code in cbits was refactored to make it simpler and more maintainable, and allow the C compiler to perform more optimizations.