@requires semantics for VM flags
Jonathan Gibbons
jonathan.gibbons at oracle.com
Fri Nov 9 00:56:15 UTC 2018
Regrettably, your naive intuition is incorrect.
The current semantics are that if a name is undefined or if the name is
set to a value that is not "true" or "false", then it is not a boolean
value, and so you will get an error.
Although I'm not an expert on VM flags, as I understand it, there is no
easy way to tell if a flag should be a boolean value, which makes it
problematic to default unset values to false.
-- Jon
On 11/8/18 2:41 PM, David Holmes wrote:
> Ping!
>
> Thanks,
> David
>
> On 7/11/2018 7:01 PM, David Holmes wrote:
>> Hi,
>>
>> Can you clarify the intended semantics for @requires when referencing
>> a VM flag. It seems the current behaviour is:
>>
>> @requires foo -> foo must exist and == true
>> @requires !foo -> foo must exist and == false
>> @requires foo == true -> IF foo exists then it == true
>> @requires foo == false -> IF foo exists then it == false
>>
>> I would have naively expected:
>>
>> @requires foo
>>
>> and
>>
>> @requires foo == true
>>
>> to be semantically identical?
>>
>> Follow up question: if there are multiple @requires are they
>> evaluated using short-circuit logic ie:
>>
>> @requires vm.bits == 64
>> @requires VMFlagOnlyFor64Bits
>>
>> will not look for the flag if running on a 32-bit system?
>>
>> Thanks,
>> David
More information about the jtreg-use
mailing list