Thanks Roger!
I have pulled those regex changes together at
http://cr.openjdk.java.net/~sherman/regexBackTrack.Lamnda.CanonEQ/webrev
So I'm updating the responding change there.
On 03/18/2016 10:03 AM, Roger Riggs wrote:
Hi Sherman,
A few comments:
src/java.base/share/classes/java/util/regex/CharPredicates.java:
- The static fields like ALPHABETIC should be final
- line: 139/140 the posix and uprops HashMaps could have an initializer for
size to avoid resizing (12 and 18):
- 224: typo: "categoreis"
- 232: double space: "return props.get"
Updated. I'm making the CharPredicates class final.
- Remove debugging prints to "PrintPattern.pmap..." before commit
Removed (it's convenient to have them there to just comment in for debugging)
- 288: can you resort "Pf" and "Pi" to be with the other P<x> entries; maybe
sort the whole list.
Those on the top with single-line-def are sorted/listed by the order of their
types defined
in Character.java.
- 305: Is the definition of "C" missing the equivalent of "Cn" unassigned or is
that an intentional difference?
My memory can't tell, but I would assume it was an "intentional" difference. I
will dig a little deep to see if it's the update of the spec. This has not be
touched
for a long time, I'm not sure if it can be easily put back, if it's NOT
intentional.
-323: "LD" the definition of LD is not in the reference (is it specified
somewhere?)
It's the letter-and-digit. looks like a "home-made" one. Again, not sure if this
was in the spec in the old day. And, don't think we can just remove it.
-333: the referenced spec defines the names of the character classes but not
the contents; are they elsewhere?
http://www.unicode.org/reports/tr44/
5.7.1 General Category Values
-374: add "final" to static declarations
Updated the whole class to final.
Pattern.java:
-2651: stray trailing "{" after comment
-2746: indentation of arguments
Updated
-5493: javadoc the description of Predicate interface and implementations
-5637: if you want it to be the first initializer put it at the top of the
file, not buried at the end.
and make them final.
The "original" comment is a little "misleading. The Pattern class itself is
final though.
That's a start, I need to look a bit more closely at the algorithmic change
that prompted the fix.
thanks! I have also asked Masayoshi to help review the canonical-equivalents
part.
Sherman