You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
go tool compile supports splitting the actual compiled code from the export info that other packages need to compile against. This is achieved by passing -linkobj (the -o target then contains only the export info).
Theoretically we could take advantage of this to improve incrementality; altering the implementation of a function but not its signature (or just altering non-exported functions) would then not cause rebuilds of anything downstream except the final binaries.
This isn't super easy to achieve though. Adding the flag & extra output obviously isn't hard but we can't provide a specific output of a target. It could be done by splitting into two actions but then we're doubling the compile work which seems basically worse. It's not dissimilar to how our C++ rules work but they get around it because they can just spit out their headers, whereas here both are outputs of the compiler. We may need some kind of extension to Please to support this.
The text was updated successfully, but these errors were encountered:
go tool compile
supports splitting the actual compiled code from the export info that other packages need to compile against. This is achieved by passing-linkobj
(the-o
target then contains only the export info).Theoretically we could take advantage of this to improve incrementality; altering the implementation of a function but not its signature (or just altering non-exported functions) would then not cause rebuilds of anything downstream except the final binaries.
This isn't super easy to achieve though. Adding the flag & extra output obviously isn't hard but we can't
provide
a specific output of a target. It could be done by splitting into two actions but then we're doubling the compile work which seems basically worse. It's not dissimilar to how our C++ rules work but they get around it because they can just spit out their headers, whereas here both are outputs of the compiler. We may need some kind of extension to Please to support this.The text was updated successfully, but these errors were encountered: