- Update to version 8.1.0
* Optimized chrono formatting.
+ Processing of some specifiers such as %z and %Y is now up
to 10-20 times faster, for example on GCC 11 with
libstdc++.
* Implemented subsecond formatting for chrono durations.
* Fixed handling of precision 0 when formatting chrono
durations.
* Fixed an overflow on invalid inputs in the tm formatter.
* Added fmt::group_digits that formats integers with a
non-localized digit separator (comma) for groups of three
digits.
* Added support for faint, conceal, reverse and blink text
styles.
* Added experimental support for compile-time floating point
formatting.
* Added UDL-based named argument support to compile-time
format string checks.
* Implemented escaping of string range elements.
* Switched to JSON-like representation of maps and sets for
consistency with Python's str.format.
* Extended fmt::join to support C++20-only ranges.
* Optimized handling of non-const-iterable ranges and
implemented initial support for non-const-formattable types.
* Disabled implicit conversions of scoped enums to integers
that was accidentally introduced in earlier versions.
* Deprecated implicit conversion of [const] signed char* and
[const] unsigned char* to C strings.
* Deprecated _format, a legacy UDL-based format API.
* Marked format, formatted_size and to_string as [[nodiscard]].
* Added missing diagnostic when trying to format function and
member pointers as well as objects convertible to pointers
which is explicitly disallowed.
* Optimized writing to a contiguous buffer with format_to_n.
* Optimized writing to non-char buffers.
* Decimal point is now localized when using the L specifier.
* Improved floating point formatter implementation.
* Fixed handling of very large precision in fixed format.
* Made a table of cached powers used in FP formatting static.
* Resolved a lookup ambiguity with C++20 format-related
functions due to ADL.
* Removed unnecessary inline namespace qualification.
* Implemented argument forwarding in format_to_n.
* Fixed handling of implicit conversions in fmt::to_string and
format string compilation.
* Changed the default access mode of files created by
fmt::output_file to -rw-r--r-- for consistency with fopen.
* Make fmt::ostream::flush public.
* Improved C++14/17 attribute detection.
* Improved documentation.
* Improved fuzzers and added a fuzzer for chrono timepoint
formatting.
* Added the FMT_SYSTEM_HEADERS CMake option setting which
marks {fmt}'s headers as system. It can be used to suppress
warnings.
* Added the Bazel build system support.
* Improved build configuration and tests.
* Fixed various warnings and compilation issues.
OBS-URL: https://build.opensuse.org/request/show/943557
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=42
- Update to version 8.0.1
* Fixed the version number in the inline namespace.
* Added a missing presentation type check for std::string.
* Fixed a linkage error when mixing code built with clang and
gcc.
* Fixed documentation issues.
* Removed dead code in FP formatter.
* Fixed various warnings and compilation issues.
- Update to version 8.0.0
* Enabled compile-time format string check by default.
* Added compile-time formatting.
* Optimized handling of format specifiers during format string
compilation.
* Added the ``_cf`` user-defined literal to represent a
compiled format string. It can be used instead of the
``FMT_COMPILE`` macro.
* Format string compilation now requires ``format`` functions
of ``formatter`` specializations for user-defined types to
be ``const``.
* Added UDL-based named argument support to format string
compilation.
* Added format string compilation support to ``fmt::print``.
* Added initial support for compiling {fmt} as a C++20 module.
* Made symbols private by default reducing shared library size
* Optimized includes making the result of preprocessing
``fmt/format.h``.
* Added support of ranges with non-const ``begin`` / ``end``
* Added support of ``std::byte`` and other formattable types
to ``fmt::join``.
* Implemented the default format for
``std::chrono::system_clock``.
* Made more chrono specifiers locale independent by default.
Use the ``'L'`` specifier to get localized formatting.
* Improved locale handling in chrono formatting.
* Deprecated ``fmt/locale.h`` moving the formatting functions
that take a locale to ``fmt/format.h`` (``char``) and
``fmt/xchar`` (other overloads). This doesn't introduce a
dependency on ``<locale>`` so there is virtually no compile
time effect.
* Made parameter order in ``vformat_to`` consistent with
``format_to``.
* Added support for time points with arbitrary durations.
* Formatting floating-point numbers no longer produces
trailing zeros by default.
for consistency with ``std::format``.
* Dropped a limit on the number of elements in a range and
replaced ``{}`` with ``[]`` as range delimiters for
consistency with Python's ``str.format``.
* The ``'L'`` specifier for locale-specific numeric formatting
can now be combined with presentation specifiers as in
``std::format``.
* Made the ``0`` specifier ignored for infinity and NaN.
* Made the hexfloat formatting use the right alignment by
default.
* Removed the deprecated numeric alignment (``'='``). Use the
``'0'`` specifier instead.
* Removed the deprecated ``fmt/posix.h`` header that has been
replaced with ``fmt/os.h``.
* Removed the deprecated ``format_to_n_context``,
``format_to_n_args`` and ``make_format_to_n_args``. They
have been replaced with ``format_context``, ``format_args`
and ``make_format_args`` respectively.
* Moved ``wchar_t``-specific functions and types to
``fmt/wchar.h``. You can define
``FMT_DEPRECATED_INCLUDE_WCHAR`` to automatically include
``fmt/wchar.h`` from ``fmt/format.h`` but this will be
disabled in the next major release.
* Fixed handling of the ``'+'`` specifier in localized
formatting.
* Added support for the ``'s'`` format specifier that gives
textual representation of ``bool``.
* Made ``fmt::ptr`` work with function pointers.
* Fixed ``fmt::formatted_size`` with format string compilation
* Fixed handling of empty format strings during format string
compilation.
* Fixed handling of enums in ``fmt::to_string``.
* Improved width computation.
* The experimental fast output stream (``fmt::ostream``) is
now truncated by default for consistency with ``fopen``.
* Fixed moving of ``fmt::ostream`` that holds buffered data
* Replaced the ``fmt::system_error`` exception with a function
of the same name that constructs ``std::system_error``.
* Replaced the ``fmt::windows_error`` exception with a
function of the same name that constructs
``std::system_error`` with the category returned by
``fmt::system_category()``.
* Replaced ``fmt::error_code`` with ``std::error_code`` and
made it formattable.
* Added speech synthesis support.
* Made ``format_to`` work with a memory buffer that has a
custom allocator.
* Added ``Allocator::max_size`` support to
``basic_memory_buffer``.
* Added wide string support to ``fmt::join``
* Made iterators passed to ``formatter`` specializations via a
format context satisfy C++20 ``std::output_iterator``
requirements.
* Optimized the ``printf`` implementation.
* Improved detection of ``constexpr`` ``char_traits``.
* Fixed exception propagation from iterators.
* Improved ``strftime`` error handling.
* Stopped using deprecated GCC UDL template extension.
* Added ``fmt/args.h`` to the install target.
* Error messages are now passed to assert when exceptions are
disabled.
* Added the ``FMT_MASTER_PROJECT`` CMake option to control
build and install targets when {fmt} is included via
``add_subdirectory``.
* Improved build configuration.
* Fixed various warnings and compilation issues.
* Improved documentation.
* Continuous integration and test improvements.
- Bump soversion to 8
OBS-URL: https://build.opensuse.org/request/show/903803
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fmt?expand=0&rev=16
- Update to version 8.0.0
* Enabled compile-time format string check by default.
* Added compile-time formatting.
* Optimized handling of format specifiers during format string
compilation.
* Added the ``_cf`` user-defined literal to represent a
compiled format string. It can be used instead of the
``FMT_COMPILE`` macro.
* Format string compilation now requires ``format`` functions
of ``formatter`` specializations for user-defined types to
be ``const``.
* Added UDL-based named argument support to format string
compilation.
* Added format string compilation support to ``fmt::print``.
* Added initial support for compiling {fmt} as a C++20 module.
* Made symbols private by default reducing shared library size
* Optimized includes making the result of preprocessing
``fmt/format.h``.
* Added support of ranges with non-const ``begin`` / ``end``
* Added support of ``std::byte`` and other formattable types
to ``fmt::join``.
* Implemented the default format for
``std::chrono::system_clock``.
* Made more chrono specifiers locale independent by default.
Use the ``'L'`` specifier to get localized formatting.
* Improved locale handling in chrono formatting.
* Deprecated ``fmt/locale.h`` moving the formatting functions
that take a locale to ``fmt/format.h`` (``char``) and
``fmt/xchar`` (other overloads). This doesn't introduce a
dependency on ``<locale>`` so there is virtually no compile
time effect.
* Made parameter order in ``vformat_to`` consistent with
``format_to``.
* Added support for time points with arbitrary durations.
* Formatting floating-point numbers no longer produces
trailing zeros by default.
for consistency with ``std::format``.
* Dropped a limit on the number of elements in a range and
replaced ``{}`` with ``[]`` as range delimiters for
consistency with Python's ``str.format``.
* The ``'L'`` specifier for locale-specific numeric formatting
can now be combined with presentation specifiers as in
``std::format``.
* Made the ``0`` specifier ignored for infinity and NaN.
* Made the hexfloat formatting use the right alignment by
default.
* Removed the deprecated numeric alignment (``'='``). Use the
``'0'`` specifier instead.
* Removed the deprecated ``fmt/posix.h`` header that has been
replaced with ``fmt/os.h``.
* Removed the deprecated ``format_to_n_context``,
``format_to_n_args`` and ``make_format_to_n_args``. They
have been replaced with ``format_context``, ``format_args`
and ``make_format_args`` respectively.
* Moved ``wchar_t``-specific functions and types to
``fmt/wchar.h``. You can define
``FMT_DEPRECATED_INCLUDE_WCHAR`` to automatically include
``fmt/wchar.h`` from ``fmt/format.h`` but this will be
disabled in the next major release.
* Fixed handling of the ``'+'`` specifier in localized
formatting.
* Added support for the ``'s'`` format specifier that gives
textual representation of ``bool``.
* Made ``fmt::ptr`` work with function pointers.
* Fixed ``fmt::formatted_size`` with format string compilation
* Fixed handling of empty format strings during format string
compilation.
* Fixed handling of enums in ``fmt::to_string``.
* Improved width computation.
* The experimental fast output stream (``fmt::ostream``) is
now truncated by default for consistency with ``fopen``.
* Fixed moving of ``fmt::ostream`` that holds buffered data
* Replaced the ``fmt::system_error`` exception with a function
of the same name that constructs ``std::system_error``.
* Replaced the ``fmt::windows_error`` exception with a
function of the same name that constructs
``std::system_error`` with the category returned by
``fmt::system_category()``.
* Replaced ``fmt::error_code`` with ``std::error_code`` and
made it formattable.
* Added speech synthesis support.
* Made ``format_to`` work with a memory buffer that has a
custom allocator.
* Added ``Allocator::max_size`` support to
``basic_memory_buffer``.
* Added wide string support to ``fmt::join``
* Made iterators passed to ``formatter`` specializations via a
format context satisfy C++20 ``std::output_iterator``
requirements.
* Optimized the ``printf`` implementation.
* Improved detection of ``constexpr`` ``char_traits``.
* Fixed exception propagation from iterators.
* Improved ``strftime`` error handling.
* Stopped using deprecated GCC UDL template extension.
* Added ``fmt/args.h`` to the install target.
* Error messages are now passed to assert when exceptions are
disabled.
* Added the ``FMT_MASTER_PROJECT`` CMake option to control
build and install targets when {fmt} is included via
``add_subdirectory``.
* Improved build configuration.
* Fixed various warnings and compilation issues.
* Improved documentation.
* Continuous integration and test improvements.
- Bump soversion to 8
OBS-URL: https://build.opensuse.org/request/show/901190
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=40
- Update to version 7.1.2
* Fixed floating point formatting with large precision
- Update to version 7.1.1
* Fixed ABI compatibility with 7.0.x
* Added the FMT_ARM_ABI_COMPATIBILITY macro to work around
ABI incompatibility between GCC and Clang on ARM
* Worked around a SFINAE bug in GCC 8
* Fixed linkage errors when building with GCC's LTO
* Fixed a compilation error when building without
__builtin_clz or equivalent
* Fixed a sign conversion warning
- Dropped fmt-7.1.0-LTO.patch (merged upstream)
OBS-URL: https://build.opensuse.org/request/show/846063
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fmt?expand=0&rev=14
- Update to version 7.1.1
* Fixed ABI compatibility with 7.0.x
* Added the FMT_ARM_ABI_COMPATIBILITY macro to work around
ABI incompatibility between GCC and Clang on ARM
* Worked around a SFINAE bug in GCC 8
* Fixed linkage errors when building with GCC's LTO
* Fixed a compilation error when building without
__builtin_clz or equivalent
* Fixed a sign conversion warning
- Dropped fmt-7.1.0-LTO.patch (merged upstream)
OBS-URL: https://build.opensuse.org/request/show/845481
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=35
- Update to version 7.1.0
* Switched from Grisu3 to Dragonbox for the default
floating-point formatting which gives the shortest decimal
representation with round-trip guarantee and correct rounding.
This makes {fmt} up to 20-30x faster than common
implementations of std::ostringstream and sprintf on
dtoa-benchmark and faster than double-conversion and Ryū. It
is possible to get even better performance at the cost of
larger binary size by compiling with the
FMT_USE_FULL_CACHE_DRAGONBOX macro set to 1.
* Added an experimental unsynchronized file output API which,
together with format string compilation can give 5-9 times
speed up compared to fprintf on common platforms.
* Added a formatter for std::chrono::time_point<system_clock>
* Added support for ranges with non-const begin/end to fmt::join
* Added a memory_buffer::append overload that takes a range.
* Improved handling of single code units in FMT_COMPILE.
* Added dynamic width support to format string compilation.
* Improved error reporting for unformattable types: now you'll
get the type name directly in the error message instead of
the note.
* Added the make_args_checked function template that allows
you to write formatting functions with compile-time format
string checks and avoid binary code bloat.
* Replaced snprintf fallback with a faster internal IEEE 754
float and double formatter for arbitrary precision.
* Made format_to_n and formatted_size part of the core API.
* Added fmt::format_to_n overload with format string
compilation.
* Added fmt::format_to overload that take text_style.
* Made the # specifier emit trailing zeros in addition to the
decimal point.
* Changed the default floating point format to not include .0
for consistency with std::format and std::to_chars. It is
possible to get the decimal point and trailing zero with the
# specifier.
* Fixed an issue with floating-point formatting that could
result in addition of a non-significant trailing zero in
rare cases e.g. 1.00e-34 instead of 1.0e-34.
* Made fmt::to_string fallback on ostream insertion operator
if the formatter specialization is not provided.
* Added support for the append mode to the experimental file
API and improved fcntl.h detection.
* Fixed handling of types that have both an implicit
conversion operator and an overloaded ostream insertion
operator.
* Fixed a slicing issue in an internal iterator type.
* Fixed an issue in locale-specific integer formatting.
* Fixed handling of exotic code unit types.
* Improved FMT_ALWAYS_INLINE.
* Improved documentation.
* Added the FMT_REDUCE_INT_INSTANTIATIONS CMake option that
reduces the binary code size at the cost of some integer
formatting performance. This can be useful for extremely
memory-constrained embedded systems.
* Added the FMT_USE_INLINE_NAMESPACES macro to control usage
of inline namespaces.
* Improved build configuration.
* Fixed various warnings and compilation issues.
- Add fmt-7.1.0-LTO.patch
OBS-URL: https://build.opensuse.org/request/show/844381
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=33
- Update to version 7.0.1
* Updated the inline version namespace name.
* Worked around a gcc bug in mangling of alias templates
* Fixed minor issues with the documentation.
- Update to version 7.0.0
* Reduced the library size.
* Added a simpler and more efficient format string compilation
API. The old fmt::compile API is now deprecated.
* Optimized integer formatting: format_to with format string
compilation and a stack-allocated buffer is now faster than
to_chars on both libc++ and libstdc++.
* Optimized handling of small format strings.
* Applied extern templates to improve compile times when using
the core API and fmt/format.h. It is still recommended to use
fmt/core.h instead of fmt/format.h but the compile time
difference is now smaller.
* Named arguments are now stored on stack (no dynamic memory
allocations) and the compiled code is more compact and
efficient.
* Implemented compile-time checks for dynamic width and
precision.
* Added sentinel support to fmt::join.
* Added support for named args, clear and reserve to
dynamic_format_arg_store.
* Added support for the 'c' format specifier to integral types
for compatibility with std::format.
* Replaced the 'n' format specifier with 'L' for compatibility
with std::format. The 'n' specifier can be enabled via the
FMT_DEPRECATED_N_SPECIFIER macro.
* The '=' format specifier is now disabled by default for
compatibility with std::format. It can be enabled via the
FMT_DEPRECATED_NUMERIC_ALIGN macro.
* Removed the following deprecated APIs:
+ FMT_STRING_ALIAS and fmt macros - replaced by
FMT_STRING
+ fmt::basic_string_view::char_type - replaced by
fmt::basic_string_view::value_type
+ convert_to_int
+ format_arg_store::types
+ *parse_context - replaced by *format_parse_context
+ FMT_DEPRECATED_INCLUDE_OS
+ FMT_DEPRECATED_PERCENT - incompatible with
std::format
+ *writer - replaced by compiled format API
* Renamed the internal namespace to detail. The former is
still provided as an alias if the FMT_USE_INTERNAL macro is
defined.
* Improved compatibility between fmt::printf with the standard
specs.
* Fixed handling of operator<< overloads that use copyfmt.
* Added the FMT_OS CMake option to control inclusion of
OS-specific APIs in the fmt target. This can be useful for
embedded platforms.
* Replaced FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION with the
FMT_FUZZ macro to prevent interferring with fuzzing of
projects using {fmt}.
* Fixed compatibility with emscripten.
* Improved documentation.
* Implemented various build configuration fixes and
improvements.
* Fixed various warnings and compilation issues.
- Drop fmt-6.2.1-fix_pkgconfig_paths.patch
- Bump sover to 7
OBS-URL: https://build.opensuse.org/request/show/819280
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fmt?expand=0&rev=10
- Update to version 7.0.0
* Reduced the library size.
* Added a simpler and more efficient format string compilation
API. The old fmt::compile API is now deprecated.
* Optimized integer formatting: format_to with format string
compilation and a stack-allocated buffer is now faster than
to_chars on both libc++ and libstdc++.
* Optimized handling of small format strings.
* Applied extern templates to improve compile times when using
the core API and fmt/format.h. It is still recommended to use
fmt/core.h instead of fmt/format.h but the compile time
difference is now smaller.
* Named arguments are now stored on stack (no dynamic memory
allocations) and the compiled code is more compact and
efficient.
* Implemented compile-time checks for dynamic width and
precision.
* Added sentinel support to fmt::join.
* Added support for named args, clear and reserve to
dynamic_format_arg_store.
* Added support for the 'c' format specifier to integral types
for compatibility with std::format.
* Replaced the 'n' format specifier with 'L' for compatibility
with std::format. The 'n' specifier can be enabled via the
FMT_DEPRECATED_N_SPECIFIER macro.
* The '=' format specifier is now disabled by default for
compatibility with std::format. It can be enabled via the
FMT_DEPRECATED_NUMERIC_ALIGN macro.
* Removed the following deprecated APIs:
+ FMT_STRING_ALIAS and fmt macros - replaced by
FMT_STRING
+ fmt::basic_string_view::char_type - replaced by
fmt::basic_string_view::value_type
+ convert_to_int
+ format_arg_store::types
+ *parse_context - replaced by *format_parse_context
+ FMT_DEPRECATED_INCLUDE_OS
+ FMT_DEPRECATED_PERCENT - incompatible with
std::format
+ *writer - replaced by compiled format API
* Renamed the internal namespace to detail. The former is
still provided as an alias if the FMT_USE_INTERNAL macro is
defined.
* Improved compatibility between fmt::printf with the standard
specs.
* Fixed handling of operator<< overloads that use copyfmt.
* Added the FMT_OS CMake option to control inclusion of
OS-specific APIs in the fmt target. This can be useful for
embedded platforms.
* Replaced FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION with the
FMT_FUZZ macro to prevent interferring with fuzzing of
projects using {fmt}.
* Fixed compatibility with emscripten.
* Improved documentation.
* Implemented various build configuration fixes and
improvements.
* Fixed various warnings and compilation issues.
- Drop fmt-6.2.1-fix_pkgconfig_paths.patch
- Bump sover to 7
OBS-URL: https://build.opensuse.org/request/show/819012
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=26