[petsc-dev] configure usability

Aron Ahmadia aron.ahmadia at kaust.edu.sa
Wed Sep 1 07:39:40 CDT 2010


cgparse/optparse do what I need.  cfgparse is especially nice for pulling
information in from multiple files

- general site configuration
- specific package configuration
- user configuration requests

Definitely not just a few hours of hacking though to get it right.

A

On Wed, Sep 1, 2010 at 3:30 PM, Matthew Knepley <knepley at gmail.com> wrote:

> On Wed, Sep 1, 2010 at 12:56 PM, Matthew Knepley <knepley at gmail.com>wrote:
>
>> On Wed, Sep 1, 2010 at 12:55 PM, Jed Brown <jed at 59a2.org> wrote:
>>
>>> 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.
>>>
>>
>> Good idea. Will do it.
>>
>
> Okay, our options system is sufficiently broken, that this is not easy. I
> wish we could
> use Python options, but it does not seem customizable enough to fit our
> dynamic outlook
> and help system. Pyre would be nice, but it is being rewritten and has too
> much cruft
> right now.
>
> The problem is that clArgs are processed before initial options are set.
> This should be
> disentangled, because they have to be processed again sometime since they
> override
> defaults.
>
> We should completely rewrite the system to do tracking of input, multistage
> selection,
> help output in other formats, unused options, misspelling detection, etc. I
> can't do it
> right now.
>
>    Matt
>
>
>>
>>> 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.
>>>
>>
>> The first part, putting in access logging, has been on the list for a long
>> time.
>> We need to do it, but its a bit of programming.
>>
>>
>>>  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).
>>
>>
>> This is not really soluble now I think.
>>
>>    Matt
>>
>>
>>>
>>> Jed
>>>
>>
>>
>>
>> --
>> What most experimenters take for granted before they begin their
>> experiments is infinitely more interesting than any results to which their
>> experiments lead.
>> -- Norbert Wiener
>>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20100901/51c2f836/attachment.html>


More information about the petsc-dev mailing list