Message4723

Author malte
Recipients malte
Date 2015-10-31.18:43:36
Content
This is a followup to issue586.

The plugin support in the option parser still has a few gaps:

- All plugin types still need to be manually listed in two places in
option_parser.cc
  (calls to get_help_templ).
- Heuristics and ScalarEvaluators need special-casing in a few places because
  of their inheritance relationship. The suggestion made in issue586 for this
  was to get rid of the plugin inheritance feature and unify Heuristics and
  ScalarEvaluators from the UI perspective.
- Open lists need special-casing because they are templated. This is issue481.
- Plugin types that support predefinition still need special-cased code, e.g. to
  define the command-line option name. Currently, the only such options are
  --heuristic for Heuristic and --landmarks for LandmarkGraph.

Additionally, there are other things in the option parser that could be refactored:
- The code should be moved to a directory and use a namespace.
- If possible, the compile-time dependencies should be reduced: currently all users
  of plugins and/or options drag in a lot of code, mainly because of the extensive
  use of templates. Perhaps we can decouple the external interface from the
  implementation better.

Ideally, we would like the option parser code to be encapsulated to the extent
that it could be reused in a different project without changes.
History
Date User Action Args
2015-10-31 18:43:36maltesetrecipients: + malte
2015-10-31 18:43:36maltesetmessageid: <1446313416.15.0.472412080246.issue588@unibas.ch>
2015-10-31 18:43:36maltelinkissue588 messages
2015-10-31 18:43:36maltecreate