Go是否有稳定的编译器API?

时间:2019-02-03 21:17:08

标签: go

Go是否有稳定的编译器API?也就是说,假设您要:

  1. 将Go代码解析为中间格式
  2. 使用代码进行一些操作(例如分析或优化)
  3. 正常生成二进制文件

并且您想将现有的编译器实现用于步骤1和3,这可能吗?

进一步说明我的意思:由于Clang / LLVM,C ++确实有一个编译器API,但不是一个稳定的API(Clang / LLVM经常破坏API的向后兼容性,或者我上次检查过),所以这就是我正在寻找的东西,但希望能稳定。

1 个答案:

答案 0 :(得分:1)

正如@icza在评论中所说,您可以使用标准库中的go/...软件包来完成此操作。

标准库属于Go 1保证(API稳定性)。

只要Go的主要版本保持为1,这些程序包可能会对其API进行补充和错误修复,但不会破坏更改。

阅读guarantee document,了解更多信息和特殊情况。