RFR(s): 8178364: Command-line flags of type double should accept integer values

Per Liden per.liden at oracle.com
Mon Apr 10 11:22:15 UTC 2017


Hi David,

On 2017-04-10 13:03, David Holmes wrote:
> On 10/04/2017 5:40 PM, Per Liden wrote:
>> Hi David,
>>
>> On 2017-04-10 09:27, David Holmes wrote:
>>> Hi Per,
>>>
>>> On 10/04/2017 5:05 PM, Per Liden wrote:
>>>> Hi,
>>>>
>>>> For convenience, command-line flags of type double should accept
>>>> integer
>>>> values (as well as the normal double values). This would allow users to
>>>> write the short form, e.g:
>>>>
>>>> -XX:G1ConcMarkStepDurationMillis=10
>>>>
>>>> instead of always having to do:
>>>>
>>>> -XX:G1ConcMarkStepDurationMillis=10.0
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8178364
>>>> Webrev: http://cr.openjdk.java.net/~pliden/8178364/webrev.0/
>>>> Testing: JTreg test added, passes jprt
>>>
>>> I don't understand why we aren't using set_fp_numeric_flag in this case
>>> - and surely that already handles this case ??
>>
>> With the way this code is structured we only end up in
>> set_fp_numeric_flag() if the string looks like a float to begin with,
>> i.e. has the format "<flag>=<num>.<num>". If the flag looks like
>> "<flag>=<num>" we end up in set_numeric_flag(). Have a look at the call
>> sites for set_fp_numeric_flag() and set_numeric_flag() and you'll see.
>
> That's somewhat odd - shouldn't the type of the flag dictate how we try
> to parse it ??

Indeed, Arguments::parse_argument() does things a bit backwards if you 
ask me, by "guessing" what's on the other side of the "=" instead of 
letting the flag type dictate how it's parsed. Maybe there is (or was) a 
reason for doing so that I don't see.

Anyway, I think my patch is in line with the style/intent of the current 
code. Overhauling Arguments::parse_argument() is probably a good idea, 
but I think that's a separate enhancement.

cheers,
Per

>
> David
>
>> cheers,
>> Per
>>
>>>
>>> Thanks,
>>> David
>>>
>>>> cheers,
>>>> Per
>>>>


More information about the hotspot-runtime-dev mailing list