Hi David/Galina, FYI, I found one big reason why self-hosting bots fail long after the offending commit is tested: dirty builds. In a dirty build (no make clean), when a file X is changed that breaks file Y, the bot will only accuse the failure when file Y is changed, too, so that stage1 with modified X will compile file Y, and break. At hindsight, it's obvious. But I hadn't connected the dots before... :/ I'm moving all my self-hosting bots to clean builds and will be relying solely on ccache to make stage1 fast. This shall help with "breakages not on the blame list" problems. cheers, --renato
On Mon, Nov 9, 2015 at 4:32 AM, Renato Golin <renato.golin at linaro.org> wrote:> Hi David/Galina, > > FYI, I found one big reason why self-hosting bots fail long after the > offending commit is tested: dirty builds. > > In a dirty build (no make clean), when a file X is changed that breaks > file Y, the bot will only accuse the failure when file Y is changed, > too, so that stage1 with modified X will compile file Y, and break. >That sounds like a bug in the build system - do you have any examples of this? We should fix them. The build should be reliable - any case where a clean build produces a different result from a dirty build reduces/removes confidence in incremental builds & hurts developer productivity (just like flakey tests, etc). - David> > At hindsight, it's obvious. But I hadn't connected the dots before... :/ > > I'm moving all my self-hosting bots to clean builds and will be > relying solely on ccache to make stage1 fast. This shall help with > "breakages not on the blame list" problems. > > cheers, > --renato >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151109/f666680c/attachment.html>
On Nov 9, 2015, at 11:42 AM, David Blaikie via llvm-dev <llvm-dev at lists.llvm.org> wrote:> > > On Mon, Nov 9, 2015 at 4:32 AM, Renato Golin <renato.golin at linaro.org <mailto:renato.golin at linaro.org>> wrote: > Hi David/Galina, > > FYI, I found one big reason why self-hosting bots fail long after the > offending commit is tested: dirty builds. > > In a dirty build (no make clean), when a file X is changed that breaks > file Y, the bot will only accuse the failure when file Y is changed, > too, so that stage1 with modified X will compile file Y, and break. > > That sounds like a bug in the build system - do you have any examples of this? We should fix them. > > The build should be reliable - any case where a clean build produces a different result from a dirty build reduces/removes confidence in incremental builds & hurts developer productivity (just like flakey tests, etc).I think he meant that the /second-stage/ build should always be done as a clean build -- to make sure that all of the source gets rebuilt with the newly-compiled compiler, instead of only rebuilding the modified sources with the newly-built compiler. Build systems typically aren't expected to watch out for the compiler itself changing out from under them. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20151109/d6897b8e/attachment.html>