this works great for me.. touching network/protocol/http/nsHttpChannel.cpp
and rebuilding with "mach build binaries" runs in 26 seconds compared to 61
with just "mach build", and I see the same ~35 second savings when doing it
on a total nop build (39 vs 5). awesome.

-P



On Tue, Oct 1, 2013 at 9:17 PM, Mike Hommey <m...@glandium.org> wrote:

> Hi,
>
> If you've read the "You want faster builds, don't you" thread, you may
> know that some build improvements have recently landed.
>
> I just landed the most important part of it all, and we should now be in
> a much better place, but, as I'm very cautious, and as this is
> incremental improvements to an existing complex build system that is
> hard to improve all at once without some subtle breakages, this is
> opt-in. It also doesn't work with pymake because of bug 918652.
>
> At this point, you probably want to know what it is and how to use it.
>
> There is now a new target for incremental C/C++ rebuilds. What this means
> is, you build once like usual. Then after you do your C/C++ changes,
> instead of:
>   - mach build or make -C objdir, which takes forever
>   - mach build subdirectory/of/the/changes, which sometimes rebuilds
>     toolkit/library, sometimes not, depending what you're rebuilding.
>   - make -C objdir/subdirectory/of/the/changes && make -C
>     objdir/toolkit/library, which may actually not be enough.
> you can now do:
>   - mach build binaries
>     or
>   - make -C objdir binaries
>
> It will rebuild your changes and everything that needs rebuilding because
> of them. It will also do that quickly.
>
> There are a few caveats:
> - it only handles C/C++ changes, including headers. It doesn't handle js
>   modules, chrome data, etc.
> - it does *not* handle changes to xpidl, webidl, ipdl. yet. There's a
>   followup for this to happen: bug 921309.
> - it doesn't handle changes to nss, nspr, icu or ffi. If you do changes
>   there, you still need to run a normal build.
> - it doesn't work without doing a normal build first.
> - while it shouldn't break your builds, it might subtly skip what you
>   would expect it to build. If it does, please file a bug or contact me
>   on irc. You can still use the old ways until your issues are fixed.
>
> Something else that I landed today is support to skip directories during
> a normal build when they're not relevant to the build. As always, I'm
> overcautious and this is opt-in. If you want to opt-in for this (and
> future experimental improvements), please add "export
> MOZ_PSEUDO_DERECURSE=1" to your mozconfig. Except if you're using
> pymake, sadly. The more people test those experimental improvements, the
> quicker they can become the default for everyone.
>
> For those interested in the gory details, I'll post some on my blog within
> the next few days.
>
> Mike
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
>
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to