dplsnw7329 2019-02-03 21:17
浏览 18
已采纳

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

Does Go have a stable compiler API? That is, suppose you want to:

  1. Parse Go code to an intermediate format
  2. Do something (e.g. analysis or optimization) with the code
  3. Generate a binary as normal

and you would like to use the existing compiler implementation for steps 1 and 3, is this possible?

To further clarify what I mean: C++ does have a compiler API, thanks to Clang/LLVM, but not a stable one (Clang/LLVM regularly breaks API backward compatibility, or did last I checked), so that's the kind of thing I'm looking for, but hopefully stable.

  • 写回答

1条回答 默认 最新

  • dongman2721 2019-02-04 11:18
    关注

    As @icza said in a comment, you may use the go/... packages from the standard library to do this.

    The standard library falls under the Go 1 guarantee (API stability).

    These packages may see additions and bug fixes to their APIs but not breaking changes, for as long as the major version of Go remains 1.

    Read the guarantee document for further information and edge cases.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?