Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2023-11-04 18:12:05


On 11/4/23 18:41, Tom Kent via Boost wrote:
> On Thu, Oct 26, 2023 at 10:06 AM Marshall Clow via Boost <
> boost_at_[hidden]> wrote:
>
>> The deadline for “major changes” is next Wednesday, 1-Nov.
>> The beta release will be two weeks later.
>>
>> As always, the release calendar is at:
>> https://www.boost.org/development/index.html
>>
>> — Marshall
>>
>
> In preparation for the upcoming release, I tried running the windows
> builders. I'm seeing lots of issues with msvc-10.0, -11.0, and -12.0.
>
> I know there has been some traffic about pushing forward changes that break
> compatibility with older compilers...I'm guessing this is what is
> happening, but wanted to double check.
>
> 1. Are these errors due to removing compatibility in some library(ies)?
> 2. Is the expected result of this compiler errors (vs. libraries that just
> refuse to build)?
>
> With the assumption that these are fine, I'm preparing to drop those three
> versions from the build for this release.
>
> Some examples...this one in msvc-10.0 seems like 10.0 just doesn't have
> enough of C++11 (it has a lot, but not all).
> compile-c-c++
> D:\RB\bin.v2\boost\bin.v2\libs\chrono\build\msvc-10.0\debug\address-model-32\threading-multi\thread_clock.obj
> thread_clock.cpp
> D:\RB\boost_1_84_0\boost/chrono/detail/requires_cxx11.hpp(19): note: C++03
> support was deprecated in Boost.Chrono 1.82 and was removed in Boost.Chrono
> 1.84.
> D:\RB\boost_1_84_0\boost/ratio/ratio_fwd.hpp(35) : fatal error C1083:
> Cannot open include file: 'ratio': No such file or directory
>
> A lot of C++ 11 got added in 11.0/12.0, but apparently not all:
> compile-c-c++
> D:\RB\bin.v2\boost\bin.v2\libs\log\build\msvc-12.0\debug\address-model-32\threadapi-win32\threading-multi\attribute_value_set.obj
> attribute_value_set.cpp
> D:\RB\boost_1_84_0\boost/type_index/type_index_facade.hpp(59) : error
> C3646: 'noexcept' : unknown override specifier
> D:\RB\boost_1_84_0\boost/type_index/type_index_facade.hpp(144) :
> see reference to class template instantiation
> 'boost::typeindex::type_index_facade<Derived,TypeInfo>' being compiled
> D:\RB\boost_1_84_0\boost/type_index/type_index_facade.hpp(68) : error
> C3646: 'noexcept' : unknown override specifier
>
> Full logs can be found here at this link. The files are big, scroll
> approximately 1/3 of the way for each of 10.0, 11.0, 12.0 with 14.x being
> the last couple pages.
> https://gist.github.com/teeks99/6e87a664f54fa55a94f122d8166baedf
>
> Any thoughts?

Both errors above are from lack of C++11 features, and as expected.

As for not building vs. emitting errors, making the library not build
would be problematic, at least in the case of Boost.Log above. The
errors are coming from the header-only Boost.TypeIndex, which can't
express its C++11 requirements (as it doesn't have a Jamfile). So
disabling Boost.Log build would require replicating the requirements of
Boost.TypeIndex in Boost.Log's Jamfile, and I don't want to do this as I
won' be able to maintain those as they change in the future.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk