- 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.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
- Update to version 6.2.0
* Improved error reporting when trying to format an object of
a non-formattable type:
* Reduced library size by ~10%.
* Always print decimal point if # is specified (#1476, #1498):
* Implemented the 'L' specifier for locale-specific numeric
formatting to improve compatibility with std::format. The 'n'
specifier is now deprecated and will be removed in the next
major release.
* Moved OS-specific APIs such as windows_error from
fmt/format.h to fmt/os.h. You can define
FMT_DEPRECATED_INCLUDE_OS to automatically include fmt/os.h from
fmt/format.h for compatibility but this will be disabled in the
next major release.
* Added precision overflow detection in floating-point
formatting.
* Implemented detection of invalid use of fmt::arg.
* Used type_identity to block unnecessary template argument
deduction.
* Improved UTF-8 handling (#1109):
* Added experimental dynamic argument storage (#1170, #1584):
* Made fmt::join accept initializer_list (#1591).
* Fixed handling of empty tuples (#1588).
* Fixed handling of output iterators in format_to_n (#1506).
* Fixed formatting of std::chrono::duration types to wide
output (#1533).
* Added const begin and end overload to buffers (#1553).
* Added the ability to disable floating-point formatting via
FMT_USE_FLOAT, FMT_USE_DOUBLE and FMT_USE_LONG_DOUBLE macros for
extremely memory-constrained embedded system (#1590).
* Made FMT_STRING work with constexpr string_view (#1589).
* Implemented a minor optimization in the format string parser
(#1560).
* Improved attribute detection (#1469, #1475, #1576).
* Improved documentation (#1481, #1523).
* Fixed symbol visibility on Linux when compiling with
-fvisibility=hidden (#1535).
* Implemented various build configuration fixes and
improvements (#1264, #1460, #1534, #1536, #1545, #1546, #1566,
#1582, #1597, #1598).
* Fixed various warnings and compilation issues
- Dropped Group tag
OBS-URL: https://build.opensuse.org/request/show/791803
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=17
- Update to version 5.3.0:
* Introduced experimental chrono formatting support
* Added experimental support for emphasis
(bold, italic, underline, strikethrough), colored output to a
file stream, and improved colored formatting API
* Added support for 4-bit terminal colors
* Made std::string_view work as a format string
* Added wide string support to compile-time format string checks
* Made colored print functions work with wide strings
* Introduced experimental Unicode support
* Removed undocumented basic_fixed_buffer which has been
superseded by the iterator-based API
* Disallowed repeated leading zeros in an argument ID
* Deprecated fmt::visit, parse_context, and wparse_context.
Use fmt::visit_format_arg, format_parse_context, and
wformat_parse_context instead.
- Removed upstream merged fix-fmt_pc.patch
OBS-URL: https://build.opensuse.org/request/show/665005
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/fmt?expand=0&rev=5