Commit Graph

1453 Commits

Author SHA1 Message Date
Victor Zverovich
63e0c35412 Make dragonbox::to_decimal available in format.h 2020-09-27 07:27:44 -07:00
Victor Zverovich
762c33a964
Simplify windows handling (#1903) 2020-09-26 08:20:38 -07:00
Bernd Baumanns
253d63159f
Remove dependency on windows.h (#1900) 2020-09-26 07:03:16 -07:00
Victor Zverovich
c156093ffd Fix carry in fallback_format 2020-09-25 10:12:44 -07:00
moiwi
34179b3354
Update format.h (#1898) 2020-09-24 08:16:16 -07:00
Victor Zverovich
0651e4598b Minor tweaks to get_cached_power 2020-09-23 16:04:40 -07:00
Victor Zverovich
6c025520aa Test that max_k is correctly defined 2020-09-23 15:44:37 -07:00
Victor Zverovich
51f8d0cc21 Reuse log10_2_significand constant 2020-09-23 13:19:21 -07:00
Riccardo Ghetta (larix)
1305cbeb6f
Fix MSVC2019 error C2049 when compiling with /clr (#1897)
'fmt::v7': non-inline namespace cannot be reopened as inline
2020-09-23 09:55:41 -07:00
Victor Zverovich
2d4fde3a2e Don't emit trailing zero for consistency with std::format 2020-09-23 09:19:12 -07:00
Victor Zverovich
5fd89d50e4 Minor simplifications 2020-09-23 08:05:31 -07:00
Victor Zverovich
605ce5e429 Simplify divisible_by_power_of_2 2020-09-22 20:44:29 -07:00
Victor Zverovich
085171e7e6 Remove grisu_count_digits 2020-09-22 19:36:52 -07:00
Victor Zverovich
aa729bf25b Remove dead code 2020-09-22 16:58:02 -07:00
Victor Zverovich
aa2ddf9b86 Simplify Dragonbox integration 2020-09-22 16:20:40 -07:00
Victor Zverovich
c1654ce487 Simplify uint32_or_64_or_128_t definition 2020-09-22 15:08:37 -07:00
Victor Zverovich
33712dc07a Combine pragmas 2020-09-22 14:47:35 -07:00
Victor Zverovich
e5942ac9dd Tweak comments 2020-09-22 14:36:10 -07:00
Victor Zverovich
aae7a1338c Remove unused pragmas 2020-09-22 14:00:41 -07:00
jk-jeon
6bcde9aab2
https://github.com/fmtlib/fmt/pull/1882#issuecomment-696823912 (#1894) 2020-09-22 10:33:52 -07:00
Victor Zverovich
bb0db5e51e clang-format 2020-09-22 08:19:37 -07:00
Victor Zverovich
16410056bf Optimize copy_str for counting_iterator 2020-09-22 07:56:09 -07:00
mwinterb
2591ab91c3
MSVC optimizations for count_digits. (#1890)
Changed the clz implementations to use xor instead of subtraction so that when
count_digits "undoes" the BSR -> CLZ translation, the optimizer is more
willing to recognize the equivalence.
Changed the data array in bsr2log10 to static since otherwise MSVC generates
code to build the array every time the function is called.
2020-09-21 11:38:06 -07:00
jk-jeon
2e620ddbcd
Small improvements that should have zero to negligible impact on the runtime (#1887) 2020-09-20 09:34:44 -07:00
Victor Zverovich
2f7e08856b Disable range formatter if value type is not formattable (#1885) 2020-09-20 08:37:49 -07:00
rimathia
2696dc9273
add forgotten template argument to make_format_args which made some u… (#1877)
* add forgotten template argument to make_format_args which made some uses of FMT_COMPILE not work anymore after 54daa0864a, add more elaborate test cases to compile-test as regression tests

* fix old-style cast which gcc on travis thankfully doesn't accept anymore

* hopefully last forgotten (void*)
2020-09-20 06:51:11 -07:00
Victor Zverovich
0016da7ab3 Don't generate zeros and fix UB on huge precision 2020-09-19 16:01:43 -07:00
Victor Zverovich
ce3f76994a Merge intrinsic blocks 2020-09-19 07:54:45 -07:00
Junekey Jeon
3b6248f602 Change formatting 2020-09-19 07:23:41 -07:00
Junekey Jeon
2d9b1dd0ad Fix sign mismatch 2020-09-19 07:23:41 -07:00
Junekey Jeon
1f0600a23b Fix bug regarding FMT_SAFEBUFFERS 2020-09-19 07:23:41 -07:00
Junekey Jeon
2ecdbb986d Fix a bug in ctzll 2020-09-19 07:23:41 -07:00
Junekey Jeon
6f81ea151a Fix typo (and thus bug) 2020-09-19 07:23:41 -07:00
Junekey Jeon
0c8ffe9b0f Implement Dragonbox (first version) 2020-09-19 07:23:41 -07:00
jk-jeon
42699bf408
Fix msvc version of clz & clzll (#1880)
Change msvc version of clz & clzll to match __builtin_clz & _builtin_clzll
2020-09-18 11:07:01 -07:00
Axel Kohlmeyer
bc51a8df04
Disable fallthrough attributes for the Intel compilers on Linux and MacOS (#1879)
* Disable fallthrough attributes for the Intel compilers

On MacOS and Linux the Intel compilers may be identified as the
host compilers (Clang or GNU) but do not support the corresponding
compiler specific fallthrough attributes.

* Rearrange ifdef logic for excluding pre-C++17 fallthrough attributes

This puts Intel and PGI compilers into a separate group
and thus makes the intent and logic more obvious.
2020-09-18 09:57:00 -07:00
Jan Schwers
45da432d60 fix compiler warnings in public header files 2020-09-17 15:53:53 -07:00
jk-jeon
d55e61f120
Improve FMT_ALWAYS_INLINE (#1878)
1. FMT_ALWAYS_INLINE should imply inline; otherwise, there might be
   linkage problems
2. Add specialization for MSVC (__forceinline)
2020-09-17 15:21:17 -07:00
Victor Zverovich
7e6827521a Remove trailing zeros when using fallback formatter (#1873) 2020-09-17 08:16:21 -07:00
Victor Zverovich
1d696dc280 Handle exotic character types in compilation 2020-09-17 07:12:34 -07:00
Alexey Ochapov
f674434a67
Add format_to_n overload that accepts FMT_COMPILE (from #1767) (#1869)
* Add format_to_n overload that accepts FMT_COMPILE

* add FormatToNWithCompileMacro test into CompileTest

Co-authored-by: Dmitriy Kurkin <Dmitriy.Kurkin@itiviti.com>
2020-09-15 07:28:06 -07:00
Victor Zverovich
5b5a597198 Fix handling of wide alignment 2020-09-15 06:53:06 -07:00
Victor Zverovich
3813966497 Simplify fallback format 2020-09-13 11:27:34 -07:00
Victor Zverovich
dce8e49b4f Handle float in fallback formatter 2020-09-13 09:28:40 -07:00
Victor Zverovich
78b5944313 Spelling 2020-09-12 13:14:49 -07:00
Victor Zverovich
f233b56cdd Don't generate insignificant digits 2020-09-12 09:19:50 -07:00
Victor Zverovich
58a044be5d Use built-in FP formatter for any precision 2020-09-11 07:19:45 -07:00
Victor Zverovich
efe3694f15 Macro tweak and clang-format 2020-09-07 14:43:00 -07:00
Victor Zverovich
9f312fe87e Implement fallback FP formatting with given precision (#1526) 2020-09-07 09:34:30 -07:00
Victor Zverovich
86f0a7046e Fix formatting 2020-09-06 08:58:19 -07:00
Denis Blank
bff4d18efb Add color format_to overloads
* Fix variable size basic_memory_buffer colorization
* Fix an unused arguments warning on GCC that blocks the CI otherwise
* Ref #1842
* Ref #1593
2020-09-06 08:24:15 -07:00
Ivan Shynkarenka
f19b8885f2
Fixed a warning in mingw32/mingw64 (#1860) 2020-09-06 06:27:37 -07:00
Giovanni Cerretani
f8e00a084a
NOMINMAX not handled properly (#1855) 2020-09-03 09:45:47 -07:00
Victor Zverovich
6cccdc24bc Fix move constructor (#1844) 2020-09-01 08:48:56 -07:00
t-wiser
69902c1787
Allow use of <fcntl.h> in Linux when __has_include is not available (#1848) 2020-09-01 06:29:34 -07:00
t-wiser
1edd38b96e
Add append mode. (#1847) 2020-08-31 15:48:39 -07:00
Adam Burgess
f39e6fb617
Add formatters for chrono::time_point<system_clock> (#1837)
Add formatters for chrono::time_point and helper overloads for localtime/gmtime(time_point)
Fixes #1819
2020-08-28 07:41:38 -07:00
Victor Zverovich
77b627be20 Fix bogus MSVC warnings (#1825) 2020-08-26 12:33:54 -07:00
Alexander Lanin
c7e6d8afb0
Fix usage of override (#1836) 2020-08-23 11:01:46 -07:00
Victor Zverovich
92bff2fe2c Revert "Add missing includes"
This reverts commit 06895a7687.
2020-08-21 16:24:53 -07:00
Victor Zverovich
a0dcfbc57b Add ptr to docs 2020-08-21 06:54:05 -07:00
Alexey Ochapov
1651b2d433
Fix detail::write with fallback formatter (#1829)
* add support for fallback_formatter in detail::write

* add ToString test into OStreamTest

to check fmt::to_string() with class that has output stream operator

* add WithOstreamOperator test into CompileTest

to check fmt::format() with FMT_COMPILE() and class that has output stream operator

* use conditional_t inside detail::write instead of 2 overloads

* Revert "add WithOstreamOperator test into CompileTest"

* remove Context from template parameters in detail::write
2020-08-20 06:41:09 -07:00
Victor Zverovich
06895a7687 Add missing includes 2020-08-19 20:33:04 -07:00
Victor Zverovich
92a448a071 Apply clang-format 2020-08-19 10:42:22 -07:00
Barry Revzin
6be6544668
Fixing buffer_appender's ++ slicing (#1822)
* Fixing buffer_appender's ++ slicing.

* This test requires C++14.

* Removing string_view dependency.

* Simplifying test case.

* Adding message to static_assert
2020-08-18 12:37:56 -07:00
Greg Sjaardema
76e97dc4df
Eliminate shadowed variable warnings on intel (#1816)
The intel-19 compiler warns about hidden variables:
```
/s/dev/nightly/libraries/ioss/src/fmt/format.h(2689): warning #1599: declaration hides variable "begin" (declared at line 2668)
      FMT_CONSTEXPR void operator()(const Char* begin, const Char* end) {
                                                ^
          detected during:
            instantiation of "Context::iterator fmt::v7::vformat_to<ArgFormatter,Char,Context>(ArgFormatter::iterator, fmt::v7::basic_string_view<Char>, fmt::v7::basic_format_args<Context>, fmt::v7::detail::locale_ref) [with ArgFormatter=fmt::v7::detail::arg_formatter<fmt::v7::detail::buffer_appender<char>, char>, Char=char, Context=fmt::v7::format_context]" at line 3492
            instantiation of "fmt::v7::detail::buffer_appender<Char> fmt::v7::detail::vformat_to(fmt::v7::detail::buffer<Char> &, fmt::v7::basic_string_view<Char>, fmt::v7::basic_format_args<fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<fmt::v7::type_identity_t<Char>>, fmt::v7::type_identity_t<Char>>>) [with Char=char]" at line 1413 of "/s/dev/nightly/libraries/ioss/src/fmt/format-inl.h"

/s/dev/nightly/libraries/ioss/src/fmt/format.h(2689): warning #1599: declaration hides variable "end" (declared at line 2669)
      FMT_CONSTEXPR void operator()(const Char* begin, const Char* end) {
                                                                   ^
          detected during:
            instantiation of "Context::iterator fmt::v7::vformat_to<ArgFormatter,Char,Context>(ArgFormatter::iterator, fmt::v7::basic_string_view<Char>, fmt::v7::basic_format_args<Context>, fmt::v7::detail::locale_ref) [with ArgFormatter=fmt::v7::detail::arg_formatter<fmt::v7::detail::buffer_appender<char>, char>, Char=char, Context=fmt::v7::format_context]" at line 3492
            instantiation of "fmt::v7::detail::buffer_appender<Char> fmt::v7::detail::vformat_to(fmt::v7::detail::buffer<Char> &, fmt::v7::basic_string_view<Char>, fmt::v7::basic_format_args<fmt::v7::basic_format_context<fmt::v7::detail::buffer_appender<fmt::v7::type_identity_t<Char>>, fmt::v7::type_identity_t<Char>>>) [with Char=char]" at line 1413 of "/s/dev/nightly/libraries/ioss/src/fmt/format-inl.h"
```
Rename the second set of variables to `pbegin` and `pend` to eliminate warning.
2020-08-13 18:58:31 -07:00
Greg Sjaardema
e204df0e66
nvcc compiler should be EDG-based, but fails test (#1818)
Our nvcc compilers (10.1.243 and 9.2.X) do not define the correct value for `FMT_USE_UDL_TEMPLATE` and then end up with an error later on in the build.  Explicitly search for `__NVCC__` symbol not being defined.   Might want to instead use `FMT_NVCC` or some other check, but the raw `__EDG_VERSION__` check is not working correctly for nvcc.
2020-08-13 15:18:57 -07:00
medithe
1c8bb54703
small changes to reduce clang-9 warnings (#1808)
* include/fmt/format.h: int_writer: removed unnecessary iterator type re-declaration (prevents shadow-waringing in clang)

* include/fmt/format.h: int_writer: correctly cast signed integer to unsigned to prevent 'implicit conversion changes signedness'-warnings in clang.

Co-authored-by: Martin Wührer <martin.wuehrer@artech.at>
2020-08-13 11:56:03 -07:00
Seokjin Lee
4b69c78751
fix: warning C4100: unreferenced formal parameter (#1814)
Add [[maybe_unused]] to fix it.
2020-08-12 06:57:22 -07:00
n16h7hunt3r
fb0aeb8209
fix: disabled UDL templates for PGI (#1811) (#1812)
* fix: disabled UDL templates for PGI (#1811)

* fix: insert defined auround __PGI

Co-authored-by: n16h7hunt3r <n16h7hunt3r@nixos>
2020-08-11 15:27:27 -07:00
Victor Zverovich
54daa0864a Add dynamic width support to FMT_COMPILE (#1809) 2020-08-10 09:40:11 -07:00
Victor Zverovich
6fb7c6fb25 Workaround a bug in gcc10 (#1810) 2020-08-10 07:20:34 -07:00
Victor Zverovich
4fd95e4b4d Don't remove trailing zeros with # 2020-08-08 08:14:39 -07:00
Victor Zverovich
e06ae32294 Avoid warnings on functions with external linkage that don't have declarations 2020-08-08 07:58:13 -07:00
Victor Zverovich
7fc3d1f54c Add override to grow 2020-08-08 07:23:11 -07:00
Victor Zverovich
065889a593 Use correct capacity in iterator_buffer (#1807) 2020-08-08 07:01:21 -07:00
Barry Revzin
d0dd678693 Adding convenience append(range) 2020-08-08 06:33:46 -07:00
Victor Zverovich
c13f79e09e Merge release branch 2020-08-07 07:01:21 -07:00
Victor Zverovich
1ebc2f7cc6 Bump version 2020-08-06 07:41:04 -07:00
Victor Zverovich
0907c08ae5 Fix handling of default alignmment with locale (#1801) 2020-08-06 07:39:09 -07:00
Kingcom
37c8f4eaf3 Don't use 128 bit integers with clang-cl (#1800)
clang-cl currently has a long-standing bug that using 128 bit integers
generates references to symbols that are provided neither by its own nor
by the Microsoft runtime: https://bugs.llvm.org/show_bug.cgi?id=25305
2020-08-06 07:38:57 -07:00
Victor Zverovich
eaaaec9992 Workaround a bug in msvc 2020-08-06 07:38:51 -07:00
Victor Zverovich
ccf8561cb3 Workaround broken numeric_limites, part 2 (#1787) 2020-08-06 07:38:32 -07:00
Victor Zverovich
0cc73ebf79 Report error on missing named argument (#1796) 2020-08-06 07:38:18 -07:00
Victor Zverovich
33efc3c94f Fix handling of iterators in locale-specific formatting (#1782) 2020-08-06 07:38:08 -07:00
medithe
717b226b59
include/fmt/format.h: explicit cast to std::size_t for parameter to buffer.resize() in order to get rid of warning 'implicit conversion changes signedness:' in clang-8 (#1802)
Co-authored-by: Martin Wührer <martin.wuehrer@artech.at>
2020-08-05 09:37:10 -07:00
Victor Zverovich
2a69f56769 Tweak buffer size 2020-08-05 08:22:12 -07:00
Victor Zverovich
ea76933802 Simplify ostream 2020-08-04 20:11:43 -07:00
Victor Zverovich
5413713c95 Remove unused function 2020-08-04 19:08:06 -07:00
Victor Zverovich
57f462428d Increase the default buffer size 2020-08-04 08:19:19 -07:00
Victor Zverovich
e587adb4e9 Simplify count_digits 2020-08-03 15:45:48 -07:00
Victor Zverovich
279d698e1b Fix handling of default alignmment with locale (#1801) 2020-08-03 10:51:42 -07:00
Victor Zverovich
76cfb50b2d Test complex formatter 2020-08-03 10:05:18 -07:00
Victor Zverovich
208291205d Optimize count_digits 2020-08-02 07:58:36 -07:00
Victor Zverovich
8d9ab96736 Cut a few cycles from count_digits 2020-08-01 18:33:53 -07:00
Victor Zverovich
734344931f Simplify ostream_params 2020-08-01 18:33:53 -07:00
Victor Zverovich
7c4c5c79d2 Make buffer size configurable 2020-08-01 10:53:58 -07:00
Kingcom
f0b84da5ff
Don't use 128 bit integers with clang-cl (#1800)
clang-cl currently has a long-standing bug that using 128 bit integers
generates references to symbols that are provided neither by its own nor
by the Microsoft runtime: https://bugs.llvm.org/show_bug.cgi?id=25305
2020-07-30 17:21:35 -07:00
Victor Zverovich
a3dfd6f927 Workaround a bug in msvc 2020-07-30 11:13:54 -07:00
Victor Zverovich
51d05521e9 Workaround broken numeric_limites, part 2 (#1787) 2020-07-30 09:42:24 -07:00