go - Go 有稳定的编译器 API 吗?

标签 go

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

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

并且您想在步骤 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/

相关文章:

mapreduce - 是否有分布式数据处理管道框架,或者组织一个的好方法?

go - Go 中的 float 精度

postgresql - 如何使用 Go 从 csv 复制到 postgres?

postgresql - Postgres外键上的删除约束

regex - Golang正则表达式: Getting index position of variable

firebase - 如何通过RPC监听Firestore

pointers - 使用 xlsx 包 panic : runtime error: invalid memory address or nil pointer dereference Go

go - 如何使两个对象具有可比性

graphics - 如何用 Go 在 X11 中绘图

multithreading - 在 amd64 上拆分堆栈是不必要的