I'm pull-requesting this so that people know this stuff exists. Consider it as low priority, and If there's some interest in it, I might keep this up to date for some time.
Pluses:
- Command line and configuration files are fully parsed before being taken into account, errors are reported (including misspelled or unknown parameters).
- A nice interface is provided to access options & configuration from source code (cf. option.h).
- Single definition of options and default values, which have been moved to the top of .cpp files.
- Checks for integer overflows in configuration values.
- New rpc command "reloadconfig" to dynamically update configuration parameters (Issue #309). Command line parameters will not be overridden. Notice that many core parameters are used only during startup.
- Option -conf is now enough to configure everything (Issue #140).
- A way to force listing of hidden options (-help=allopts) and access to help messages is possible even if bitcoin is already running.
- Fix erroneous error message with respect to the path of the configuration file when using -testnet (Issue #241).
- Removed '\n' and other data from translatable strings (Issue #313).
- Using boost to deal with most filesystem paths.
- Slightly faster access to configuration values (no map lookups).
Minuses:
- Access to configuration values are a bit less recognizable in source code.
- Relies a little deeper on boost (but without added dependencies).
- Uses some hacks around boost::program_options to recover original bitcoin command line style.
Notes:
- This has been tested a little bit on unix (linux), needs to be tested on other arches (Windows).