Has testing on msvc been dropped?
Hi y'all! I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). Looking at the test matrix to figure out where the problem might lie, I couldn't find any column with the test results of *any* msvc version, lest the current one. Is there a reason for no longer running the tests with msvc compilers? thank, Dani -- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
On Mon, Feb 27, 2023 at 6:49 AM Daniela Engert wrote:
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). Looking at the test matrix to figure out where the problem might lie, I couldn't find any column with the test results of *any* msvc version, lest the current one. Is there a reason for no longer running the tests with msvc compilers?
I don't believe it's intentional. Tom, do you know why the MSVC runners aren't reporting any results? Andrey, Log does use Appveyor for MSVC testing too: https://ci.appveyor.com/project/Lastique/log but there's no 1935 being tested there. Glen
On 2/27/23 15:16, Glen Fernandes wrote:
On Mon, Feb 27, 2023 at 6:49 AM Daniela Engert wrote:
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). Looking at the test matrix to figure out where the problem might lie, I couldn't find any column with the test results of *any* msvc version, lest the current one. Is there a reason for no longer running the tests with msvc compilers?
I don't believe it's intentional.
Tom, do you know why the MSVC runners aren't reporting any results? Andrey, Log does use Appveyor for MSVC testing too: https://ci.appveyor.com/project/Lastique/log <https://ci.appveyor.com/project/Lastique/log> but there's no 1935 being tested there.
Yes, Boost.Log is being tested on AppVeyor, and there is a VS2022 job (not sure which update, though). Is it because of this problem? https://github.com/boostorg/parameter/issues/111 If so, it's a compiler bug. Probably, specific to C++20, because, as I mentioned above, the AppVeyor job is there and passes.
Am 27.02.2023 um 13:24 schrieb Andrey Semashev via Boost:
On 2/27/23 15:16, Glen Fernandes wrote:
On Mon, Feb 27, 2023 at 6:49 AM Daniela Engert wrote:
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). Looking at the test matrix to figure out where the problem might lie, I couldn't find any column with the test results of *any* msvc version, lest the current one. Is there a reason for no longer running the tests with msvc compilers?
I don't believe it's intentional.
Tom, do you know why the MSVC runners aren't reporting any results?
Andrey, Log does use Appveyor for MSVC testing too:https://ci.appveyor.com/project/Lastique/log <https://ci.appveyor.com/project/Lastique/log> but there's no 1935 being tested there. Yes, Boost.Log is being tested on AppVeyor, and there is a VS2022 job (not sure which update, though).
Is it because of this problem?
It's not. The error in question is phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: 'A0': a template parameter name cannot be reused within its scope phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL( phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: ^ phoenix\support\preprocessed\vector_10.hpp(66,1): message : see previous definition of 'A0' phoenix\support\preprocessed\vector_10.hpp(66,1): message : ) phoenix\support\preprocessed\vector_10.hpp(66,1): message : ^ BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL expands to namespace boost { namespace fusion { namespace traits { template <typename A0> struct tag_of<boost::phoenix::vector1<A0>> { typedef struct_tag type; }; template <typename A0> struct tag_of<boost::phoenix::vector1<A0> const> { typedef struct_tag type; }; } // namespace traits namespace extension { template <typename A0> struct access::struct_member<boost::phoenix::vector1<A0>, 0> { typedef A0 attribute_type; typedef A0 A0; typedef attribute_type type; template <typename Seq> struct apply { typedef typename add_reference< typename mpl::eval_if<is_const<Seq>, add_const<attribute_type>, mpl::identity<attribute_type>>::type>::type type; constexpr static type call(Seq &seq) { return seq.a0; } }; }; template <typename A0> struct struct_member_name<boost::phoenix::vector1<A0>, 0> { typedef char const *type; constexpr static type call() { return "a0"; } }; template <typename A0> struct struct_size<boost::phoenix::vector1<A0>> : mpl::int_<1> {}; template <typename A0> struct struct_is_view<boost::phoenix::vector1<A0>> : mpl::false_ {}; } // namespace extension } // namespace fusion namespace mpl { template <typename> struct sequence_tag; template <typename A0> struct sequence_tag<boost::phoenix::vector1<A0>> { typedef fusion::fusion_sequence_tag type; }; template <typename A0> struct sequence_tag<boost::phoenix::vector1<A0> const> { typedef fusion::fusion_sequence_tag type; }; } // namespace mpl } // namespace boost The offending code is typedef A0 A0; in template <typename A0> struct access::struct_member<boost::phoenix::vector1<A0>, 0> I've checked this expansion on CE with e.g. gcc and it complains for the same reason. I suspect an obsolete workaround in one of the libs that 'boost/log/sinks.hpp' depends on and has now become hostile and holds Boost.Log ransom. Thanks, Dani -- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
On 2/27/23 15:55, Daniela Engert wrote:
Am 27.02.2023 um 13:24 schrieb Andrey Semashev via Boost:
On 2/27/23 15:16, Glen Fernandes wrote:
On Mon, Feb 27, 2023 at 6:49 AM Daniela Engert wrote:
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). Looking at the test matrix to figure out where the problem might lie, I couldn't find any column with the test results of *any* msvc version, lest the current one. Is there a reason for no longer running the tests with msvc compilers?
I don't believe it's intentional.
Tom, do you know why the MSVC runners aren't reporting any results? Andrey, Log does use Appveyor for MSVC testing too: https://ci.appveyor.com/project/Lastique/log <https://ci.appveyor.com/project/Lastique/log> but there's no 1935 being tested there. Yes, Boost.Log is being tested on AppVeyor, and there is a VS2022 job (not sure which update, though).
Is it because of this problem?
It's not. The error in question is
phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: 'A0': a template parameter name cannot be reused within its scope phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL( phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: ^ phoenix\support\preprocessed\vector_10.hpp(66,1): message : see previous definition of 'A0' phoenix\support\preprocessed\vector_10.hpp(66,1): message : ) phoenix\support\preprocessed\vector_10.hpp(66,1): message : ^
BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL expands to
namespace boost { namespace fusion { namespace traits { template <typename A0> struct tag_of<boost::phoenix::vector1<A0>> { typedef struct_tag type; }; template <typename A0> struct tag_of<boost::phoenix::vector1<A0> const> { typedef struct_tag type; }; } // namespace traits namespace extension { template <typename A0> struct access::struct_member<boost::phoenix::vector1<A0>, 0> { typedef A0 attribute_type; typedef A0 A0; typedef attribute_type type; template <typename Seq> struct apply { typedef typename add_reference< typename mpl::eval_if<is_const<Seq>, add_const<attribute_type>, mpl::identity<attribute_type>>::type>::type type; constexpr static type call(Seq &seq) { return seq.a0; } }; }; template <typename A0> struct struct_member_name<boost::phoenix::vector1<A0>, 0> { typedef char const *type; constexpr static type call() { return "a0"; } }; template <typename A0> struct struct_size<boost::phoenix::vector1<A0>> : mpl::int_<1> {}; template <typename A0> struct struct_is_view<boost::phoenix::vector1<A0>> : mpl::false_ {}; } // namespace extension } // namespace fusion namespace mpl { template <typename> struct sequence_tag; template <typename A0> struct sequence_tag<boost::phoenix::vector1<A0>> { typedef fusion::fusion_sequence_tag type; }; template <typename A0> struct sequence_tag<boost::phoenix::vector1<A0> const> { typedef fusion::fusion_sequence_tag type; }; } // namespace mpl } // namespace boost
The offending code is
typedef A0 A0;
in
template <typename A0> struct access::struct_member<boost::phoenix::vector1<A0>, 0>
I've checked this expansion on CE with e.g. gcc and it complains for the same reason. I suspect an obsolete workaround in one of the libs that 'boost/log/sinks.hpp' depends on and has now become hostile and holds Boost.Log ransom.
The typedef is controlled by this condition: https://github.com/boostorg/fusion/blob/049303436c6698ac96d8a9d8edb7a727b83c... However, I cannot reproduce your error locally by building Boost.Log or Boost.Fusion tests. Can you provide a repro, including the compiler command line?
Andrey Semashev wrote:
However, I cannot reproduce your error locally by building Boost.Log or Boost.Fusion tests.
I confirm that the Boost.Log test suite passes under VS 17.5.0 (compiler version 19.35.32215) without cxxstd. Running cxxstd=14,17,20,latest now. Boost is part of the MS test suite for MSVC, and they do report such issues to us, so this one is probably not covered by our tests.
Andrey Semashev wrote:
However, I cannot reproduce your error locally by building Boost.Log or Boost.Fusion tests.
I confirm that the Boost.Log test suite passes under VS 17.5.0 (compiler version 19.35.32215) without cxxstd. Running cxxstd=14,17,20,latest now.
Tests pass for cxxstd=14,17,20,latest.
Am 27.02.2023 um 14:54 schrieb Andrey Semashev via Boost:
On 2/27/23 15:55, Daniela Engert wrote:
Am 27.02.2023 um 13:24 schrieb Andrey Semashev via Boost:
On 2/27/23 15:16, Glen Fernandes wrote:
On Mon, Feb 27, 2023 at 6:49 AM Daniela Engert wrote:
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). Looking at the test matrix to figure out where the problem might lie, I couldn't find any column with the test results of *any* msvc version, lest the current one. Is there a reason for no longer running the tests with msvc compilers?
I don't believe it's intentional.
Tom, do you know why the MSVC runners aren't reporting any results?
Andrey, Log does use Appveyor for MSVC testing too:https://ci.appveyor.com/project/Lastique/log <https://ci.appveyor.com/project/Lastique/log> but there's no 1935 being tested there. Yes, Boost.Log is being tested on AppVeyor, and there is a VS2022 job (not sure which update, though).
Is it because of this problem?
It's not. The error in question is
phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: 'A0': a template parameter name cannot be reused within its scope phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL( phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: ^ phoenix\support\preprocessed\vector_10.hpp(66,1): message : see previous definition of 'A0' phoenix\support\preprocessed\vector_10.hpp(66,1): message : ) phoenix\support\preprocessed\vector_10.hpp(66,1): message : ^
BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL expands to
namespace boost { namespace fusion { namespace traits { template <typename A0> struct tag_of<boost::phoenix::vector1<A0>> { typedef struct_tag type; }; template <typename A0> struct tag_of<boost::phoenix::vector1<A0> const> { typedef struct_tag type; }; } // namespace traits namespace extension { template <typename A0> struct access::struct_member<boost::phoenix::vector1<A0>, 0> { typedef A0 attribute_type; typedef A0 A0; typedef attribute_type type; template <typename Seq> struct apply { typedef typename add_reference< typename mpl::eval_if<is_const<Seq>, add_const<attribute_type>, mpl::identity<attribute_type>>::type>::type type; constexpr static type call(Seq &seq) { return seq.a0; } }; }; template <typename A0> struct struct_member_name<boost::phoenix::vector1<A0>, 0> { typedef char const *type; constexpr static type call() { return "a0"; } }; template <typename A0> struct struct_size<boost::phoenix::vector1<A0>> : mpl::int_<1> {}; template <typename A0> struct struct_is_view<boost::phoenix::vector1<A0>> : mpl::false_ {}; } // namespace extension } // namespace fusion namespace mpl { template <typename> struct sequence_tag; template <typename A0> struct sequence_tag<boost::phoenix::vector1<A0>> { typedef fusion::fusion_sequence_tag type; }; template <typename A0> struct sequence_tag<boost::phoenix::vector1<A0> const> { typedef fusion::fusion_sequence_tag type; }; } // namespace mpl } // namespace boost
The offending code is
typedef A0 A0;
in
template <typename A0> struct access::struct_member<boost::phoenix::vector1<A0>, 0>
I've checked this expansion on CE with e.g. gcc and it complains for the same reason. I suspect an obsolete workaround in one of the libs that 'boost/log/sinks.hpp' depends on and has now become hostile and holds Boost.Log ransom. The typedef is controlled by this condition:
https://github.com/boostorg/fusion/blob/049303436c6698ac96d8a9d8edb7a727b83c... Wonderful, you nailed it - thanks!
By dropping the workarounds in L146 (and L68) I could successfully compile with msvc 19.35, 19.29, 19.16, and 19.00 (i.e. the latest versions of VS2022, VS2019, VS2017, and VS2015). I didn't bother to check older compilers.
However, I cannot reproduce your error locally by building Boost.Log or Boost.Fusion tests. Can you provide a repro, including the compiler command line?
The repro is simple: create an otherwise empty TU with just "#include <boost/log/sinks.hpp>" in it and compile. Our build system emits this compiler invocation: C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\CL.exe /c /Zi /JMC /nologo /W4 /WX /diagnostics:caret /MP /Od /Ob1 /Oi /D QT_STATIC /D __QT6__ /D _UNICODE /D UNICODE /Zc:preprocessor /Gm- /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:fast /Zc:wchar_t /Zc:forScope /Zc:inline /Zc:rvalueCast /std:c++latest /permissive- /Fo"x64\Debug\\" /Fd"E:\HWPA\lib64\Debug\libEnvironment.pdb" /external:W4 /Gd /TP /FC /errorReport:prompt /Zc:checkGwOdr /Zc:templateScope /Zc:externConstexpr /Zc:__cplusplus /utf-8 /Zc:throwingNew /Zc:strictStrings /bigobj Log.cpp Thanks, Dani -- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
On Mon, Feb 27, 2023 at 6:29 PM Daniela Engert <dani@ngrt.de> wrote:
Am 27.02.2023 um 14:54 schrieb Andrey Semashev via Boost:
On 2/27/23 15:55, Daniela Engert wrote:
Am 27.02.2023 um 13:24 schrieb Andrey Semashev via Boost:
On 2/27/23 15:16, Glen Fernandes wrote:
On Mon, Feb 27, 2023 at 6:49 AM Daniela Engert wrote:
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). Looking at the test matrix to figure out where the problem might lie, I couldn't find any column with the test results of *any* msvc version, lest the current one. Is there a reason for no longer running the tests with msvc compilers?
I don't believe it's intentional.
Tom, do you know why the MSVC runners aren't reporting any results?
Andrey, Log does use Appveyor for MSVC testing too: https://ci.appveyor.com/project/Lastique/log <https://ci.appveyor.com/project/Lastique/log> but there's no 1935 being tested there.
Yes, Boost.Log is being tested on AppVeyor, and there is a VS2022 job (not sure which update, though).
Is it because of this problem?
https://github.com/boostorg/parameter/issues/111
It's not. The error in question is
phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: 'A0': a template parameter name cannot be reused within its scope phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL( phoenix\support\preprocessed\vector_10.hpp(62,1): error C7527: ^ phoenix\support\preprocessed\vector_10.hpp(66,1): message : see previous definition of 'A0' phoenix\support\preprocessed\vector_10.hpp(66,1): message : ) phoenix\support\preprocessed\vector_10.hpp(66,1): message : ^
BOOST_FUSION_ADAPT_TPL_STRUCT_NO_PARTIAL expands to
namespace boost { namespace fusion { namespace traits { template <typename A0> struct tag_of<boost::phoenix::vector1<A0>> { typedef struct_tag type; }; template <typename A0> struct tag_of<boost::phoenix::vector1<A0> const> { typedef struct_tag type; }; } // namespace traits namespace extension { template <typename A0> struct access::struct_member<boost::phoenix::vector1<A0>, 0> { typedef A0 attribute_type; typedef A0 A0; typedef attribute_type type; template <typename Seq> struct apply { typedef typename add_reference< typename mpl::eval_if<is_const<Seq>, add_const<attribute_type>, mpl::identity<attribute_type>>::type>::type type; constexpr static type call(Seq &seq) { return seq.a0; } }; }; template <typename A0> struct struct_member_name<boost::phoenix::vector1<A0>, 0> { typedef char const *type; constexpr static type call() { return "a0"; } }; template <typename A0> struct struct_size<boost::phoenix::vector1<A0>> : mpl::int_<1> {}; template <typename A0> struct struct_is_view<boost::phoenix::vector1<A0>> : mpl::false_ {}; } // namespace extension } // namespace fusion namespace mpl { template <typename> struct sequence_tag; template <typename A0> struct sequence_tag<boost::phoenix::vector1<A0>> { typedef fusion::fusion_sequence_tag type; }; template <typename A0> struct sequence_tag<boost::phoenix::vector1<A0> const> { typedef fusion::fusion_sequence_tag type; }; } // namespace mpl } // namespace boost
The offending code is
typedef A0 A0;
in
template <typename A0> struct access::struct_member<boost::phoenix::vector1<A0>, 0>
I've checked this expansion on CE with e.g. gcc and it complains for the same reason. I suspect an obsolete workaround in one of the libs that 'boost/log/sinks.hpp' depends on and has now become hostile and holds Boost.Log ransom.
The typedef is controlled by this condition:
https://github.com/boostorg/fusion/blob/049303436c6698ac96d8a9d8edb7a727b83c...
Wonderful, you nailed it - thanks!
By dropping the workarounds in L146 (and L68) I could successfully compile with msvc 19.35, 19.29, 19.16, and 19.00 (i.e. the latest versions of VS2022, VS2019, VS2017, and VS2015). I didn't bother to check older compilers.
However, I cannot reproduce your error locally by building Boost.Log or Boost.Fusion tests. Can you provide a repro, including the compiler command line?
The repro is simple: create an otherwise empty TU with just "#include <boost/log/sinks.hpp>" in it and compile. Our build system emits this compiler invocation:
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\CL.exe /c /Zi /JMC /nologo /W4 /WX /diagnostics:caret /MP /Od /Ob1 /Oi /D QT_STATIC /D __QT6__ /D _UNICODE /D UNICODE /Zc:preprocessor /Gm- /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:fast /Zc:wchar_t /Zc:forScope /Zc:inline /Zc:rvalueCast /std:c++latest /permissive- /Fo"x64\Debug\\" /Fd"E:\HWPA\lib64\Debug\libEnvironment.pdb" /external:W4 /Gd /TP /FC /errorReport:prompt /Zc:checkGwOdr /Zc:templateScope /Zc:externConstexpr /Zc:__cplusplus /utf-8 /Zc:throwingNew /Zc:strictStrings /bigobj Log.cpp
https://github.com/boostorg/fusion/pull/268 The problem is caused by /Zc:templateScope, which is not supported in previous MSVC versions. I'm not sure what problem this workaround prevents and what MSVC versions are affected, so I limited the fix by VS2022 update 5.
Daniela Engert wrote:
The repro is simple: create an otherwise empty TU with just "#include <boost/log/sinks.hpp>" in it and compile. Our build system emits this compiler invocation:
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\CL .exe /c /Zi /JMC /nologo /W4 /WX /diagnostics:caret /MP /Od /Ob1 /Oi /D QT_STATIC /D __QT6__ /D _UNICODE /D UNICODE /Zc:preprocessor /Gm- /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:fast /Zc:wchar_t /Zc:forScope /Zc:inline /Zc:rvalueCast /std:c++latest /permissive- /Fo"x64\Debug\\" /Fd"E:\HWPA\lib64\Debug\libEnvironment.pdb" /external:W4 /Gd /TP /FC /errorReport:prompt /Zc:checkGwOdr /Zc:templateScope /Zc:externConstexpr /Zc:__cplusplus /utf-8 /Zc:throwingNew /Zc:strictStrings /bigobj Log.cpp
The culprit here is /Zc:templateScope. This is not set by default (and I don't see it in the IDE at all), and there's no error without it. (/permissive- is also required for the error.) https://learn.microsoft.com/en-us/cpp/build/reference/zc-templatescope?view=... "The /Zc:templateScope option is new in Visual Studio 2022 version 17.5 preview 1. The option is off by default even when the code is compiled using the /permissive- option (or an option that implies /permissive-, such as /std:c++20 or /std:c++latest)."
Am 27.02.2023 um 16:57 schrieb Peter Dimov via Boost:
Daniela Engert wrote:
The repro is simple: create an otherwise empty TU with just "#include <boost/log/sinks.hpp>" in it and compile. Our build system emits this compiler invocation:
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.35.32215\bin\HostX64\x64\CL .exe /c /Zi /JMC /nologo /W4 /WX /diagnostics:caret /MP /Od /Ob1 /Oi /D QT_STATIC /D __QT6__ /D _UNICODE /D UNICODE /Zc:preprocessor /Gm- /EHsc /RTC1 /MDd /GS /arch:AVX2 /fp:fast /Zc:wchar_t /Zc:forScope /Zc:inline /Zc:rvalueCast /std:c++latest /permissive- /Fo"x64\Debug\\" /Fd"E:\HWPA\lib64\Debug\libEnvironment.pdb" /external:W4 /Gd /TP /FC /errorReport:prompt /Zc:checkGwOdr /Zc:templateScope /Zc:externConstexpr /Zc:__cplusplus /utf-8 /Zc:throwingNew /Zc:strictStrings /bigobj Log.cpp The culprit here is /Zc:templateScope. This is not set by default (and I don't see it in the IDE at all), and there's no error without it. (/permissive- is also required for the error.)
https://learn.microsoft.com/en-us/cpp/build/reference/zc-templatescope?view=...
"The /Zc:templateScope option is new in Visual Studio 2022 version 17.5 preview 1. The option is off by default even when the code is compiled using the /permissive- option (or an option that implies /permissive-, such as /std:c++20 or /std:c++latest)."
Right. It's a conformance flag that you need to opt into to match gcc's and clang's behaviour. From the same site: "The C++ Standard doesn't allow the reuse of a template parameter's name (or shadowing) for another declaration within the scope of the template. The /Zc:templateScope compiler option enables an error check for such shadowing." -- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
On Mon, Feb 27, 2023 at 6:16 AM Glen Fernandes <glen.fernandes@gmail.com> wrote:
On Mon, Feb 27, 2023 at 6:49 AM Daniela Engert wrote:
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). Looking at the test matrix to figure out where the problem might lie, I couldn't find any column with the test results of *any* msvc version, lest the current one. Is there a reason for no longer running the tests with msvc compilers?
I don't believe it's intentional.
Tom, do you know why the MSVC runners aren't reporting any results?
Looks like my windows runner machine has crashed hard, I'm going to try to resuscitate it. Tom
Daniela Engert wrote:
Hi y'all!
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5).
The tests for Boost.Log pass for me under VS2022 17.4.5 (19.34.something) so this must be specific to 17.5.0/19.35. 17.5.0 itself seems pretty new because I haven't yet gotten the update notification in the IDE.
Am 27.02.2023 um 15:27 schrieb Peter Dimov via Boost:
Daniela Engert wrote:
Hi y'all!
I've noticed that e.g. Boost.Log no longer compiles on msvc 19.35 (i.e. VS2022 update 5). The tests for Boost.Log pass for me under VS2022 17.4.5 (19.34.something) so this must be specific to 17.5.0/19.35. 17.5.0 itself seems pretty new because I haven't yet gotten the update notification in the IDE.
Right, it works here with 19.34 as it did for many years. This is why I still stick with Boost.Log despite it being a huge burden to the projects where it is used. FWIW, 19.35 broke its own MFC library for the very same reason (fixed in the MFC from VS 17.6-pre1 by renaming affected template argument names). As it seems, the handling of template argument names has ben strengthened in 19.35 (as it should) to the same level as e.g. gcc and clang. Cameron told me that he has improved a lot of things in the latest compilers: the first batch went live with 19.35, the next is scheduled for 19.36 (e.g. official support for import std;). VS2022 update 5 is out for a week now and I am in the process of evaluating it with all of our active projects/codebases. -- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
Am 27.02.2023 um 16:14 schrieb Andrey Semashev via Boost:
On 2/27/23 17:55, Daniela Engert via Boost wrote:
Right, it works here with 19.34 as it did for many years. This is why I still stick with Boost.Log despite it being a huge burden to the projects where it is used. Could you tell more why it is a burden?
Every TU that wants to use the logger needs to include at least these headers: E:\BOOST\1.79.0\BOOST\LOG\SOURCES\RECORD_OSTREAM.HPP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\STRING C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XSTRING C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\IOSFWD C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\YVALS.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CRTDBG.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\VCRUNTIME_NEW_DEBUG.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\VCRUNTIME_NEW.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CRTDEFS.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\USE_ANSI.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CSTDIO C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\STDIO.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WSTDIO.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_STDIO_CONFIG.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CSTRING C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\STRING.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_MEMORY.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_MEMCPY_S.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\ERRNO.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\VCRUNTIME_STRING.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WSTRING.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CWCHAR C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\WCHAR.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WCONIO.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WCTYPE.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WDIRECT.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WIO.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_SHARE.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WPROCESS.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WSTDLIB.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_WTIME.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\SYS\STAT.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\SYS\TYPES.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XSTDDEF C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CSTDDEF C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\STDDEF.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XTR1COMMON C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CSTDLIB C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\MATH.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_MATH.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_MATH_DEFINES.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\STDLIB.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_MALLOC.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_SEARCH.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\LIMITS.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\INITIALIZER_LIST C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XMEMORY C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CSTDINT C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\STDINT.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\LIMITS C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CFLOAT C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\FLOAT.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CLIMITS C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\INTRIN0.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\INTRIN0.INL.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\ISA_AVAILABILITY.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\NEW C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\EXCEPTION C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\TYPE_TRAITS C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\MALLOC.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\VCRUNTIME_EXCEPTION.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\EH.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CORECRT_TERMINATE.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XATOMIC.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XUTILITY C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\__MSVC_ITER_CORE.HPP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\UTILITY C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CONCEPTS C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\COMPARE C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\BIT C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\TUPLE C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XPOLYMORPHIC_ALLOCATOR.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CCTYPE C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\CTYPE.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\OSTREAM C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\IOS C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XLOCNUM C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CMATH C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\ITERATOR C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\STREAMBUF C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XIOSBASE C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\SHARE.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\SYSTEM_ERROR C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\__MSVC_SYSTEM_ERROR_ABI.HPP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CERRNO C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\STDEXCEPT C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XCALL_ONCE.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XERRC.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\ATOMIC C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XATOMIC_WAIT.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XTHREADS.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XTIMEC.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CTIME C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\TIME.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XLOCALE C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\MEMORY C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\TYPEINFO C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\VCRUNTIME_TYPEINFO.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XFACET C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XLOCINFO C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\__MSVC_XLOCINFO_TYPES.HPP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\CLOCALE C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\LOCALE.H E:\BOOST\1.79.0\BOOST\ASSERT.HPP C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\UCRT\ASSERT.H E:\BOOST\1.79.0\BOOST\MOVE\CORE.HPP E:\BOOST\1.79.0\BOOST\MOVE\DETAIL\CONFIG_BEGIN.HPP E:\BOOST\1.79.0\BOOST\MOVE\DETAIL\WORKAROUND.HPP E:\BOOST\1.79.0\BOOST\MOVE\DETAIL\CONFIG_END.HPP E:\BOOST\1.79.0\BOOST\MOVE\UTILITY_CORE.HPP E:\BOOST\1.79.0\BOOST\MOVE\DETAIL\META_UTILS.HPP E:\BOOST\1.79.0\BOOST\MOVE\DETAIL\META_UTILS_CORE.HPP E:\BOOST\1.79.0\BOOST\MOVE\DETAIL\ADDRESSOF.HPP E:\BOOST\1.79.0\BOOST\STATIC_ASSERT.HPP E:\BOOST\1.79.0\BOOST\DETAIL\WORKAROUND.HPP E:\BOOST\1.79.0\BOOST\CONFIG\WORKAROUND.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_ENUM.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\INTRINSICS.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\DETAIL\CONFIG.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\INTEGRAL_CONSTANT.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_SCALAR.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_ARITHMETIC.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_INTEGRAL.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_FLOATING_POINT.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_POINTER.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_MEMBER_POINTER.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_MEMBER_FUNCTION_POINTER.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\DETAIL\IS_MEMBER_FUNCTION_POINTER_CXX_11.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\REMOVE_CV.HPP E:\BOOST\1.79.0\BOOST\CORE\ADDRESSOF.HPP E:\BOOST\1.79.0\BOOST\CORE\ENABLE_IF.HPP E:\BOOST\1.79.0\BOOST\CORE\EXPLICIT_OPERATOR_BOOL.HPP E:\BOOST\1.79.0\BOOST\CORE\UNCAUGHT_EXCEPTIONS.HPP E:\BOOST\1.79.0\BOOST\LOG\DETAIL\CONFIG.HPP E:\BOOST\1.79.0\BOOST\PREDEF\OS.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\AIX.H E:\BOOST\1.79.0\BOOST\PREDEF\VERSION_NUMBER.H E:\BOOST\1.79.0\BOOST\PREDEF\MAKE.H E:\BOOST\1.79.0\BOOST\PREDEF\DETAIL\TEST.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\AMIGAOS.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\BEOS.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\BSD.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\MACOS.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\IOS.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\BSD\BSDI.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\BSD\DRAGONFLY.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\BSD\FREE.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\BSD\OPEN.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\BSD\NET.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\CYGWIN.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\HAIKU.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\HPUX.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\IRIX.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\LINUX.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\OS400.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\QNXNTO.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\SOLARIS.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\UNIX.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\VMS.H E:\BOOST\1.79.0\BOOST\PREDEF\OS\WINDOWS.H E:\BOOST\1.79.0\BOOST\PREDEF\DETAIL\OS_DETECTED.H E:\BOOST\1.79.0\BOOST\WINAPI\CONFIG.HPP E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\ANDROID.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\CLOUDABI.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\MINGW.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\MINGW32.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\MINGW64.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\WINDOWS_UWP.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\SHARED\NTVERP.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\SHARED\NTVERP.VER E:\BOOST\1.79.0\BOOST\PREDEF\DETAIL\PLATFORM_DETECTED.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\SHARED\WINAPIFAMILY.H C:\PROGRAM FILES (X86)\WINDOWS KITS\10\INCLUDE\10.0.22000.0\SHARED\WINPACKAGEFAMILY.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\WINDOWS_DESKTOP.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\WINDOWS_PHONE.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\WINDOWS_SERVER.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\WINDOWS_STORE.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\WINDOWS_SYSTEM.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\WINDOWS_RUNTIME.H E:\BOOST\1.79.0\BOOST\PREDEF\PLATFORM\IOS.H E:\BOOST\1.79.0\BOOST\PREPROCESSOR\STRINGIZE.HPP E:\BOOST\1.79.0\BOOST\PREPROCESSOR\CONFIG\CONFIG.HPP E:\BOOST\1.79.0\BOOST\CONFIG\AUTO_LINK.HPP E:\BOOST\1.79.0\BOOST\FILESYSTEM\CONFIG.HPP E:\BOOST\1.79.0\BOOST\SYSTEM\API_CONFIG.HPP E:\BOOST\1.79.0\BOOST\THREAD\DETAIL\CONFIG.HPP E:\BOOST\1.79.0\BOOST\THREAD\DETAIL\PLATFORM.HPP E:\BOOST\1.79.0\BOOST\CONFIG\REQUIRES_THREADS.HPP E:\BOOST\1.79.0\BOOST\THREAD\DETAIL\THREAD_SAFETY.HPP E:\BOOST\1.79.0\BOOST\LOG\DETAIL\NATIVE_TYPEOF.HPP E:\BOOST\1.79.0\BOOST\LOG\CORE\RECORD.HPP E:\BOOST\1.79.0\BOOST\LOG\ATTRIBUTES\ATTRIBUTE_VALUE_SET.HPP E:\BOOST\1.79.0\BOOST\LOG\ATTRIBUTES\ATTRIBUTE_NAME.HPP E:\BOOST\1.79.0\BOOST\CSTDINT.HPP E:\BOOST\1.79.0\BOOST\LOG\DETAIL\HEADER.HPP E:\BOOST\1.79.0\BOOST\CONFIG\ABI_PREFIX.HPP E:\BOOST\1.79.0\BOOST\CONFIG\ABI\MSVC_PREFIX.HPP E:\BOOST\1.79.0\BOOST\LOG\DETAIL\FOOTER.HPP E:\BOOST\1.79.0\BOOST\CONFIG\ABI_SUFFIX.HPP E:\BOOST\1.79.0\BOOST\CONFIG\ABI\MSVC_SUFFIX.HPP E:\BOOST\1.79.0\BOOST\LOG\ATTRIBUTES\ATTRIBUTE.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\INTRUSIVE_PTR.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\DETAIL\SP_CONVERTIBLE.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\DETAIL\SP_NULLPTR_T.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\DETAIL\SP_NOEXCEPT.HPP E:\BOOST\1.79.0\BOOST\CONFIG\NO_TR1\FUNCTIONAL.HPP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\FUNCTIONAL C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\UNORDERED_MAP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XHASH C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\LIST C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\VECTOR C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XBIT_OPS.H C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XNODE_HANDLE.H E:\BOOST\1.79.0\BOOST\SMART_PTR\DETAIL\OPERATOR_BOOL.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\INTRUSIVE_REF_COUNTER.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\DETAIL\ATOMIC_COUNT.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\DETAIL\SP_HAS_GCC_INTRINSICS.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\DETAIL\SP_HAS_SYNC_INTRINSICS.HPP E:\BOOST\1.79.0\BOOST\SMART_PTR\DETAIL\ATOMIC_COUNT_STD_ATOMIC.HPP E:\BOOST\1.79.0\BOOST\LOG\ATTRIBUTES\ATTRIBUTE_VALUE.HPP E:\BOOST\1.79.0\BOOST\TYPE_INDEX.HPP E:\BOOST\1.79.0\BOOST\TYPE_INDEX\STL_TYPE_INDEX.HPP E:\BOOST\1.79.0\BOOST\TYPE_INDEX\TYPE_INDEX_FACADE.HPP E:\BOOST\1.79.0\BOOST\CONTAINER_HASH\HASH_FWD.HPP E:\BOOST\1.79.0\BOOST\THROW_EXCEPTION.HPP E:\BOOST\1.79.0\BOOST\EXCEPTION\EXCEPTION.HPP E:\BOOST\1.79.0\BOOST\ASSERT\SOURCE_LOCATION.HPP E:\BOOST\1.79.0\BOOST\CURRENT_FUNCTION.HPP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\SOURCE_LOCATION E:\BOOST\1.79.0\BOOST\CORE\DEMANGLE.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\CONDITIONAL.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_CONST.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_REFERENCE.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_LVALUE_REFERENCE.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_RVALUE_REFERENCE.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\IS_VOLATILE.HPP E:\BOOST\1.79.0\BOOST\TYPE_TRAITS\REMOVE_REFERENCE.HPP E:\BOOST\1.79.0\BOOST\LOG\UTILITY\TYPE_DISPATCH\TYPE_DISPATCHER.HPP E:\BOOST\1.79.0\BOOST\LOG\ATTRIBUTES\VALUE_EXTRACTION_FWD.HPP E:\BOOST\1.79.0\BOOST\LOG\ATTRIBUTES\FALLBACK_POLICY_FWD.HPP E:\BOOST\1.79.0\BOOST\LOG\ATTRIBUTES\VALUE_VISITATION_FWD.HPP E:\BOOST\1.79.0\BOOST\LOG\DETAIL\ATTRIBUTE_GET_VALUE_IMPL.HPP E:\BOOST\1.79.0\BOOST\LOG\ATTRIBUTES\ATTRIBUTE_SET.HPP E:\BOOST\1.79.0\BOOST\LOG\DETAIL\SFINAE_TOOLS.HPP E:\BOOST\1.79.0\BOOST\LOG\EXPRESSIONS\KEYWORD_FWD.HPP E:\BOOST\1.79.0\BOOST\LOG\CORE\RECORD_VIEW.HPP E:\BOOST\1.79.0\BOOST\DETAIL\ATOMIC_COUNT.HPP E:\BOOST\1.79.0\BOOST\LOG\UTILITY\UNIQUE_IDENTIFIER_NAME.HPP E:\BOOST\1.79.0\BOOST\PREPROCESSOR\CAT.HPP E:\BOOST\1.79.0\BOOST\LOG\UTILITY\FORMATTING_OSTREAM.HPP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\LOCALE C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XLOCBUF C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XLOCMES C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XLOCMON C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\XLOCTIME E:\BOOST\1.79.0\BOOST\UTILITY\STRING_REF_FWD.HPP E:\BOOST\1.79.0\BOOST\UTILITY\STRING_VIEW_FWD.HPP C:\PROGRAM FILES\MICROSOFT VISUAL STUDIO\2022\PROFESSIONAL\VC\TOOLS\MSVC\14.35.32215\INCLUDE\STRING_VIEW E:\BOOST\1.79.0\BOOST\LOG\DETAIL\ATTACHABLE_SSTREAM_BUF.HPP E:\BOOST\1.79.0\BOOST\LOG\DETAIL\CODE_CONVERSION.HPP E:\BOOST\1.79.0\BOOST\LOG\DETAIL\IS_CHARACTER_TYPE.HPP E:\BOOST\1.79.0\BOOST\LOG\UTILITY\STRING_LITERAL_FWD.HPP E:\BOOST\1.79.0\BOOST\LOG\UTILITY\FORMATTING_OSTREAM_FWD.HPP This is the reason why I am mulling the idea of creating a logger taking advantage of C++23 with minimal depencies imposed on users. Quill (sans {fmt}) might be a good start. Thanks, Dani -- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
On 2/27/23 18:54, Daniela Engert wrote:
Am 27.02.2023 um 16:14 schrieb Andrey Semashev via Boost:
On 2/27/23 17:55, Daniela Engert via Boost wrote:
Right, it works here with 19.34 as it did for many years. This is why I still stick with Boost.Log despite it being a huge burden to the projects where it is used. Could you tell more why it is a burden?
Every TU that wants to use the logger needs to include at least these headers:
[snip]
This is the reason why I am mulling the idea of creating a logger taking advantage of C++23 with minimal depencies imposed on users.
About half of those are standard library headers. I doubt those can be significantly reduced. The rest are Boost library headers that are not very expensive to include. For example, Boost.TypeTraits headers are generally more lightweight than your typical <type_traits>. I suppose, I could get rid of Boost.Predef, but those headers are nothing but preprocessor macros, so are very cheap.
Am 28.02.2023 um 00:02 schrieb Gavin Lambert via Boost:
On 28/02/2023 04:54, Daniela Engert wrote:
Every TU that wants to use the logger needs to include at least these headers:
E:\BOOST\1.79.0\BOOST\LOG\SOURCES\RECORD_OSTREAM.HPP [snip]
That's what precompiled headers are for.
Right - possibly. Unless you have progressed into the world of modules where you better stay away from PCH unless you're a fan of ODR violations and lots of "surprises". -- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
On 28/02/2023 19:02, Daniela Engert wrote:
Am 28.02.2023 um 00:02 schrieb Gavin Lambert:
That's what precompiled headers are for.
Right - possibly. Unless you have progressed into the world of modules where you better stay away from PCH unless you're a fan of ODR violations and lots of "surprises".
If PCH doesn't work in the module world, that's not "progress". :) I'd sooner give up modules than PCH, and you should probably report those sorts of things as bugs if they can be reproduced.
Gavin Lambert wrote:
On 28/02/2023 19:02, Daniela Engert wrote:
Am 28.02.2023 um 00:02 schrieb Gavin Lambert:
That's what precompiled headers are for.
Right - possibly. Unless you have progressed into the world of modules where you better stay away from PCH unless you're a fan of ODR violations and lots of "surprises".
If PCH doesn't work in the module world, that's not "progress". :)
In the module world you just do `import <boost/log.hpp>;`, which is at least in theory a better PCH than the current PCH.
Am 28.02.2023 um 07:51 schrieb Gavin Lambert via Boost:
On 28/02/2023 19:02, Daniela Engert wrote:
Am 28.02.2023 um 00:02 schrieb Gavin Lambert:
That's what precompiled headers are for.
Right - possibly. Unless you have progressed into the world of modules where you better stay away from PCH unless you're a fan of ODR violations and lots of "surprises".
If PCH doesn't work in the module world, that's not "progress". :)
I'd sooner give up modules than PCH, and you should probably report those sorts of things as bugs if they can be reproduced.
Oh, nevermind, they do work. The problem is that you can end up in a situation where you have the same entity declared through the PCH (typically) attached to the global module and imported from a named module where it is (probably) attached to that (or another) module. And various combinations of that along direct and/or indirect #includes/imports. Mixing attachments in the same program is IF-NDR. To avoid that I usually have a configuration option to control attachment of entities exported from a named module if the library in question is used as a module in some parts of the program and through #includes in others - not uncommon during the transition period. A prominent example is Asio, one of the underpinnings of most projects in our company. That may be the reason why contacts from within Microsoft's compiler team were hinting at me to be careful with mixing PCH and modules and to not be too surprised when doing so. The more I use modules in my projects the more I am willing to ditch PCH and go with the strictly more powerful modules. -- PGP/GPG: 2CCB 3ECB 0954 5CD3 B0DB 6AA0 BA03 56A1 2C4638C5
participants (6)
-
Andrey Semashev
-
Daniela Engert
-
Gavin Lambert
-
Glen Fernandes
-
Peter Dimov
-
Tom Kent