既然cmd/go有良好的缓存,那么cmd/coordinator应该使用它。我们可能需要在cmd/go中添加一些钩子来满足我们的需求,但当我大约一年前询问Russ时,他说没问题。/cc @dmitshur@bcmills
pn9klfpd1#
构建缓存是否与特定的编译器版本绑定?一旦编译器稍作更改,每个包都需要重新构建。你能详细说明cmd/coordinator如何使用构建缓存吗?
gtlvzcf82#
许多CL(变更列表)不会影响编译器。(标准变更,文档更新等)今天我们实际上构建并测试了所有内容两次:尝试bots和提交后的构建。
wooyq4lh3#
两个机器人和建造者都会使用缓存吗?我假设运行时间对机器人来说是最重要的。我同意这是一个很好的进步。我能看到的一个可能的缺点是我们将不那么频繁地测试编译器。如果每个建造者在每次运行时都编译Go的全部内容,那么更容易发现漏洞和非常不可能的崩溃。我想知道如果我们失去了这一点,是否会成为一个问题。
q9yhzks04#
我不记得在编译器本身、汇编器或链接器中看到过很多不稳定的情况。我认为运行它们较少次数是可以接受的。
6za6bjd05#
如果我们有空闲容量并且想用它来检查是否存在问题,我们可以始终发布带有干净缓存的额外构建(或使用 GODEBUG=gocacheverify=1 )。
GODEBUG=gocacheverify=1
5条答案
按热度按时间pn9klfpd1#
构建缓存是否与特定的编译器版本绑定?一旦编译器稍作更改,每个包都需要重新构建。
你能详细说明cmd/coordinator如何使用构建缓存吗?
gtlvzcf82#
许多CL(变更列表)不会影响编译器。(标准变更,文档更新等)
今天我们实际上构建并测试了所有内容两次:尝试bots和提交后的构建。
wooyq4lh3#
两个机器人和建造者都会使用缓存吗?我假设运行时间对机器人来说是最重要的。
我同意这是一个很好的进步。我能看到的一个可能的缺点是我们将不那么频繁地测试编译器。如果每个建造者在每次运行时都编译Go的全部内容,那么更容易发现漏洞和非常不可能的崩溃。我想知道如果我们失去了这一点,是否会成为一个问题。
q9yhzks04#
我不记得在编译器本身、汇编器或链接器中看到过很多不稳定的情况。我认为运行它们较少次数是可以接受的。
6za6bjd05#
如果我们有空闲容量并且想用它来检查是否存在问题,我们可以始终发布带有干净缓存的额外构建(或使用
GODEBUG=gocacheverify=1
)。