Is it possible to generate runtime from a relay IRModule without Python?

To generate a runtime, we can call “build” function, defined in python/relay/build_module.py.

I checked that it internally uses “RelayBuildModule” c++ class, defined in src/relay/backend/build_module.cc.

However when I tried to compile a model directly in c++ app, calling RelayBuildModule directly, (using LLVM target) I found that it is impossible to lower a relay graph without python since relay.backend.lower_call packed function is defined by python.

My question is: 1. Is it possible to generate same behavior with python’s build function, out of python interpreter? 2. It seems that LLVM lowering strategies are programmed with python code. Is there any reason of adapting this design structure? (I think these can also be implemented in C++, giving benefit of multi-lingual, C++ API usually can be easily called in other languages)