Right now, the implementations of the codelib and its environment are overly complicated, have redundancies and hardwired things that should rather be dynamic. The code should be refactored so that new codelibs (for new modules) can easily be integrated and be used with the environment without requiring major changes. Also, the initialization of the codelib environment that has grown historically could be simplified and potentially moved to a different place than the compiler driver.
This includes at least the following changes:
moving to a model where concrete codelibs inherit from a base codelib class
the environment does not implement module-specific logic (e.g., injections)
the environment works with everything that extends the new codelib base class
Right now, the implementations of the codelib and its environment are overly complicated, have redundancies and hardwired things that should rather be dynamic. The code should be refactored so that new codelibs (for new modules) can easily be integrated and be used with the environment without requiring major changes. Also, the initialization of the codelib environment that has grown historically could be simplified and potentially moved to a different place than the compiler driver.
This includes at least the following changes: