From cTuning.org
Navigation: cTuning.org > CTools > ICI
Several directions worth exploring:
- plugin selection from command line;
- invocation of plugins at all compilation stages (before compilation during --version), at cc1, at linking
- support for multiple plugins;
- support for multiple callbacks per event;
- naming scheme for subpasses.
The individual topics are discussed in the sections below.
Contents |
Plugin selection from command line
This is already in place in the proposed Mozilla patch. The dual approach should be no problem, and the environment-based selection could be phased out in a future release of ICI.
Support for multiple plugins
- it can be implemented equally well using command-line selection (as in the Mozilla case) or environment variables (with proper separator in the variable value - typically a Unix-style colon - but beware of Cygwin/Mingw).
- on the internal design side, it implies the tracking of the association between plugins and the entities they provide (events, callbacks, etc.) for debugging/reporting.
- the Mozilla low-level plugin implementation could serve as a starting point.
Support for multiple callbacks per event
- the Mozilla low-level plugin implementation has this support already
- caveat: the Mozilla code has a different callback signature, meaning that the support should be made polymorphic. This is not big problem, though: just use a union to capture the different types of callback functions, plus a flag to indicate the actual type.