我正在制作一个应用程序,我想使用 ExecutionEngine 加载和执行 llvm 位代码。到目前为止,我已经设法使用通过 clang 编译的非常简单的 C 代码来做到这一点。
我的想法是,如果我在这个项目中使用 llvm,那么它可能比说的更与语言无关,特别是选择 lua/python/javascript。但是我很困惑这对于托管或脚本语言如何工作,因为它们通常与具有 GC 等资源的平台相关联。所以我不确定它如何通过 ExecutionEngine 实际工作。
因此,作为一个示例场景,假设用户想要编写一些在我的应用程序中运行的 python 代码。然后我希望他们向我提供代表该 python 代码的位码,然后我将使用 llvm 的 ExecutionEngine 在我的 C++ 应用程序中运行它。
这可能吗?python可以简单地编译成bitcode然后使用ExecutionEngine运行吗?如果不是,我需要知道什么才能理解为什么不呢?