This macro generates two functions in the scope where it is used:
extern "C" void initname(),
and void init_module_name(), whose body must
follow the macro invocation. init_name passes
init_module_name to handle_exception() so
that any C++ exceptions generated are safely processeed. During the
body of init_name, the current scope refers to the module
being initialized.