Chame o código Python de LLVM JIT

Eu escrevo uma linguagem lexer / parser / compilador em python, que deve ser executado no LITVM JIT-VM (usandollvm-py) mais tarde. Os dois primeiros passos são bastante simples por enquanto, mas (mesmo que eu não tenha iniciado a tarefa de compilação ainda) vejo um problema, quando meu código quer chamar Python-Code (em geral) ou interagir com o léxico de Python / parser / compilador (em especial) respectivamente. Minha principal preocupação é que o código deve ser capaz de carregar dinamicamente código adicional na VM em tempo de execução e, portanto, deve acionar toda a cadeia de lexers / analisadores / compiladores no Python a partir da VM.

Primeiro de tudo: isso é possível, ou a VM é "inabalável" depois de iniciada?

Se é atualmente vejo 3 soluções possíveis (estou aberto para outras sugestões)

"Break out" da VM e torna possível chamar diretamente as funções Python do processo principal (talvez registrando-o como uma função LLVM, que redireciona para o processo principal de alguma forma). Eu não encontrei nada sobre isso e de qualquer maneira eu não tenho certeza, se isso é uma boa idéia (segurança e tal).Compile o tempo de execução (estaticamente ou dinamicamente no tempo de execução) no LLVM-Assembly / -IR. Isso requer que o código de infravermelho seja capaz de modificar a VM na qual ele é executado.Compile o tempo de execução (estaticamente) em uma biblioteca e carregue-o diretamente na VM. Novamente, ele deve poder adicionar funções (etc) à VM em que é executada.

questionAnswers(2)

yourAnswerToTheQuestion