![]() Move most of the logic of determining which compiler configuration to use (such as GOOS/GOARCH, build tags, whether to include debug symbols, panic strategy, etc.) into the compileopts package. This makes it a single source of truth for anything related to compiler configuration. It has a few advantages: * The compile configuration is independent of the compiler package. This makes it possible to move optimization passes out of the compiler, as they don't rely on compiler.Config anymore. * There is only one place to look if an incorrect compile option is used. * The compileopts provides some resistance against unintentionally picking the wrong option, such as with c.selectGC() vs c.GC() in the compiler. * It is now a lot easier to change compile options, as most options are getters now. |
||
---|---|---|
.. | ||
config.go | ||
options.go | ||
target.go | ||
target_test.go |