Objects used by the compiler to handle references to global symbols, modules, external files, etc.
There can be up to three compilation handlers active at the same time during a compilation. They are in order of precedence:
The error handler
This is the object passed to compile() as the second argument (if any). This object is returned by get_active_error_handler() during a compilation.
The compatibility handler
This is the object returned by
master()->get_compilation_handler()(if any), which the compiler calls when it sees #pike-directives, or expressions using the version scope (eg
7.4::rusage). This object is returned by get_active_compilation_handler() during a compilation.
The master object.
This is returned by master() at any time.
Any of the objects may implement a subset of the CompilationHandler functions, and the first object that implements a function will be used. The error handler object can thus be used to block certain functionality (eg to restrict the number of available functions).
- See also
master()->get_compilation_handler(), get_active_error_handler(), get_active_compilation_handler(), compile()