On 05/29/2012 12:50 PM, Joseph S. Myers wrote:
> On Tue, 29 May 2012, Christian Bruel wrote:
> 
>>> The existing rule is supposed to be: options are only accepted if in 
>>> *both* a .opt file *and* a spec.  If not in a .opt file, the common 
>>> machinery will reject them; if in a .opt file but not a spec, the driver's 
>>> own validation machinery will reject them.
>>
>> Thanks for confirming this, the question was more specifically for
>> <%options. Today, with the current implementation, I see two uses cases:
>>
>> 1) The flag appears in a %< spec but is not in a .opt file
>>   -> It is *not* rejected. It is just ignored.
> 
> I don't really see that as a use case; it's more a matter of an internal 
> consistency check that could be done but isn't.  I'm only concerned about 
> cases where the option is actually passed on the command line to the 
> driver.
> 
>> 2) The flag appears in a user switch and in a %< spec, and not in a .opt
>> file.
>>   -> It is rejected.
> 
> There are also cases:
> 
> * The option, passed by the user, is in a .opt file, a %< spec but no 
> other spec.  (Should be accepted.)

yes, it is.

> 
> * The option, passed by the user, is in a .opt file and no spec at all.  
> (Should be rejected.)

yes, it is.

> 
>> To refocus on the original question from the patch. I'm still not
>> convinced after our discussions and testings that the propagation of the
>> user flag to the do_spec functions is required to keep the same semantic.
> 
> With the proposed change to the rules for when a spec serves to validate 
> an option, all settings of the "validated" field need to be reviewed to 
> make sure that they are in accordance with the new rules - and that it is 
> transparent to human readers of the code that they are in accordance with 
> the new rules. If you don't think propagation is needed to do_spec
> functions, then it should be possible to remove the "validated" setting in 
> there, with a proper explanation of the order in which the various 
> relevant functions are called and where "validated" will previously or 
> subsequently be set.
> 

I agree. I see two potential settings of the validated field. The %<
that we just reviewed, and the case : /* We have Xno-YYY, search for
XYYY.  */

It seems possible to remove those, I've just checked this during lunch
:-) with the scenarios described above (without use m* f* specs).

If it is a prerequisite before my --spec patch, I'd like to propose it
as an independent one, since this is a valid modification regardless of
the --spec implementation (although it makes it clearer).

Many thanks

Christian






Reply via email to