Skip to content

Version 6.3.0: C90 compatibility, PlatformIO support, minor fixes & tweaks

Latest

Choose a tag to compare

@eyalroz eyalroz released this 13 Sep 09:41

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.2.0:

Bug fixes

  • #196 Some double-precision operations still remained - by mistake - even when PRINTF_USE_DOUBLE_INTERNALLY was false. Those are now gone.
  • #193 The print_config.h file - which had been only applied to the compile library code - can now be used with the header printf.h, and is installed for your usage convenience (as opposed to having to specify some individual preprocessor macros separately). Of course, you can forego its use, it is strictly optional.
  • #153 "Banker's rounding" logic was not exactly correct.
  • #156 Now accounting for component roll-over effect on exponent when deciding whether to revert from exponent-mode (1.23e04) to decimal-only-mode (12300).
  • #183 Now properly parsing negative values for precision (although, of course, such values are ignored eventually) rather than balking on them during parsing.

Build configuration

  • #198 CMakeLists.txt files now specify a CMake compatibility range, rather than just a minimum version (and their minimum is now uniform).
  • #189 Now setting the VERSION and SOVERSION CMake variables (for the case of someone checking the shared library version after install, or installing multiple versions).

Other changes

  • #195 The library is now complaint C90, rather than C99 code. Yes, it is a bit more cumbersome - but not by much (mostly - variables defined before their first use, and comments take a few more lines) - but the compatibility benefit with arcane platforms is worth it :-)
  • #191 Support for use with PlatformIO via an appropriate JSON meta-data file.

Caveats

  • Still failing to produce the correct output for printf("%# 01.1g", 9.8) (this is bug #156).
  • Still no special handling for denormals.