Dear users: Your feedback from building and using the library in a wide variety of environments is what allows me to make safer and more portable releases. Please email me or post an issue if you notice a bug or unexpected behavior.
Changes since v6.1.0:
Features
- #171 Now supporting the long double specifier and long double input arguments - but not yet using long doubles internally.
Library behavior control/options
- #84 Can now decide whether the library uses
double
orfloat
for its own internal representation of floating-point values - using theUSE_DOUBLE_INTERNALLY
- #141, #146 Changed the build options regarding C-library-printf-functions aliasing: We now have a single CMake option,
ALIAS_STANDARD_FUNCTION_NAMES
, which can one of three values:NONE
(default),SOFT
orHARD
. And this is consistently respected.
Bug fixes
- #155
printf("%# 01.1g, 9.8)"
now produces correct number of zeros (but still incorrect) - #153 Fixed error in banker's rounding logic used when separating the integral and fractional components of a floating-point value
- #149 Better (and faster) handling of NULL output gadgets
Build configuration
- #174 Now utilizing the standard
BUILD_SHARED_LIBS
variable to control whether the library is built statically - #166 Now installing a
printf-config.cmake
so thatfind_package(printf)
works.
Compatibility
- #168 Now supporting the case of
size_t
andptrdiff_t
being of smaller size thanlong
(e.g. for the msp430-elf-gcc target) - #167 Avoiding clang compiler warnings about
-Wmaybe-initialized
- #123 Avoiding yet another spurious GCC warning about an uninitialized variable
Other changes
- Added testcase for the correct behavior of
printf("%# 01.1g",, 9.8)
- which is failing at the moment (this is bug #156 , which has not yet been fixed). - #161 Add a CodeQL action for some kind of security analysis, although frankly I haven't figured out how to use the results.
- #154 Renamed
rounding_threshold
->one_half
Caveats
- Still no special handling for denormals.