Llame al código Python desde LLVM JIT

Escribo un lenguaje lexer / parser / compiler en python, que debería ejecutarse en el LLVM JIT-VM (usandollvm-py) luego. Los primeros dos pasos son bastante sencillos por ahora, pero (aunque no haya iniciado aún la tarea de compilación) veo un problema, cuando mi código quiere llamar al código de Python (en general), o interactuar con el lexer de Python / parser / compiler (en especial) respectivamente. Mi principal preocupación es que el código debe poder cargar dinámicamente el código adicional en la VM en tiempo de ejecución y, por lo tanto, debe activar todo el lexer / parser / compiler-chain en Python desde la VM.

En primer lugar: ¿Es esto posible o la máquina virtual es "inmutable" una vez que se inicia?

Si es que actualmente veo 3 posibles soluciones (estoy abierto a otras sugerencias)

"Rompa" la máquina virtual y haga posible llamar directamente a las funciones de Python del proceso principal (tal vez registrándolo como una función LLVM, que redirige al proceso principal de alguna manera). No encontré nada sobre esto y, de todos modos, no estoy seguro de si esta es una buena idea (seguridad y demás).Compile el tiempo de ejecución (estático o dinámicamente en tiempo de ejecución) en LLVM-Assembly / -IR. Esto requiere que el código IR pueda modificar la máquina virtual en la que se ejecuta.Compile el tiempo de ejecución (estáticamente) en una biblioteca y cárguelo directamente en la máquina virtual. De nuevo, debe poder agregar funciones (etc.) a la máquina virtual en la que se ejecuta.

Respuestas a la pregunta(2)

Su respuesta a la pregunta