[squid-dev] g++ 4.8.x and std::regex problems

Amos Jeffries squid3 at treenet.co.nz
Tue Nov 29 19:46:30 UTC 2016


On 29/11/2016 8:46 p.m., Christos Tsantilas wrote:
> On 29/11/2016 04:29 πμ, Amos Jeffries wrote:
>> Please note that GCC 4.8 is not capable of building correctly operating
>> Squid-4 either. So its not a matter of GCC 4.8 vs Squid.
> 
> The 4.8 does not have any problem. I was doing all of my developments
> and tests using GCC-4.8 and never found a problem, an incompatibility
> something does not work well.
> 
> On my side I upgraded my development system, however this is not
> something which can be done without spending a lot of hours. Also maybe
> required to upgrade 1-2 virtual machines I am using.

I'm thinking it might be useful to add a how-to in the release notes for
v4+ to make the compiler update easier. Would you be able to write that
now that you have gone through the process?

> 
> We should define at least a warning period before applying such changes
> in squid.

It seems I mis-remembered the decision. It was not just to delay to v5,
but until the compiler situation was resolved
<http://lists.squid-cache.org/pipermail/squid-dev/2015-July/002884.html> :-(

>From thread
<http://lists.squid-cache.org/pipermail/squid-dev/2015-July/002875.html>

I'm starting the merge revert now. It will go into v5 when the build
tests pass (a few hours).


> 
>> there anyway and probably already being linked to Squid as -lregex. The
>> other cases it is supposed to be implemented by something faster, like
>> libpcre. The benefits to Squid are that the API is standardized and we
>> dont have to care about which library is linked any more. In all cases
>> it should be using either the same library as before behind the STL API,
>> or something better.
> 
> The regex library is small, it has a small number of API functions. And
> Personally I do not remember a case the regex causes problems.
> 
> Also, my opinion is that if pcre is faster we should consider to use
> them. At least have it as a todo.

It is faster, but also has a different pattern syntax and API. So we
would need both a config directive to specify what syntax was in use and
a wrapper layer for portability.

Which is exactly what std::regex provides . Though I have not gone so
far as to add the config directive for changing the used syntax. It
makes a lot more sense to go through the transition pain once instead of
twice (GNURegex -> PCRE -> std::regex).

Amos



More information about the squid-dev mailing list