libpressio version 0.53.0
libpressio version 0.53.0
Major Changes
- POSSIBLE BREAKING CHANGE pressio_option can now hold
{u,}int{8,16,32,64}_t values and the return type of the pressio
option functions which returned an int now accept/return an int32_t.
This enables LibPressio to support more complex configurations types
without resorting to a user_data type or using a pressio_data object
where it isn't needed. Additionally, pressio_option_int32_type no
longer convert implicitly to double. This is because the previous
behavior was ambiguous depending on which compiler you used, and it
was contrary to the intended spirit of the functionality. implict
conversions were intended to never reduce precision the old
functionality could do that. The new definitions for the conversions
are based on the C++ standards definition of what a narrowing
conversion is. This means that one conversion which is safe on most
architectures and compilers (int32_t -> double) is not allowed at time
of writing since the standard considers all integral to floating_point
conversions to be narrowing. Some test cases were updated to match
the new behavior. Serializaton and printer routines were updated to
match. Corresponding stable C APIs were added.
Bug Fixes
- sz plugin now returns thread safety as a int32_t like every other
compressor. - explicitly made all returns of thread_safety int32_t rather than just
int. - removed unused arguments from the test code.
- LibPressio no longer adds -Werror by default to debug builds. This
caused trigger undesired build failures on old/buggy compilers. To
restore the old functionality, pass
-DLIBPRESSIO_TREAT_WARNINGS_AS_ERRORS=ON
to CMake