https://bz.apache.org/SpamAssassin/show_bug.cgi?id=7215
--- Comment #13 from Mark Martinec <[email protected]> --- > Hah. Well jenkins is stable and 5.8.6 tests worked though a bit noisy with > INFO: module Net::LibIDN not available warnings. Can turn that warn() into info() for comfort, at least temporarily. > For 4.X, we need good, stable UTF support which in my experience means using > 5.14+. > I could examine other distros but I think we can require 5.14.8+ for 4.X > especially since I'm expecting distros won't include 4.X except on the next > major release. > Any arguments against changing trunk INSTALL to require 5.14.8 as well as > the PACKAGING, Makefile.PL and UPGRADE files? I can also look at making > Makefile.PL bootstrap with system perl and download perlbrew to make a newer > perl available. I think it's way to early to set the minimal version of perl as a firm requirement. We haven't even started the more intricate work, it's still a long way to 4.0. It's fine to make 5.14 as a recommended minimal version, but I'd prefer to enforce such in Makefile.PL much closer to a 4.0 release. For starters I'd be happy to have 5.10 as a firm requirement, which will enable the use of a possessive quantifier syntactic sugar ( "?+","*+", "++", "{min,max}+" ), particularly useful in rules, and the defined-or operator ( // ), which can cut down the clutter in code somewhat: ( $a // $b is equivalent to: defined $a ? $a : $b, similarly: $c //= $d instead of: $c = $d unless defined $c ). Also the Digest::SHA module became a core module, so we can get rid of Digest::SHA1 as a backward compatibility fallback. Also in 5.10: (perl5100delta) The regular expression engine is no longer recursive, meaning that patterns that used to overflow the stack will either die with useful explanations, or run to completion. And: (perl5100delta) Alternations, where possible, are optimised into more efficient matching structures. String literal alternations are merged into a trie and are matched simultaneously. This means that instead of O(N) time for matching N alternations at a given point, the new code performs in O(1) time. [...] Note: Much code exists that works around perl's historic poor performance on alternations. Often the tricks used to do so will disable the new optimisations. -- You are receiving this mail because: You are the assignee for the bug.
