[squid-dev] More woes with ubuntu-precise

Amos Jeffries squid3 at treenet.co.nz
Tue Aug 18 08:11:20 UTC 2015


On 15/08/2015 3:05 a.m., Alex Rousskov wrote:
> On 08/13/2015 10:52 PM, Amos Jeffries wrote:
>> On 14/08/2015 10:18 a.m., Alex Rousskov wrote:
>>> On 08/13/2015 09:29 AM, Kinkie wrote:
>>>
>>>>    EnumIterator has brought out one more issue with ubuntu-precise:
>>>> since it carries gcc-4.6, it doesn't support std::underlying_type<enum>.
>>>
>>>
>>>> The options are:
>>>> - drop support for precise in trunk. We claim to need gcc 4.8 anyway
>>>
>>> I am confused: If GCC v4.8 is required, then why are you asking about a
>>> Ubuntu release that comes with GCC v4.6? Does it imply that we were only
>>> pretending to require GCC v4.8 and now may actually have to start
>>> requiring it?
> 
> 
>> My thoughts almost the same.
>>
>> The published "requirement" I put up was:
>> "
>> This series of Squid requires a C++11 capable compiler. The currently
>> known compilers which meet this criteria and build Squid reliably are
>> GCC 4.9+, Clang 3.5+, and Intel CC 12.0+
>> "
>>
>> So its not even 4.8, more of a soft-ish 4.9+.
> 
> I was under impression that we have promised GCC 4.8 support for Squid
> v4.0.

I dont recalla promise for v4. I did promise C++03 support would stay
for v3.5. I'm trying for maintenance support as long as possible of that
version, but no promise since I can't actually guarantee it will be
possible.


> Perhaps I am missing some deliberations with thoughtful
> justifications, but it feels like we are simply increasing the required
> GCC version number just because it is convenient for developers, without
> balancing admin and developer needs.

The admin "need" that keeps being put forward is stability. With the
meaning of "non-changing.". As in; nobody touches the Squid code from
now until 2020 or so.

We already provide versions of Squid that meet that criteria. They are
called version 3.0, 3.1, 3.2, 3.3, and 3.4. Depending on which year and
feature set the admin wants to use. They are supported by the distros
offering guarantees of non-change stability.



We are increasing it for several reasons;

One of which is that the world has already moved on to GCC and Clang
versions where C++11 is the default and actually C++14 the preferred
language now.
NP: That loosely includes Ubuntu and RHEL 7 whose current LTS supply
GCC-4.8 by default and better versions via "unofficial" packages.

Another important reason is the code safety features that are only
available in C++11.

Another is the code simplification which is only available in C++11.
That aids us a LOT with readability. But even more importantly
simplifies the code for attracting new developers.

Another is our decision to move custom algorithms to STL and std:: based
logic. It is all very well using that for performance, but the gains are
mostly through C++11 STL improvements. C++03 builds are somewhat *worse*
as a result.


Amos


More information about the squid-dev mailing list