Go 有稳定的编译器 API 吗?也就是说,假设您想:
- 将 Go 代码解析为中间格式
- 用代码做一些事情(例如分析或优化)
- 正常生成二进制文件
并且您想在步骤 1 和 3 中使用现有的编译器实现,这可能吗?
为了进一步阐明我的意思:C++ 确实有一个编译器 API,感谢 Clang/LLVM,但不是一个稳定的 API(Clang/LLVM 经常破坏 API 向后兼容性,或者我上次检查过),所以这就是那种我正在寻找的东西,但希望稳定。
最佳答案
正如@icza 在评论中所说,您可以使用 go/...
标准库中的包来执行此操作。
标准库属于 Go 1 保证(API 稳定性)。
只要 Go 的主要版本保持为 1,这些包可能会对其 API 进行添加和错误修复,但不会出现重大更改。
阅读guarantee document了解更多信息和边缘案例。
关于go - Go 有稳定的编译器 API 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54507672/