Matthew Knepley <[email protected]> writes: > On Mon, Aug 22, 2016 at 8:58 PM, Jed Brown <[email protected]> wrote: > >> Matthew Knepley <[email protected]> writes: >> > Not hard. We just add a flag to each value that is flipped on lookup, >> > like PETSc. >> >> It would be nice to be able to offer suggestions for options that >> BuildSystem queries. For that, we need the set of command line options >> and the set of options that BuildSystem checked. We can get that by >> having RDict implement __missing__(self, key) to consult an immutable >> dict of the direct command line options and logging the query. > > Let me rephrase in order to see if I understand you. Suppose the code > checks for an option that has no value. We currently interactively prompt > for a value.
I don't think I've ever had PETSc prompt me for a value, but options are usually optional (or have defaults) so the code is actually checking whether it exists rather than demanding its value. > You would also like us to suggest that one of the original options > which is close to this was misspelled. This is not hard. How do you know the complete list of recognized options at the moment when one is requested? It seems to me that you have to wait until all options have been checked before showing the --help documentation for any options that are spelled similarly to the unrecognized options that were passed in. > However, > > 1) If the option has a default value, then we cannot see that it is > missing, That's fine; it's what default means. > 2) Those options should turn up in the unused list however You mean on the list of valid options? I would expect "unused list" refers to set.difference(command_line_options, all_valid_options) >> Is it feasible to check all the options by some point meaningfully >> sooner than the entire configure execution? It really sucks to wait >> many minutes for configure to complete only to find out that you >> misspelled an option. Getting that error message up-front would be a >> huge usability improvement. >> > > Right now, I am not sure how you would guarantee that the option would not > be used in the ensuing run. It may be possible to check all the options in __init__ or setupDependencies (and error if any new option is requested after that).
signature.asc
Description: PGP signature
