In perl.git, the branch smoke-me/khw-5.21 has been created
<http://perl5.git.perl.org/perl.git/commitdiff/0bce6cd390c0f5ddae6516e6af2aec57db013fe4?hp=0000000000000000000000000000000000000000>
at 0bce6cd390c0f5ddae6516e6af2aec57db013fe4 (commit)
- Log -----------------------------------------------------------------
commit 0bce6cd390c0f5ddae6516e6af2aec57db013fe4
Author: Karl Williamson <[email protected]>
Date: Mon Sep 22 13:59:39 2014 -0600
Tighten uses of regex synthetic start class
A synthetic start class (SSC) is generated by the regular expression
pattern compiler to give a consolidation of all the possible things that
can match at the beginning of where a pattern can possibly match.
For example
qr/a?bfoo/;
requires the match to begin with either an 'a' or a 'b'. There are no
other possibilities. We can set things up to quickly scan for either of
these in the target string, and only when one of these is found do we
need to look for 'foo'.
In many patterns, no SSC is generated; and with the advent of tries,
SSC's have become less important.
There is an overhead associated with using SSCs. If the number of
possibilities that the SSC excludes is relatively small, it can be
counter-productive to use them.
This patch creates a crude sieve to decide whether to use an SSC or not.
If the SSC doesn't exclude at least half the "likely" possiblities, it
is discarded. This is a starting point, and can be refined if
necessary as we gain experience.
See thread beginning with
http://nntp.perl.org/group/perl.perl5.porters/212644
M embed.fnc
M embed.h
M ext/re/t/regop.t
M proto.h
M regcomp.c
M regen/unicode_constants.pl
M t/re/pat.t
M unicode_constants.h
commit 98f1b1ef1cacfbf2bd37b85c96bbccddd05818a3
Author: Karl Williamson <[email protected]>
Date: Tue Sep 23 16:54:34 2014 -0600
regcomp.c: Move macro definition earlier in file
This is to prepare it to be used in earlier places than it is now.
M regcomp.c
commit e35dda16af6bf8541cdeec0df7845031ff497ac2
Author: Karl Williamson <[email protected]>
Date: Sat Sep 20 10:20:11 2014 -0600
regcomp.c: Use strnEQ instead of series of tests
At some point it is more efficient and certainly clearer to call a
library function to do a strcmp than to test each individual byte.
Based on irc discussion with the original coder of this, I changed this
sequence of 6 comparisions to a strnEQ. At the same time, this adds an
buffer overlflow check. I was unable to cause the previous code to
overflow, but I believe it was possible. And this changes the magic
number 6 in the code to a mnemonic giving its meaning.
M regcomp.c
commit 7c4c8a56afdc2ee953fac87fc6fc7a367ca86278
Author: Karl Williamson <[email protected]>
Date: Thu Aug 28 13:59:01 2014 -0600
XXXcharbits
M regcomp.h
commit 30fa2986db5fa59430123a31072e5ddd3a1aaf92
Author: Karl Williamson <[email protected]>
Date: Tue Jun 17 18:49:53 2014 -0600
XXX partial perlapi text
M perlvars.h
commit 6ef1a2eade3d9e9d690540910200bb5756267704
Author: Karl Williamson <[email protected]>
Date: Sat May 17 19:37:06 2014 -0600
XXX Don't push. attempt to tell tries everything at compile time
But, it appears this is thrown away, have to consult with Yves to see if
is worth pursuing
M embed.fnc
M embed.h
M perl.h
M proto.h
M regcomp.c
M regcomp.h
M regcomp.sym
-----------------------------------------------------------------------
--
Perl5 Master Repository