From c04617c8d4e619a3d64c355cdbc314d45c2f19a9 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 06:24:15 -0700 Subject: [PATCH 01/17] Update ChangeLog.rst --- ChangeLog.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ChangeLog.rst b/ChangeLog.rst index 1b6dcf7c..d4d05ceb 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,6 +1,12 @@ 2.0.0 - TBD ----------- +* [Breaking] ``windows.h`` is now included with ``NOMINMAX`` unless + ``FMT_WIN_MINMAX`` is defined. This is done to prevent breaking code using + ``std::min`` and ``std::max`` and only affects the header-only configuration + (`#152 `_). + Thanks to `@DevO2012 `_. + * C++ Format is now available in `Debian `_ GNU/Linux (`stretch `_, `sid `_) and From 0ba89d256b14643405d572c91cabf7b8c737a0c9 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 06:28:51 -0700 Subject: [PATCH 02/17] Update ChangeLog.rst --- ChangeLog.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index d4d05ceb..454c13ba 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,6 +1,9 @@ 2.0.0 - TBD ----------- +* Added a workaround for broken implementation of variadic templates in MSVC2012 + (`#148 `_). + * [Breaking] ``windows.h`` is now included with ``NOMINMAX`` unless ``FMT_WIN_MINMAX`` is defined. This is done to prevent breaking code using ``std::min`` and ``std::max`` and only affects the header-only configuration @@ -97,14 +100,16 @@ * Implemented a workaround for a name lookup bug in MSVC2010 (`#188 `_). -* Fixed warnings in Clang and MSVC2013 - (`#158 `_, +* Fixed multiple warnings + (`#146 `_, + `#158 `_, `#163 `_ `#175 `_, `#190 `_, `#191 `_, `#194 `_). - Thanks to `@fmatthew5876 (Matthew Fioravante) `_, + Thanks to `@Naios `_, + `@fmatthew5876 (Matthew Fioravante) `_, `@LevskiWeng (Levski Weng) `_, `@rpopescu `_, `@gabime (Gabi Melman) `_ and From b3411bdeed290f1e4daae468f97d3b8f198064c2 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 06:44:51 -0700 Subject: [PATCH 03/17] Update ChangeLog.rst --- ChangeLog.rst | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index 454c13ba..9fb62497 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,6 +1,9 @@ 2.0.0 - TBD ----------- +* Fixed a compile error on MSVC with disabled exceptions + (`#144 `_). + * Added a workaround for broken implementation of variadic templates in MSVC2012 (`#148 `_). @@ -101,7 +104,9 @@ (`#188 `_). * Fixed multiple warnings - (`#146 `_, + (`#142 `_, + `#145 `_, + `#146 `_, `#158 `_, `#163 `_ `#175 `_, @@ -148,7 +153,7 @@ ``crtdbg.h`` when ``_CRTDBG_MAP_ALLOC`` is set (`#211 `_). -* Fixed an overload conflict in MSVC when ``/Zc:wchar_t-`` option is specified +* Fixed an overload conflict on MSVC when ``/Zc:wchar_t-`` option is specified (`#214 `_). Thanks to `@slavanap (Vyacheslav Napadovsky) `_. From 2ebdd49e96d597168a30fd0235ce0e94c3b6c85c Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 07:14:21 -0700 Subject: [PATCH 04/17] Update ChangeLog.rst --- ChangeLog.rst | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index 9fb62497..c28b2558 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,6 +1,11 @@ 2.0.0 - TBD ----------- +* The ``Buffer`` template is now part of the public API and can be used + to implement custom memory buffers + (`#140 `_). + Thanks to `@polyvertex (Jean-Charles Lefebvre) `_. + * Fixed a compile error on MSVC with disabled exceptions (`#144 `_). @@ -104,7 +109,8 @@ (`#188 `_). * Fixed multiple warnings - (`#142 `_, + (`#135 `_, + `#142 `_, `#145 `_, `#146 `_, `#158 `_, From c6a67b91dec1d36fc11efa75c0f3e06d6385c4e9 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 07:16:59 -0700 Subject: [PATCH 05/17] Update ChangeLog.rst --- ChangeLog.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ChangeLog.rst b/ChangeLog.rst index c28b2558..b68e9212 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,6 +1,9 @@ 2.0.0 - TBD ----------- +* Improved compatibility with old versions of MinGW + (`#132 `_). + * The ``Buffer`` template is now part of the public API and can be used to implement custom memory buffers (`#140 `_). From 587b4894ba6b0dcb19ebee1741ceba7acde10619 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 07:24:39 -0700 Subject: [PATCH 06/17] Update ChangeLog.rst --- ChangeLog.rst | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ChangeLog.rst b/ChangeLog.rst index b68e9212..5c6631da 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,6 +1,17 @@ 2.0.0 - TBD ----------- +* Fixed formatting of enums with numeric format specifiers in ``fmt::(s)printf`` + (`#131 `_, + `#139 `_):: + + .. code:: c++ + + enum { ANSWER = 42 }; + fmt::printf("%d", ANSWER); + + Thanks to `@Naios `_. + * Improved compatibility with old versions of MinGW (`#132 `_). From 4d3be75bcd2ce3352ae13678c17fdf03e1eb1cc6 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 07:24:54 -0700 Subject: [PATCH 07/17] Update ChangeLog.rst --- ChangeLog.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index 5c6631da..32ff5138 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -3,7 +3,7 @@ * Fixed formatting of enums with numeric format specifiers in ``fmt::(s)printf`` (`#131 `_, - `#139 `_):: + `#139 `_): .. code:: c++ From 6a93dda265ff2ae5bd1f189b507760e87eda18fa Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 07:28:47 -0700 Subject: [PATCH 08/17] Update ChangeLog.rst --- ChangeLog.rst | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index 32ff5138..53e3dde4 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -1,6 +1,11 @@ 2.0.0 - TBD ----------- +* Migrated from ReadTheDocs to GitHub Pages for better responsiveness + and reliability + (`#128 `_). + New documentation address is http://cppformat.github.io/. + * Fixed formatting of enums with numeric format specifiers in ``fmt::(s)printf`` (`#131 `_, `#139 `_): @@ -13,7 +18,9 @@ Thanks to `@Naios `_. * Improved compatibility with old versions of MinGW - (`#132 `_). + (`#129 `_, + `#132 `_). + Thanks to `@cstamford (Christopher Stamford) `_. * The ``Buffer`` template is now part of the public API and can be used to implement custom memory buffers From 17869454c215b4137e2846dfb7ae3efe49cea4fe Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 07:41:26 -0700 Subject: [PATCH 09/17] Update ChangeLog.rst --- ChangeLog.rst | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index 53e3dde4..13371da4 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -70,8 +70,11 @@ fmt::print("{:d}", true); // prints "1" -* Fixed documentation issues - (`#162 `_, +* Documentation fixes and improvements + (`#36 `_, + `#75 `_, + `#125 `_, + `#162 `_, `#165 `_, `#210 `_). From 09e288e55bf70cccb05e82757d592f91b856553e Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 08:24:31 -0700 Subject: [PATCH 10/17] Update ChangeLog.rst --- ChangeLog.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ChangeLog.rst b/ChangeLog.rst index 13371da4..66ab99e7 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -166,6 +166,18 @@ `Red Hat Bugzilla Bug 1260297 `_). Thanks to `@jackyf (Eugene V. Lyubimkin) `_ and Dave Johansen. +* [Experimental] User-defined literals for format and named arguments + (`#204 `_, + `#206 `_, + `#207 `_): + + .. code:: c++ + + using namespace fmt::literals; + fmt::print("The answer is {answer}.", "answer"_a=42); + + Thanks to `@dean0x7d (Dean Moldovan) `_. + * Added an option to disable use of IOStreams when ``FMT_USE_IOSTREAMS`` is defined as 0 before including ``format.h`` (`#205 `_, @@ -183,6 +195,10 @@ ``crtdbg.h`` when ``_CRTDBG_MAP_ALLOC`` is set (`#211 `_). +* Fixed shared library build on OS X + (`#212 `_). + Thanks to `@dean0x7d (Dean Moldovan) `_. + * Fixed an overload conflict on MSVC when ``/Zc:wchar_t-`` option is specified (`#214 `_). Thanks to `@slavanap (Vyacheslav Napadovsky) `_. From a4e3cf834b2a9889c9b1b434192d455ef427f852 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Thu, 29 Oct 2015 08:26:03 -0700 Subject: [PATCH 11/17] Update ChangeLog.rst --- ChangeLog.rst | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index 66ab99e7..70400205 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -6,7 +6,8 @@ (`#128 `_). New documentation address is http://cppformat.github.io/. -* Fixed formatting of enums with numeric format specifiers in ``fmt::(s)printf`` +* [Breaking] Fixed formatting of enums with numeric format specifiers in + ``fmt::(s)printf`` (`#131 `_, `#139 `_): @@ -22,7 +23,7 @@ `#132 `_). Thanks to `@cstamford (Christopher Stamford) `_. -* The ``Buffer`` template is now part of the public API and can be used +* [Breaking] The ``Buffer`` template is now part of the public API and can be used to implement custom memory buffers (`#140 `_). Thanks to `@polyvertex (Jean-Charles Lefebvre) `_. From 0bfa6bed4b9b5669cdb77ae41923e2eb035e5ee5 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Fri, 30 Oct 2015 06:20:13 -0700 Subject: [PATCH 12/17] Update ChangeLog.rst --- ChangeLog.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ChangeLog.rst b/ChangeLog.rst index 70400205..c8e78e55 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -151,6 +151,12 @@ `@gabime (Gabi Melman) `_ and `@cubicool (Jeremy Moles) `_. +* New CMake options ``FMT_INSTALL`` and ``FMT_TEST`` to control generation + of ``install`` and ``test`` targets respectively, on by default + (`#197 `_, + `#198 `_). + Thanks to `@maddinat0r (Alex Martin) `_. + * [Breaking] ``fmt::(s)printf`` now supports formatting of objects of user-defined types that provide an overloaded ``std::ostream`` insertion operator (``operator<<``) (`#201 `_): From 1133fe8ab010bef028d29f4afa904662ef6e1b73 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Fri, 30 Oct 2015 06:24:36 -0700 Subject: [PATCH 13/17] Update ChangeLog.rst --- ChangeLog.rst | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index c8e78e55..fc48ffac 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -143,18 +143,21 @@ `#175 `_, `#190 `_, `#191 `_, - `#194 `_). + `#194 `_, + `#196 `_). Thanks to `@Naios `_, `@fmatthew5876 (Matthew Fioravante) `_, `@LevskiWeng (Levski Weng) `_, `@rpopescu `_, - `@gabime (Gabi Melman) `_ and - `@cubicool (Jeremy Moles) `_. + `@gabime (Gabi Melman) `_, + `@cubicool (Jeremy Moles) `_ and + `@jkflying (Julian Kent) `_. -* New CMake options ``FMT_INSTALL`` and ``FMT_TEST`` to control generation - of ``install`` and ``test`` targets respectively, on by default +* New CMake options ``FMT_DOC``, ``FMT_INSTALL`` and ``FMT_TEST`` to control + generation of ``doc``, ``install`` and ``test`` targets respectively, on by default (`#197 `_, - `#198 `_). + `#198 `_, + `#200 `_). Thanks to `@maddinat0r (Alex Martin) `_. * [Breaking] ``fmt::(s)printf`` now supports formatting of objects of user-defined types From 387b23f890710d4fd2b04e705002c4e839c9f3aa Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Fri, 30 Oct 2015 06:45:56 -0700 Subject: [PATCH 14/17] Update ChangeLog.rst --- ChangeLog.rst | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index fc48ffac..f1c9fc4d 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -93,6 +93,17 @@ (`#171 `_). Thanks to `@alfps (Alf P. Steinbach) `_. +* [Breaking] Named arguments + (`#169 `_, + `#173 `_, + `#174 `_): + + .. code:: c++ + + fmt::print("The answer is {answer}.", fmt::arg("answer", 42)); + + Thanks to `@jamboree `_. + * Fixed out-of-tree documentation build (`#177 `_). Thanks to `@jackyf (Eugene V. Lyubimkin) `_. @@ -133,7 +144,7 @@ * Implemented a workaround for a name lookup bug in MSVC2010 (`#188 `_). -* Fixed multiple warnings +* Fixed compiler warnings (`#135 `_, `#142 `_, `#145 `_, @@ -198,8 +209,11 @@ `_ section to the documentation. -* Documentation build script is now compatible with Python 3 - (`#209 `_). +* Documentation build script is now compatible with Python 3 and newer pip versions. + (`#189 `_, + `#209 `_). + Thanks to `@JodiTheTigger `_ and + `@xentec `_. * Fixed a name conflict with macro ``free`` defined in ``crtdbg.h`` when ``_CRTDBG_MAP_ALLOC`` is set From dc7a372bfc26a5e6a719505efb963b7a87095a75 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Fri, 30 Oct 2015 06:56:07 -0700 Subject: [PATCH 15/17] Update ChangeLog.rst --- ChangeLog.rst | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index f1c9fc4d..d217e9bd 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -37,7 +37,9 @@ * [Breaking] ``windows.h`` is now included with ``NOMINMAX`` unless ``FMT_WIN_MINMAX`` is defined. This is done to prevent breaking code using ``std::min`` and ``std::max`` and only affects the header-only configuration - (`#152 `_). + (`#152 `_, + `#153 `_, + `#154 `_). Thanks to `@DevO2012 `_. * C++ Format is now available in `Debian `_ GNU/Linux @@ -75,9 +77,13 @@ (`#36 `_, `#75 `_, `#125 `_, + `#160 `_, + `#161 `_, `#162 `_, `#165 `_, `#210 `_). + Thanks to `@syohex (Syohei YOSHIDA) `_ and + bug reporters. * Improved support for custom character types (`#171 `_). @@ -93,6 +99,15 @@ (`#171 `_). Thanks to `@alfps (Alf P. Steinbach) `_. +* Runtime width specification + (`#168 `_): + + .. code:: c++ + + fmt::format("{0:{1}}", 42, 5); // gives " 42" + + Thanks to `@jamboree `_. + * [Breaking] Named arguments (`#169 `_, `#173 `_, From e1ed1d789c09cfc432d63aee1ca51166d40651e9 Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Fri, 30 Oct 2015 07:35:18 -0700 Subject: [PATCH 16/17] Update ChangeLog.rst --- ChangeLog.rst | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/ChangeLog.rst b/ChangeLog.rst index d217e9bd..ec3284ae 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -28,6 +28,16 @@ (`#140 `_). Thanks to `@polyvertex (Jean-Charles Lefebvre) `_. +* [Breaking] Formatting of more than 16 arguments is now supported when using + variadic templates + (`#141 `_). + Thanks to `@Shauren `_. + +* [Breaking] Reduced `compiled code size + `_ + (`#143 `_, + `#149 `_). + * Fixed a compile error on MSVC with disabled exceptions (`#144 `_). @@ -194,13 +204,15 @@ fmt::printf("The date is %s", Date(2012, 12, 9)); -* Fixed portability issues in tests causing failures on ARM, ppc64, ppc64le - and s390x ( +* Fixed portability issues (mostly causing test failures) on ARM, ppc64, ppc64le, + s390x and SunOS 5.11 i386 ( + `#138 `_, `#179 `_, `#180 `_, `#202 `_, `Red Hat Bugzilla Bug 1260297 `_). - Thanks to `@jackyf (Eugene V. Lyubimkin) `_ and Dave Johansen. + Thanks to `@Naios `_, + `@jackyf (Eugene V. Lyubimkin) `_ and Dave Johansen. * [Experimental] User-defined literals for format and named arguments (`#204 `_, From b1a55d50bf4ff351609fba82ea0ceec3fbc0edfb Mon Sep 17 00:00:00 2001 From: Victor Zverovich Date: Fri, 30 Oct 2015 07:43:15 -0700 Subject: [PATCH 17/17] Update ChangeLog.rst --- ChangeLog.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ChangeLog.rst b/ChangeLog.rst index ec3284ae..a75f450f 100644 --- a/ChangeLog.rst +++ b/ChangeLog.rst @@ -6,6 +6,10 @@ (`#128 `_). New documentation address is http://cppformat.github.io/. +* Fixed ``initializer_list`` detection + (`#136 `_). + Thanks to `@Gachapen (Magnus Bjerke Vik) `_. + * [Breaking] Fixed formatting of enums with numeric format specifiers in ``fmt::(s)printf`` (`#131 `_, @@ -20,6 +24,7 @@ * Improved compatibility with old versions of MinGW (`#129 `_, + `#130 `_, `#132 `_). Thanks to `@cstamford (Christopher Stamford) `_.