你好!我一直在探索 LLVM
.ll
库,并且由于 Kotlin 是一种 LLVM 语言,我假设我可以编译为 IR。但是,我找不到任何有关如何执行此操作的文档。甚至 ChatGPT 也表明没有其他选择。
由于 LLVM 完全是关于 IR 以及在具有共享 IR 基础的同一项目中使用不同语言的优势,我想知道 JetBrains 是否故意遗漏了该选项,或者我只是不理解文档,但它就在那里在众目睽睽之下。
另外,我很好奇是否可以在我的 Kotlin 代码中使用来自 Rust、Clang 或 Swift 的 IR
.ll
类文件。
问:我该怎么做?-LPM,Kotlin 新手
我尝试浏览 kotlinc-native 帮助和在线文档。似乎没有一个允许 IR 编译,而是直接进入字节码。
相反,LLVM 的重点是以编译器需要的方式进行合作。所有编译器都需要相同类型的常量折叠和相同类型的 ARM 代码生成,因此 LLVM 以一种方式(或多或少)做到这一点。但是语言/编译器在调用函数时不需要
same类型的参数传递,或者same内存布局,或者same异常机制,或者same多态性,所以对于这些,LLVM只是提供让每个编译器做它需要的事情的工具,而不是尝试以相同的方式做。 这使得 LLVM 对于编译器作者来说非常有价值,但对于想要在同一项目中使用多种语言的人来说 97% 毫无用处。
在这种情况下,程序员只需要编写一种语言,并且仍然是大型项目的一部分。只需要 .ll 库供她/他使用。