[petsc-dev] configure usability
Jed Brown
jed at 59A2.org
Wed Sep 1 05:55:25 CDT 2010
Two thoughts:
1. Systematic deprecation system:
--with-shared doesn't give any errors today, but the option goes
unused (because it's now spelled --with-shared-libraries). I'd like
to see either (a) recognize the old spelling but warn of deprecation,
or (b) error giving the new spelling. This seems easy to do by
updating help.addArgument.
2. It's common to misspell options, difflib is part of the standard library
(from 2.3)
http://docs.python.org/library/difflib.html#difflib.get_close_matches
and would enable a warning like
The option "--with-shard-libaries" was not used, maybe you meant "--with-shared-libraries".
Configure is imperative (as opposed to declarative, or with all
options identified and available very early) so I don't think it's
feasible to provide comprehensive misspelled options help immediately,
but at least the unused options could be listed at the end. This
ought to just be a matter of having argDB log accesses, then at the
end, take all entries that were never accessed and compute Levenshtein
distance to the options that were accessed used to give suggestions.
I'm not sure what to do if configure errors out early, it might be
hitting an error _because_ of an unused option, but there may be lots
of unused options at this stage (that are valid and really will be
used later).
Jed
More information about the petsc-dev
mailing list