On 29/11/2016 09:46 μμ, Amos Jeffries wrote:
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?
I upgraded to newer OS, not just the compiler :-). It is something I would have to do in the next months so I decide to do it now. However major linux distributions still does not provide stable releases with gcc-5.x.
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).
My sense is that std::regex is not a wrapper layer. It is just a different implementation. Maybe it is the faster implementation, OK.
We are using regex expressions in very few places and actually I believe that we should use RegexPattern class instead of direct calls to the external regex libraries. A such RegexPattern class can be small and can be adjusted to use many regex implementations.
It is not difficult, your patch is a prove for this, you are replaced old gnu regex with new std::regex with just replacing calls, without huge changes.
The basics regex expressions are the same. There are common flags, and there are flags which supported only in one library. The squid manual can just provide links, for example, to std::regex, pcre and gnu regex manuals.
I know that this is a new project, I am not saying that we should implement support for multiple regex libraries right now, but I believe that it is something we should have in our mind when we are planning squid.
Christos
Amos
_______________________________________________ squid-dev mailing list [email protected] http://lists.squid-cache.org/listinfo/squid-dev
