Version 1.8.0 includes a new logging environment, macros for simplified
argument parsing, enhancements for the CMake build
system, static and shared libraries, improved packaging, and increased test
coverage.
- logging: introduced embedded logging functionality
- supports global and custom logs with minimal computational overhead
- selectable level at run-time to increase/decrease verbosity as needed
- support for logging to files
- color output for enhanced visibility (optionally disabled)
- compile time configurations for enhanced customization
- autotest
- refactored testing infrastructure to include test-specific metadata,
estimated 'cost' (execution time), description, and keywords - overhauled all tests to use new harness; tests now thread-safe and
statically defined - increased testing: 1,300+ tests, 716,000+ checks, covering 82% of entire
project
- refactored testing infrastructure to include test-specific metadata,
- build
- performed a static memory analysis test to substantially reduce memory
used on the stack in favor of dynamically allocating it on the stack;
improves stability for multi-threaded processing - introduced new argument parsing header to simplify creating variables,
parsing command-line options, printing help, and validating results;
refactored examples and removed over 2,000 lines of redundant code. - added CMake rules to create exportable interface, option for building
shared vs. static library, and simplified directory inclusion
(thanks @burnbot-alt) - fixed annoying deprecation warnings (thanks @AHSauge and @oe1rsa)
- added generated pkg-config file
- added support for building either/both static and shared libraries
(thanks @noonafter) - adding separate option to find SIMD vs. use it with explicit options
- cleaned up descriptions for most interfaces in header file
- removed gentab (generated tables) from build environment; added
pre-generated source to version control - fixed cmake x86 SIMD detection (thanks @stefantalpalaru)
- fixed many typos via codespell (thanks @luzpaz)
- performed a static memory analysis test to substantially reduce memory
- core
- new module to include core functionality to liquid-dsp including logging
and error-handling - error-handling macros moved to global header to allow global use
- new module to include core functionality to liquid-dsp including logging
- fft
- asgram: adding option for auto-scaling output
- filter
- rresamp: fixed aliasing issue with default operation (thanks @xerpi
and @MatiasLopezING) - symsync: added methods to explicitly get/set rate and del values
(thanks @brian-armstrong) - firdespm: devising halfband filter design with desired stop band
- firfilt: fix recreate() storing coefficients in reverse order
(thanks @deekshaNVIDIA)
- rresamp: fixed aliasing issue with default operation (thanks @xerpi
- framing
- fskframe: refactored object to allow for dynamically-sized payload, but
removed ability to specify CRC and FEC for now - added ability to initialize qdsync on cpfsk (thanks @asazernik)
- framesync64: adding option to set detection range
- qdetector: improved reliability, speed, interface
- fskframe: refactored object to allow for dynamically-sized payload, but
- vector
- added more SIMD methods for AVX, NEON extensions
- added more benchmarks to identify areas for speed improvement