| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These were removed when things were very broken, but now they work,
except for things like
"\N{LATIN SMALL LIGATURE FFI}" =~ /[a-z]{3}/i
where the multi-char fold crosses single bracketed character class
boundaries. These will probably never be fixed in Perl in the general
case (using \F and fc() instead), but I expect that
"\N{LATIN SMALL LIGATURE FFI}" =~ /[f][f][i]/i
will eventually be changed so the brackets are optimized away, and will
work. Then these TODOs will start passing.
|
|
|
|
|
|
|
|
| |
This statement was wrong that said all these things are tested in
fold_grind.t. It will test them all when run with a particular option,
but due to time issues, it skips many code points. reg_fold.t, on the
other hand, does just basic sanity testing, and so should always test
every code point for that.
|
|
|
|
| |
These TODOs have not been tested, mostly, for a while
|
|
|
|
| |
These tests are for Unicode, so should have /u (instead of /d).
|
|
|
|
|
|
|
| |
The strings in every EXACTFish node are examined for certain problematic
sequences and code points. Prior to this patch, this was done in
several passes, but this refactors the routine to do it in a single
pass.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This node type hasn't been used since 5.14.0. Instead an ANYOFV node
was generated where formerly a FOLDCHAR node would have been used. The
ANYOFV was used because it already existed and was up-to-date, whereas
FOLDCHAR would have needed some bug fixes to adapt it, even though it
would be faster in execution than ANYOFV; so the code for it was
retained in case it was needed.
However, both these solutions were defective, and a previous commit has
changed things to a different type of solution entirely. Thus FOLDCHAR
is obsolescent and can be removed, though the code in it was used as a
base for some of the new solutions.
|
|
|
|
|
|
|
|
|
|
|
|
| |
As described in the comments, this changes the design of handling the
Unicode tricky fold characters to not generate a node for each possible
sequence but to get them to work within EXACTFish nodes.
The previous design(s) all used a node to handle these, which suffers
from the downfall that it precludes legitimate matches that would cross
the node boundary.
The new design is described in the comments.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This re formats and refactors portions of join_exact() that look for the
tricky Greek fold sequences. I renamed various variables, etc, to help
me understand what was going on. It turns out that there were two
off-by-one bugs that prevented this from working properly.
The first bug had the loop quit one too soon The boundary should be
"<=", and not strictly less-than. This means that if the sequence is
the last thing in the string (or only thing) it will not be found.
The other bug had the end-needle parameter be 1 too short, which means
that this would succeed with only the first 3 bytes of the sequence
(now called 'tail'), thus matching many more things than it should
(provided it got the chance to match at all given the first bug).
|
|
|
|
|
|
| |
This new node is like EXACTFU but is not currently trie'able. This adds
handling for it in regexec.c, but it is not currently generated; this
commit is preparing for future commits
|
|
|
|
|
|
|
|
|
|
| |
This node will be used to distinguish between the case in a non-UTF8
pattern and string where something could be matched that is of different
lengths. The only instance where this can happen is the LATIN SMALL
LETTER SHARP S can match the sequences "ss", "Ss", "sS", or "SS", hence
the name.
This node is not currently generated; this prepares for future commits
|
|
|
|
|
|
|
|
|
| |
When a node can match varying sizes, the delta variable in the optimizer
needs to change to account for that, and it can no longer match a fixed
length string.
This code was adapted from the existing code for the FOLDCHAR node that
has to deal with the same problem.
|
|
|
|
|
|
| |
This changes a parameter to this function to instead of changing a running
total, return the actual value computed by the function; and it changes
the calling areas of code to compensate.
|
| |
|
|
|
|
|
|
|
|
| |
Under most folding types, the optimizer start class should include all
of s, S, and the sharp s (\xdf) if it includes any of them. The code
was neglecting the latter. This is currently not relevant, as there is
special handling of the sharp s elsewhere in regcomp.c. But this is a
step to changing that special handling to fix some bugs.
|
| |
|
|
|
|
|
| |
This will be used in future commits. Retrieving it via OP() doesn't
work in pass1 of the regex compiler.
|
| |
|
| |
|
|
|
|
|
|
|
| |
By definition a regex pattern that is in UTF-8 uses Unicode matching
rules, and EXACTF is non-Unicode (unless the target string is UTF-8).
Therefore an EXACTF node will never be generated for a UTF-8 pattern,
and there is no need to test for it being so.
|
|
|
|
|
| |
This happens only in doing debug output. Initialize these two debugging
variables
|
| |
|
| |
|
|
|
|
|
| |
This is the wrong test for the cited ticket. That one is for tests
occurring in bracketed character classes.
|
|
|
|
|
| |
This reflects that now that there is autoloading of \N{}, such tests can
go in this file
|
| |
|
|
|
|
|
| |
The break out of the loop should be done before the debug statements
that indicate the things that happen only if the break isn't done.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
When seeing whether the cop hint hash contains the given feature,
Perl_feature_is_enabled only needs to see whether the hint hash ele-
ment exists. It doesn’t need to turn it into a scalar.
|
|
|
|
|
|
|
|
| |
The package name should not be omitted when the name begins with punc-
tuation unless the variable is in the main package.
"]"->[0] is force into the main package.
"a::]"->[0] is not.
|
|
|
|
|
|
| |
This commit finishes the work done by b89b7257 and be6cf5cf0a by mak-
ing "string"->[...] and "string"->{...} in general deparse correctly
when "string" is not a valid identifier.
|
|
|
|
|
|
|
|
|
|
|
|
| |
[DELTA]
Changes for 0.30 Wed Dec 21 23:30:39 GMT 2011
=====================================================
* Resolve PAUSE indexer problems
Changes for 0.28 Wed Dec 21 22:26:05 GMT 2011
=====================================================
* Apply Debian patches [rt.cpan.org #73400]
|
|
|
|
|
|
|
|
|
|
|
| |
In Porting/Maintainers.pl CUSTOMIZED is a list of files that have been
customized within the Perl core. These tests make SHA digests of the
customized files and do a comparison previously stored digests to
ensure that customization is not lost when updating from upstream.
Update MANIFEST with the customized files
Add --regen ability to porting/customized.t and some documentation
|
|
|
|
|
|
|
|
|
| |
Commit 31940c077ae95db7 added some git log output. To avoid the need to
re-indent it, it was "commented out" using Pod. However, the Pod used was
buggy. It used a =for, when it should have used a =begin/=end pair.
Without this, Pod renderers display the "comment" as if it is part of the
documentation, which isn't desired.
|
|
|
|
|
|
|
|
|
|
| |
Right now, without this, it's possible to pass the all the regression tests
even if one has introduced syntax errors into scripts such as installperl
or installman. No tests fail, so it's fair game to push the commit.
Obviously this breaks installing perl, but we won't spot this.
Whilst we can't easily test that the various scripts *work*, we can at least
check that we've not made any trivial screw ups.
|
|
|
|
|
|
|
|
| |
This way ./perl -Ilib -c Porting/corelist-perldelta.pl can be used to syntax
check it.
corelist-perldelta.pl was not importing symbols from Algorithm::Diff, so
there are no changes in runtime behaviour.
|
|
|
|
|
|
|
| |
This way ./perl -Ilib -c Porting/cherrymaint can be used to syntax check it.
cherrymaint was not importing symbols from LWP::UserAgent, so there are no
changes in runtime behaviour.
|
|
|
|
|
|
|
|
|
| |
This way ./perl -Ilib -c Porting/checkURL.pl can be used to syntax check it.
Only File::Slurp and URI::Find::Simple were actually relying on C<use> to
import subroutines - replace the two uses with fully qualified names.
All other packages are needed for object constructors, not imports, so there
is no change in loading them with C<require>.
|
|
|
|
|
|
|
|
|
| |
[DELTA]
Changes for 0.9115 Tue Dec 20 21:10:24 2011
================================================
* Added new config option 'allow_unknown_prereqs'
to resolve issues with 0.9114 release
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Entries from a tied %^H were not being copied to inner compile-time
scopes, resulting in %^H appearing empty in BEGIN blocks, even
though the underlying he chain *was* being propagated properly (so
(caller)[10] at run time still worked.
I was surprised that, in writing tests for this, I produced another
crash. I thought I had fixed them with 95cf23680 and 7ef9d42ce. It
turns out that pp_helem doesn’t support hashes with null values.
(That’s a separate bug that needs fixing, since the XS API allows for
them.) For now, cloning the hh properly stops pp_helem from getting a
null value.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
"foo"->[0] and $foo[0] compile down to the same thing. B::Deparse was
assuming that an rv2gv with a gv kid would have to be $foo[0] syntax,
so it didn’t take things like '!@T#$'->[0] into account.
This commit only fixes aelemfast. It is related to b89b7257.
|
| |
|