Jump to: navigation, search
Navigation: > 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.


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.

Naming scheme for subpasses

Locations of visitors to this page