summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* re/reg_fold.t: Add and revise commentskhw/trickyKarl Williamson2011-12-251-2/+3
|
* reg_fold.t: Test bracketed character classesKarl Williamson2011-12-251-1/+2
| | | | | | | | | | | | | | | | 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.
* re/reg_fold.t: Test more code pointsKarl Williamson2011-12-251-1/+0
| | | | | | | | 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.
* re/reg_fold.t: Remove fixed TODOsKarl Williamson2011-12-251-11/+2
| | | | These TODOs have not been tested, mostly, for a while
* re/reg_fold.t: Use /u rules for Unicode testsKarl Williamson2011-12-251-1/+1
| | | | These tests are for Unicode, so should have /u (instead of /d).
* regcomp.c: Refactor join_exact() to eliminate extra passesKarl Williamson2011-12-254-95/+152
| | | | | | | 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.
* regcomp.c: Modify some commentsKarl Williamson2011-12-251-9/+9
|
* regex: Remove FOLDCHAR regnode typeKarl Williamson2011-12-234-48/+6
| | | | | | | | | | | | | | 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.
* regex: Fix some tricky fold problemsKarl Williamson2011-12-233-232/+176
| | | | | | | | | | | | 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.
* regcomp.c: Rework join_exact()Karl Williamson2011-12-231-50/+59
| | | | | | | | | | | | | | | 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).
* regex: Add new node type EXACTFU_NO_TRIEKarl Williamson2011-12-234-126/+139
| | | | | | 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
* regex: Add new node type EXACTFU_SSKarl Williamson2011-12-234-131/+149
| | | | | | | | | | 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
* regcomp.c: Need to account for delta sizesKarl Williamson2011-12-231-0/+5
| | | | | | | | | 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.
* regcomp.c: Change param to join_exact()Karl Williamson2011-12-233-13/+21
| | | | | | 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.
* perlunicode: nitKarl Williamson2011-12-231-3/+3
|
* regcomp.c: regex start class for sharp sKarl Williamson2011-12-231-0/+26
| | | | | | | | 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.
* regcomp.c: white-space only and comments onlyKarl Williamson2011-12-231-16/+42
|
* regcomp.c: Save computed value in variable for later useKarl Williamson2011-12-231-4/+4
| | | | | This will be used in future commits. Retrieving it via OP() doesn't work in pass1 of the regex compiler.
* regcomp.c: Make sure trie can handle node passed to itKarl Williamson2011-12-231-0/+2
|
* regexec.c: white space onlyKarl Williamson2011-12-231-1/+1
|
* regexec.c: EXACTF nodes can never be UTFKarl Williamson2011-12-231-4/+9
| | | | | | | 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.
* regcomp.c: Silence valgrind warningKarl Williamson2011-12-231-1/+5
| | | | | This happens only in doing debug output. Initialize these two debugging variables
* regexp_noamp.t: Add commentKarl Williamson2011-12-231-0/+2
|
* t/re/re_tests: Add some testsKarl Williamson2011-12-231-1/+6
|
* t/re/re_tests: revise testKarl Williamson2011-12-231-1/+5
| | | | | This is the wrong test for the cited ticket. That one is for tests occurring in bracketed character classes.
* t/re/re_tests: Update commentKarl Williamson2011-12-231-2/+2
| | | | | This reflects that now that there is autoloading of \N{}, such tests can go in this file
* util.c: Add commentKarl Williamson2011-12-231-1/+2
|
* regcomp.c: Don't print incorrect debug infoKarl Williamson2011-12-231-3/+4
| | | | | 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.
* regcomp.sym: Change commentsKarl Williamson2011-12-232-8/+8
|
* Increase $arybase::VERSION to 0.03Father Chrysostomos2011-12-221-1/+1
|
* Eek! I left some debug code in arybase.xsFather Chrysostomos2011-12-221-1/+0
|
* Deparse.pm: Uncomment version codeFather Chrysostomos2011-12-221-5/+3
|
* speed up feature-checking slightlyFather Chrysostomos2011-12-223-10/+17
| | | | | | 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.
* Deparse "a::]"->[0], etc., correctlyFather Chrysostomos2011-12-222-2/+9
| | | | | | | | 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.
* Deparse "string"->[$expr] and ->{$expr} correctlyFather Chrysostomos2011-12-222-7/+26
| | | | | | 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.
* Update Term-UI to CPAN version 0.30Chris 'BinGOs' Williams2011-12-227-91/+97
| | | | | | | | | | | | [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]
* Added porting tests for CUSTOMIZED filesChris 'BinGOs' Williams2011-12-223-0/+160
| | | | | | | | | | | 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
* Correct the Pod used to block comment a section of git log output.Nicholas Clark2011-12-221-1/+3
| | | | | | | | | 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.
* Add t/porting/utils.t, to test that utility scripts still compile.Nicholas Clark2011-12-223-1/+94
| | | | | | | | | | 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.
* corelist-perldelta.pl now requires Algorithm::Diff instead of using it.Nicholas Clark2011-12-221-1/+1
| | | | | | | | 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.
* Porting/cherrymaint now requires LWP::UserAgent instead of using it.Nicholas Clark2011-12-221-1/+1
| | | | | | | 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.
* Porting/checkURL.pl now requires rather than uses all non-core modules.Nicholas Clark2011-12-221-11/+11
| | | | | | | | | 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>.
* Update CPANPLUS to CPAN version 0.9115Chris 'BinGOs' Williams2011-12-219-8/+25
| | | | | | | | | [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
* Copy hints from tied hh to inner compile scopesFather Chrysostomos2011-12-212-8/+27
| | | | | | | | | | | | | | 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.
* regen pod issuesFather Chrysostomos2011-12-211-3/+2
|
* podcheck.t: skip make-rmg-checklistFather Chrysostomos2011-12-211-0/+1
|
* Fix pod errors in rmgFather Chrysostomos2011-12-211-4/+0
|
* Add Porting/make_rmg-checklist to MANIFESTFather Chrysostomos2011-12-211-0/+1
|
* Deparse "string"->[0] correctlyFather Chrysostomos2011-12-212-12/+34
| | | | | | | | "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.
* We don't care about "Pragma" vs. "Pragmata"Florian Ragwitz2011-12-211-4/+5
|