Skip to content

Version 0.6.2: Partial long double support, various bug fixes

Latest
Compare
Choose a tag to compare
@eyalroz eyalroz released this 10 Nov 18:03

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 or float for its own internal representation of floating-point values - using the USE_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 or HARD. 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 that find_package(printf) works.

Compatibility

  • #168 Now supporting the case of size_t and ptrdiff_t being of smaller size than long (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.