Hi everyone, I'm sure the answer to the question asked in the subject of this thread opener ranges somewhere between "yes" and "OH YEAH BRING IT TO ME ALREADY".
Our build system, you might know, is full of traps, and hard not to break in subtle ways. So it is with extreme care that I landed bug 907365 and bug 915648 (on m-i currently), which will bring you improved build times, but only if you opt in for it. I need volunteers ready to maybe have their builds broken occasionally, but likely not. The first reason you need to opt in is that I didn't want to risk breaking releng builds. The second reason is that while we now do have a way to push some options by default on developer builds while not touching releng builds, I didn't want to leave people with broken builds and no alternative other than doing a releng-like build. At this point, you might ask, "how do I opt-in?". Here you are. Add the following to your .mozconfig: export MOZ_PSEUDO_DERECURSE=1 That's it. Before jumping ahead and building like crazy, you should know that it currently doesn't work with pymake because of bug 918652. You can try to remove the assert as noted in the bug, but your warranty will be void. As far as my testing goes, pymake still works properly without the assert. There are four things the two aforementioned landed bugs do: - Make the tree traversal less recursive. Instead of doing make -C foo, and from foo, make -C bar, we now do make -C foo and make -C foo/bar from top-level. This in itself is kind of boring (but (un?)surprisingly required a lot of preparation), but opens a lot of possibilities. - For the compile and tools steps, do everything in parallel instead of sequentially. As there are no interdependencies between the things built in those steps, it's supposed not to break. - For the export step, do everything in parallel instead of sequentially. As there *are* interdependencies between the things built in this step, it's possible it brings up some race conditions. Some manual dependencies have been added to overcome the known problems, but if you do get a build failure during make export with MOZ_PSEUDO_DERECURSE=1 please file a bug and rebuild with MOZ_PSEUDO_DERECURSE=no-parallel-export, or without MOZ_PSEUDO_DERECURSE (both need mach configure). The former will keep the parallel builds on the compile and tools steps. - Prepare the field for more improvements. If you have any build failure with MOZ_PSEUDO_DERECURSE=1 or MOZ_PSEUDO_DERECURSE=no-parallel-export, please file a bug, or ping me on irc. Fortunately, you can get back to having working builds by just building without MOZ_PSEUDO_DERECURSE. When it is demonstrated to be robust, it will be made the default for non-releng builds (not for windows until bug 918652 is fixed somehow in-tree). More to come in the next few days. Stay tuned. Mike _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform