Re: [squid-dev] [PATCH] remove old GnuRegex third-party code

2015-07-28 Thread Alex Rousskov
On 07/28/2015 06:51 AM, Amos Jeffries wrote:

> The attached patch replaces all Squid code uses of regex.h C API with
> std::regex C++ API and drops the libregex related detections from
> ./configure


> * In the present day all systems using C++11 provide a std::regex API
> from the STL. This means all systems Squid-4 supports will provide it.


Not quite: AFAIK, GCC versions 4.8 and below do not support std::regex.
They do provide the API, but without the implementation to back it up:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
http://stackoverflow.com/questions/12530406/is-gcc-4-7-and-gcc-4-8-buggy-about-regular-expressions
http://stackoverflow.com/questions/20027305/strange-results-when-using-c11-regexp-with-gcc-4-8-2-but-works-with-boost-reg


We are not going to require GCC v4.9 for Squid v4.0, are we?

Alex.

___
squid-dev mailing list
squid-dev@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-dev


Re: [squid-dev] [PATCH] remove old GnuRegex third-party code

2015-07-28 Thread Amos Jeffries
On 29/07/2015 3:39 a.m., Alex Rousskov wrote:
> On 07/28/2015 06:51 AM, Amos Jeffries wrote:
> 
>> The attached patch replaces all Squid code uses of regex.h C API with
>> std::regex C++ API and drops the libregex related detections from
>> ./configure
> 
> 
>> * In the present day all systems using C++11 provide a std::regex API
>> from the STL. This means all systems Squid-4 supports will provide it.
> 
> 
> Not quite: AFAIK, GCC versions 4.8 and below do not support std::regex.
> They do provide the API, but without the implementation to back it up:
> 
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631
> http://stackoverflow.com/questions/12530406/is-gcc-4-7-and-gcc-4-8-buggy-about-regular-expressions
> http://stackoverflow.com/questions/20027305/strange-results-when-using-c11-regexp-with-gcc-4-8-2-but-works-with-boost-reg
> 
> 
> We are not going to require GCC v4.9 for Squid v4.0, are we?

No unless we really have to. 4.7+ was indeed the plan.

I will try and see if the std::tr1::regex I heard about actually works.

Amos

___
squid-dev mailing list
squid-dev@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-dev


Re: [squid-dev] [PATCH] remove old GnuRegex third-party code

2015-07-29 Thread Amos Jeffries
Small change of plans. I have separated the SourceLayout related code
shuffling and polish from the std::regex and GnuRegex swap.

The SourceLayout parts have now been applied as trunk rev.14189.

The remainder will have to wait until the GCC situation Alex pointed out
is resolved.

Amos

___
squid-dev mailing list
squid-dev@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-dev


Re: [squid-dev] [PATCH] remove old GnuRegex third-party code

2015-07-30 Thread Amos Jeffries
On 29/07/2015 7:35 p.m., Amos Jeffries wrote:
> Small change of plans. I have separated the SourceLayout related code
> shuffling and polish from the std::regex and GnuRegex swap.
> 
> The SourceLayout parts have now been applied as trunk rev.14189.
> 
> The remainder will have to wait until the GCC situation Alex pointed out
> is resolved.
> 


Actually looking at the wiki. This was already covered:

"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+ "

That said, I'm not keen on adding a guaranteed fail for GCC 4.7/4.8.
I've looked into std::tr1::regex and that is just as broken.

Amos

___
squid-dev mailing list
squid-dev@lists.squid-cache.org
http://lists.squid-cache.org/listinfo/squid-dev