|
Boost : |
Subject: Re: [boost] C++03 / C++11 compatibility question for compiled libraries
From: Edward Diener (eldiener_at_[hidden])
Date: 2018-02-11 22:11:29
On 2/11/2018 3:32 PM, Richard Hodges via Boost wrote:
>> Boost would basically be saying to end-users, if you are using
> such-and-such a library we can no longer test it in C++03 mode.
>
> Compiler vendors are not going to focus on improving legacy support for
> outdated standards. Why should boost? I don't see any new web programs
> being written in javascript version 3, on node v1, targeting an IE 5
> client. Why should people who insist on doing that in c++ be supported? It
> just wastes everyone else's time.
>
> The message should be, "upgrade your compiler, or get out of the way.
> You're holding everyone else up with your buggy old non-conforming
> compiler."
>
> I have seen some lame excuses as to why people can't (won't) upgrade, and
> that's fine, if people are happy with legacy compilers then presumably
> they're happy with legacy versions of libraries. Let them remain on boost
> 1.66.
>
> All this legacy support simply clutters up boost and makes it unnecessarily
> complicated.
>
> Arguably, boost has more market penetration than any one compiler. If word
> gets around that a vendor's compiler is not compatible with boost, that
> vendor is at risk of people dropping their garbage compiler like a hot
> stone. This is in reality no different to being incompatible with the
> standard library. It would be commercial suicide. They will fix their
> compilers rather than lose market share.
>
> c++ needs to move forward. Slavish devotion to backwards compatibility is a
> burden it can not afford.
Thee are two completely different things here when discussing C++03
versus C++11 on up. They are:
1) Should Boost support its libraries when end-users compile in C++03 mode ?
2) Should Boost libraries themselves be required to support C++11 in
some way, although I am still waiting to understand what that way
appears to be from you or others whose rhetoric isn't saying very much
to me ?
As far as 1) is concerned, I think Boost must consider that this may be
disappointing to end-users who still work in applications which do not
support C++11 on up compilation. I am not saying you are wrong in your
opinion, I am just saying that Boost has to understand what this means
to some number of end-users before deciding to go in this direction.
As for 2) I see absolutely no practical difference between a library
which compiles and works fine in C++11 on up mode, yet uses no construct
or library which is part of the C++11 on up standard, and a library
which uses some construct or library which is part of the C++11 on up
standard, and also works fine when compiled in C++11 on up mode.
>
> R
>
>
>
>
> On 11 February 2018 at 19:36, Edward Diener via Boost <boost_at_[hidden]
>> wrote:
>
>> On 2/11/2018 8:25 AM, Paul A. Bristow via Boost wrote:
>>
>>>
>>>
>>> -----Original Message-----
>>>> From: Boost [mailto:boost-bounces_at_[hidden]] On Behalf Of degski
>>>> via Boost
>>>> Sent: 09 February 2018 20:56
>>>> To: boost
>>>> Cc: degski
>>>> Subject: Re: [boost] C++03 / C++11 compatibility question for compiled
>>>> libraries
>>>>
>>>> On 9 February 2018 at 14:48, Edward Diener via Boost <
>>>> boost_at_[hidden]>
>>>> wrote:
>>>>
>>>> The issue with Boost Test is that if it now requires a C++11 level
>>>>> compiler to use it, every library which tests itself using Boost Test
>>>>> now
>>>>> requires a C++11 level compiler to run its tests.
>>>>>
>>>>
>>>>
>>>> So, unless this requirement is lifted, the Rubicon has already been
>>>> crossed...
>>>>
>>>
>>> In a sense, yes, but Boost.Test C++03 from release 1.66 still exists.
>>>
>>
>> That does little good for testing latest changes.
>>
>>
>>> So those who stay with C++03 won't be able to rely on the tester-runners
>>> to test updated libraries, but they can still use
>>> Boost.Test C++03 to run the test themselves - if they care.
>>>
>>
>> I would find it a bit alarming if testing a Boost library, which uses
>> Boost Test as its testing infrastructure, can no longer be done in C++03
>> mode for various compilers. Boost would basically be saying to end-users,
>> if you are using such-and-such a library we can no longer test it in C++03
>> mode.
>>
>> Since I offered my solution to this quandary with CXXD, and since I have
>> seen no solution in this thread that is better than what I offered, it is
>> useless for me to comment further about trying to solve the problem. But
>> Boost should understand exactly what they are telling end-users if this
>> change has been made or will be made to Boost Test.
>>
>>
>>
>>> Or they can freeze their Boost version completely continuing with the
>>> bugs they know and love.
>>>
>>> I suspect the Laggards will just muddle on?
>>>
>>> Meanwhile the Modernizers can muddle forward - it clearly isn't
>>> straightforward.
>>>
>>> I think that the current process is working OK just as Daniel James's
>>> updated guidance (good - thanks) suggests
>>>
>>> https://beta.boost.org/development/requirements.html#Backwar
>>> ds_compatibility
>>>
>>> Paul
>>>
>>> ---
>>> Paul A. Bristow
>>> Prizet Farmhouse
>>> Kendal UK LA8 8AB
>>> +44 (0) 1539 561830
>>>
>>>
>>>
>>> Paul
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk