Skip to content

Latest commit

 

History

History
5255 lines (4033 loc) · 207 KB

ChangeLog.rst

File metadata and controls

5255 lines (4033 loc) · 207 KB

9.1.0 - 2022-08-27

9.0.0 - 2022-07-04

8.1.1 - 2022-01-06

8.1.0 - 2022-01-02

8.0.1 - 2021-07-02

8.0.0 - 2021-06-21

7.1.3 - 2020-11-24

  • Fixed handling of buffer boundaries in format_to_n (#1996, #2029).
  • Fixed linkage errors when linking with a shared library (#2011).
  • Reintroduced ostream support to range formatters (#2014).
  • Worked around an issue with mixing std versions in gcc (#2017).

7.1.2 - 2020-11-04

  • Fixed floating point formatting with large precision (#1976).

7.1.1 - 2020-11-01

  • Fixed ABI compatibility with 7.0.x (#1961).
  • Added the FMT_ARM_ABI_COMPATIBILITY macro to work around ABI incompatibility between GCC and Clang on ARM (#1919).
  • Worked around a SFINAE bug in GCC 8 (#1957).
  • Fixed linkage errors when building with GCC's LTO (#1955).
  • Fixed a compilation error when building without __builtin_clz or equivalent (#1968). Thanks @tohammer (Tobias Hammer).
  • Fixed a sign conversion warning (#1964). Thanks @OptoCloud.

7.1.0 - 2020-10-25

7.0.3 - 2020-08-06

  • Worked around broken numeric_limits for 128-bit integers (#1787).
  • Added error reporting on missing named arguments (#1796).
  • Stopped using 128-bit integers with clang-cl (#1800). Thanks @Kingcom.
  • Fixed issues in locale-specific integer formatting (#1782, #1801).

7.0.2 - 2020-07-29

  • Worked around broken numeric_limits for 128-bit integers (#1725).
  • Fixed compatibility with CMake 3.4 (#1779).
  • Fixed handling of digit separators in locale-specific formatting (#1782).

7.0.1 - 2020-07-07

  • Updated the inline version namespace name.
  • Worked around a gcc bug in mangling of alias templates (#1753).
  • Fixed a linkage error on Windows (#1757). Thanks @Kurkin (Dmitry Kurkin).
  • Fixed minor issues with the documentation.

7.0.0 - 2020-07-05

6.2.1 - 2020-05-09

  • Fixed ostream support in sprintf (#1631).
  • Fixed type detection when using implicit conversion to string_view and ostream operator<< inconsistently (#1662).

6.2.0 - 2020-04-05

6.1.2 - 2019-12-11

6.1.1 - 2019-12-04

6.1.0 - 2019-12-01

6.0.0 - 2019-08-26

5.3.0 - 2018-12-28

5.2.1 - 2018-09-21

5.2.0 - 2018-09-13

5.1.0 - 2018-07-05

5.0.0 - 2018-05-21

4.1.0 - 2017-12-20

4.0.0 - 2017-06-27

3.0.2 - 2017-06-14

3.0.1 - 2016-11-01

3.0.0 - 2016-05-07

2.1.1 - 2016-04-11

  • The install location for generated CMake files is now configurable via the FMT_CMAKE_DIR CMake variable (#299). Thanks to @niosHD.
  • Documentation fixes (#252).

2.1.0 - 2016-03-21

  • Project layout and build system improvements (#267):

    • The code have been moved to the cppformat directory. Including format.h from the top-level directory is deprecated but works via a proxy header which will be removed in the next major version.
    • C++ Format CMake targets now have proper interface definitions.
    • Installed version of the library now supports the header-only configuration.
    • Targets doc, install, and test are now disabled if C++ Format is included as a CMake subproject. They can be enabled by setting FMT_DOC, FMT_INSTALL, and FMT_TEST in the parent project.

    Thanks to @niosHD.

2.0.1 - 2016-03-13

2.0.0 - 2015-12-01

General

Optimization

  • Made formatting of user-defined types more efficient with a custom stream buffer (#92, #230). Thanks to @NotImplemented.
  • Further improved performance of fmt::Writer on integer formatting and fixed a minor regression. Now it is ~7% faster than karma::generate on Karma's benchmark (#186).
  • [Breaking] Reduced compiled code size (#143, #149).

Distribution

Documentation

Fixes

1.1.0 - 2015-03-06

1.0.0 - 2015-02-05

0.12.0 - 2014-10-25

  • [Breaking] Improved separation between formatting and buffer management. Writer is now a base class that cannot be instantiated directly. The new MemoryWriter class implements the default buffer management with small allocations done on stack. So fmt::Writer should be replaced with fmt::MemoryWriter in variable declarations.

    Old code:

    New code:

    If you pass fmt::Writer by reference, you can continue to do so:

    This doesn't affect the formatting API.

  • Support for custom memory allocators (#69)
  • Formatting functions now accept signed char and unsigned char strings as arguments (#73):

  • Reduced code bloat. According to the new benchmark results, cppformat is close to printf and by the order of magnitude better than Boost Format in terms of compiled code size.
  • Improved appearance of the documentation on mobile by using the Sphinx Bootstrap theme:

    Old

    New

0.11.0 - 2014-08-21

0.10.0 - 2014-07-01

Improved API

Other Changes

0.9.0 - 2014-05-13

  • More efficient implementation of variadic formatting functions.
  • Writer::Format now has a variadic overload:

  • For efficiency and consistency with other overloads, variadic overload of the Format function now returns Writer instead of std::string. Use the str function to convert it to std::string:

  • Replaced formatter actions with output sinks: NoAction -> NullSink, Write -> FileSink, ColorWriter -> ANSITerminalSink. This improves naming consistency and shouldn't affect client code unless these classes are used directly which should be rarely needed.
  • Added ThrowSystemError function that formats a message and throws SystemError containing the formatted message and system-specific error description. For example, the following code

    will throw SystemError exception with description "Failed to open file '<filename>': No such file or directory" if file doesn't exist.

  • Support for AppVeyor continuous integration platform.
  • Format now throws SystemError in case of I/O errors.
  • Improve test infrastructure. Print functions are now tested by redirecting the output to a pipe.

0.8.0 - 2014-04-14

  • Initial release