In perl.git, the branch smoke-me/khw-regcomp has been created
<http://perl5.git.perl.org/perl.git/commitdiff/376bbc2af7592f548cd5f4a81baec452aef7ac71?hp=0000000000000000000000000000000000000000>
at 376bbc2af7592f548cd5f4a81baec452aef7ac71 (commit)
- Log -----------------------------------------------------------------
commit 376bbc2af7592f548cd5f4a81baec452aef7ac71
Author: Karl Williamson <[email protected]>
Date: Fri Jul 15 22:07:20 2016 -0600
anyof tests
M t/re/anyof.t
commit 0804eb1b241d12a012ef96b157a717e27ebf2186
Author: Karl Williamson <[email protected]>
Date: Fri Jul 15 22:06:49 2016 -0600
later
M regcomp.c
commit 0c489a8507d28658024a893b05efff946ad28c9f
Author: Karl Williamson <[email protected]>
Date: Fri Jul 15 22:06:11 2016 -0600
regcomp.h: Add comment
M regcomp.h
commit 531d9ff18b05ca45d0b968f9a409364d161e3ea4
Author: Karl Williamson <[email protected]>
Date: Fri Jul 15 22:05:25 2016 -0600
XXX reword, and test name: t/re/pat.t: Add some tests
These verify
M t/re/pat.t
commit dbc9bc47a18245bd081d75b91f31ee4bb0f8d8ee
Author: Karl Williamson <[email protected]>
Date: Wed Jul 13 15:50:32 2016 -0600
XXX check over anyof: add tests for ranges
M t/re/anyof.t
commit 7fe17f9df6a952878d22fdf1035b9536cc20d8b6
Author: Karl Williamson <[email protected]>
Date: Tue Jul 12 21:15:07 2016 -0600
regcomp.c: Refactor code dealing with m/[...]/d
This consolidates some code that deals with bracketed character classes
under /d. As a result, some throw-away steps can be omitted, and things
aren't scattered about.
M regcomp.c
commit e74e33b120c7c9811204e5744fe5c5ecc7f538c6
Author: Karl Williamson <[email protected]>
Date: Tue Jul 5 19:32:19 2016 -0600
regcomp.c: Change a few calls to add_range_to_invlist()
Now that that function is more efficient, some current calls to
append_range_to_invlist() can be expressed as adds slightly more
clearly as either adding a range or just a single code point.
M regcomp.c
commit ce32286724a1d42c5c5711425d79f4c31006382e
Author: Karl Williamson <[email protected]>
Date: Mon Jun 27 17:11:35 2016 -0600
regcomp.c: Reimplement add_range_to_invlist()
Previously, this function was essentially implemented by turning the new
range into an inversion list and then unioning that with the existing
inversion list. This was easy to write, but expensive in terms of
operations, with memory allocations and copies, etc.
After discussing this with Tony Cook, I have reimplemented this. Only
in one uncommonly encountered case does it resort to using the union,
because that case is somewhat tricky, and there is no need to have to
know that trickiness in yet another place given its rarity.
Otherwise, the function manipulates the inversion list. Some cases are
no-ops, some just change a single array element, some move things within
the array, extending or splicing it. But these are cheaper than the
previous implementation.
M embed.fnc
M proto.h
M regcomp.c
commit 305d2053b195b7430774db2220d6040451b53f65
Author: Karl Williamson <[email protected]>
Date: Tue Jul 5 19:41:30 2016 -0600
regcomp.c: White-space, comments only
This indents code and reflows the comments to account for the enclosing
block added by the previous commit, and a few other miscellaneous white
space changes, and adding a missing 'not' to a comment
M regcomp.c
commit 7fc64ada77af760df4c8c655f333d5156000e711
Author: Karl Williamson <[email protected]>
Date: Tue Jul 5 19:37:46 2016 -0600
regcomp.c: Improve -Dr output
Previously when dumping the compiled ANYOF node under -Dr, it could say
something like \x1B-\x1B. A single element range should be dumped as a
single element.
M regcomp.c
M t/re/anyof.t
commit 645e0824a9861ff27e1090e8b988f12fcc36ccb0
Author: Karl Williamson <[email protected]>
Date: Mon Jul 11 21:40:13 2016 -0600
anyof.t: Add tests for previous commit
The tests are being kept separate in case we want to put the previous
commit into a maintenance release. The tests need infrastructure added
since the release of 5.24, so can't easily be backported.
M t/re/anyof.t
commit 9f5417f722c2d10ee6a847562c428ec9c5723bf7
Author: Karl Williamson <[email protected]>
Date: Wed Jul 6 11:52:01 2016 -0600
Fix -Dr output regression
Several commits in the 5.23 series improved the display of the compiled
ANYOF regnodes, but introduced two bugs. One of them is in \p{Any}, and
similar things, that match the entire range 0-255, that range is omitted,
so it looks like \p{Any} only matches code points above 255. Note that
this is only what gets displayed under -Dr. What actually gets compiled
has been and still is fine.
The other is that when displaying a pattern that still has unresolved
user-defined properties that are complemented, it doesn't show properly
that the whole thing is complemented. That is the output looks like it
doesn't obey De Morgan's laws.
The fixes to these are quite intertwined, and so I didn't try to
separate them.
M embed.fnc
M embed.h
M proto.h
M regcomp.c
commit b59a909a9c7216bcb0508875f5d578322d055dc7
Author: Karl Williamson <[email protected]>
Date: Mon Jul 11 11:54:56 2016 -0600
Add t/re/anyof.t
The ANYOF regnode is by far the most complicated to compile in regular
expression patterns. This new test file makes sure that what gets
compiled doesn't get changed accidentally, nor how the compiled node is
dumped for human readable output.
I created tests for this from what changed in
b77aba85f6ec3b2a2341077b14f39261c5753cea
"Revamp -Dr handling of /[...]/", and from trying to exercise all
branches in it using gcov.
Making this test file showed some bugs, and infelicitous representations
from that commit, which will be fixed in the next few commits.
M MANIFEST
A t/re/anyof.t
commit 3c2e9a6a2c887a7812937a2b53a9a0c75980ce80
Author: Karl Williamson <[email protected]>
Date: Sun Jul 10 22:06:12 2016 -0600
t/test.pl: Add fresh_perl() function
This will be useful for cases where the results don't readily fall into
fresh_perl_is and fresh_perl_like. In the proximal case, (in the next
commit) a bunch of massaging of the results is needed before it is
convenient to test them. fresh_perl_like() could be used, but in the
case of failure there would be lines and lines of noise output.
M t/test.pl
commit dc989ece59edaf8f694d9eba7cfb7e87fcb61b5e
Author: Karl Williamson <[email protected]>
Date: Tue Jul 5 19:23:59 2016 -0600
XXX SSize_t instead of IV
M embed.fnc
M proto.h
M regcomp.c
commit 9f8378c084e8be668e6587d5eeb9e1b74da9dc2e
Author: Karl Williamson <[email protected]>
Date: Tue Jul 5 19:17:18 2016 -0600
regcomp.h: Use #define mnemonic, not hard-coded number
M regcomp.h
commit 188eb2d1d84209862991055927fa801c35879dd4
Author: Karl Williamson <[email protected]>
Date: Wed Jul 6 12:02:27 2016 -0600
Revert "XXX Comprehensive charset.t tests"
This reverts commit 4dcab3011263328856fe1ea24e32bc24fb445e6a.
M t/re/charset.t
commit f82e683aae56c23481c50848537a6f7350e48807
Author: Karl Williamson <[email protected]>
Date: Mon Feb 29 18:45:39 2016 -0700
XXX Comprehensive charset.t tests
M t/re/charset.t
commit 8bc0b49b560c2a6942d08ae6cb2f0a2ebe8bfed7
Author: Karl Williamson <[email protected]>
Date: Wed Feb 10 14:29:15 2016 -0700
XXX partial don't push regex: Add ASCII/NASCII regnodes
These are a little more efficient than using the POSIXA(:ascii:)
mechanism.
M pod/perldebguts.pod
M regcomp.sym
M regexec.c
M regnodes.h
commit 7a43b91d3bbd678bc4f7c2b5da776ffe5256f149
Author: Karl Williamson <[email protected]>
Date: Sat Feb 27 15:16:16 2016 -0700
Revert "constant.pm lower memory use"
M dist/constant/lib/constant.pm
commit 43117e630c5441eb915a809981aa8a9514a1f204
Author: Karl Williamson <[email protected]>
Date: Wed Feb 3 13:41:11 2016 -0700
constant.pm lower memory use
M dist/constant/lib/constant.pm
-----------------------------------------------------------------------
--
Perl5 Master Repository