quão viável é portar um aplicativo C ++ para bytecode Java usando LLVM (eu acho que LLJVM)?
O fato é que atualmente temos um processo escrito em C ++, mas um novo cliente tornou obrigatório a capacidade de executar o programa de maneira multiplataforma, usando a Java Virtual Machine obviamente sem código nativo (sem JNI). A idéia é poder levar o jarro gerado e copiá-lo para diferentes sistemas (Linux, Win, 32 bits - 64 bits) e deve funcionar.
Olhando em volta, parece possível compilar o código IR de C ++ para LLVM e, em seguida, esse código para bytecode java. Não é necessário que o código gerado seja legível.
Eu testei um pouco com coisas semelhantes usando o emscripten, isso pega o código C ++ e o compila no JavaScript. O resultado é JS válido, mas totalmente ilegível (parece assambler).
- Alguém fez uma porta de um aplicativo de C ++ para bytecode Java usando essa técnica?
- Que problemas podemos enfrentar?
- É uma abordagem válida para o código de produção?
Para esclarecer meu ponto de vista após alguns comentários, talvez a porta não seja bem usada, como resultado, não espero código fonte legível, apenas java bytecode, portanto, não é uma 'porta' que será desenvolvida para mais, apenas que o A plataforma de destino deve ser a JVM java, não a nativa assamblear.
Nota: Estou ciente de que atualmente temos algumas bibliotecas C ++ e de código-fonte não padrão, estamos procurando remover esse código não-padrão e todas as bibliotecas de código-fonte fechado e usar o Software Livre de Código Aberto Libre, então vamos supor que todo o código seja um código C ++ padrão com todo o código disponível em tempo de compilação.
Nota2: Não é uma opção para escrever código C ++ portátil e compilá-lo na plataforma de destino desejada; o programa compilado deve ser multiplataforma, portanto, o uso da JVM.
Nota 3: No momento, não estamos procurando soluções semelhantes aplicadas ao Python ou a outra base de linguagem, mas também gostaria de saber sobre isso. Com isso, quero dizer que nosso executável de destino deve ser java bytecode, mas se houver opções para compilar C ++ para código compilado python válido, também gostaria de saber sobre eles.