RFR 8225198 : Optimize regex tree for greedy quantifiers of type {N, }
Ivan Gerasimov
ivan.gerasimov at oracle.com
Wed Jun 5 00:11:20 UTC 2019
Thank you Claes and Brent for reviewing!
I'll edit the comment as suggested before pushing.
And yes, we do have a few testcases to verify this optimization in
RegExTest.java / BMPTestCases.txt.
With kind regards,
Ivan
On 6/4/19 2:30 PM, Brent Christian wrote:
> Hi, Ivan
>
> The change looks fine.
>
> I would call this "noreg-cleanup". Tests are needed to confirm the
> correctness of the new code, which I imagine we already have.
>
>
> One small suggestion:
>
> src/java.base/share/classes/java/util/regex/Pattern.java
>
>
> 4271 * and unlimited maximum, for *, + and {N,} quantifiers.
>
>
> If the maximum is still MAX_REPS, I'd prefer to continue to say that
> (rather than, "unlimited.")
>
> Thanks.
> -Brent
>
> On 6/3/19 12:54 PM, Ivan Gerasimov wrote:
>> Hello!
>>
>> When building a match-tree, the regex engine optimizes '*' and '+'
>> greedy quantifiers by using special node of type CharPropertyGreedy.
>>
>> This later class can be used unmodified for other greedy quantifiers
>> without the upper limit, i.e. of type '{N,}'.
>>
>> Would you please help review this simple optimization?
>>
>> BUGURL: https://bugs.openjdk.java.net/browse/JDK-8225198
>> WEBREV: http://cr.openjdk.java.net/~igerasim/8225198/00/webrev/
>>
>> (With the fix, one unused class was also removed. This class was to
>> implement conditionals, which were never supported by Java regexs.)
>>
>
--
With kind regards,
Ivan Gerasimov
More information about the core-libs-dev
mailing list