Basically a set of build actions related to frontend development and known by moz.build files are assembled in a single make file that contains a single DAG and doesn't need to recurse into directories. See python/mozbuild/mozbuild/backend/fastermake.py and <objdir>/faster/Makefile for the low-level details.
On Fri, Oct 2, 2015 at 12:18 PM, Justin Dolske <dol...@mozilla.com> wrote: > Nice! Out of curiosity, how does "faster" work? Does it just ignore build > targets/directories that involve native code? > > FWIW, I benchmarked various no-changes builds with yesterday's m-c, on my > low-end Surface Pro 3 (i3, 4GB)... > > mach build: 7:38 > mach build browser: 0:43 > mach build toolkit: 1:42 > mach build faster: 0:22 > > Big wins! > > Justin > > On Thu, Oct 1, 2015 at 5:23 PM, Mike Hommey <m...@glandium.org> wrote: > >> Hi, >> >> I recently landed a new build backend that, if you opt-in to running it, >> will make your non-C++ changes to Firefox more readily available in >> local builds. >> >> After you built Firefox normally once, and assuming you only changed >> non-C++ code, you can now use the following command for a faster >> incremental build: >> ./mach build faster >> >> Now, since this is fresh out of the oven, there are a few things to >> know: >> - it doesn't handle removing files >> - it doesn't handle files that would end up outside of dist/bin >> - it doesn't handle a few things like the files from the default profile >> - it currently only works for desktop Firefox >> >> Obviously, this is not an end state, so things will improve in the >> future, but it should work well enough for most day-to-day work for >> desktop Firefox, thus this message. >> >> On my machine, `mach build faster` completes in about 4 seconds for an >> incremental build. This should get even faster very soon. >> >> Additionally, while requiring some manual steps (which bug 1207888 and >> bug 1207890 will help with), it is also possible to use this to build >> desktop Firefox without actually building any C++. Here is how that >> goes: >> - Run `./mach configure` with a mozconfig containing: >> ac_add_options --disable-compile-environment >> - Download and unpack a nightly >> - Use `./mach python toolkit/mozapps/installer/unpack.py <path>`, where >> <path> is the nightly's firefox/ directory. >> - Move that fully unpacked nightly to $objdir/dist/bin (for mac, that >> involves more fiddling, because dist/bin is a somewhat flattened >> version of the .app directory) >> - Ensure the files in $objdir/dist/bin are older than the source files. >> - Run `./mach build faster`. >> - On mac, you will need to run something like (untested) >> ./mach build browser/app/repackage >> >> After that $objdir/dist/bin should contain a bastardized Firefox, with >> xul, js, etc. coming from the source tree, and the remainder still being >> there from the original nightly. >> >> `mach run` should work with that. >> >> Cheers, >> >> Mike >> _______________________________________________ >> firefox-dev mailing list >> firefox-...@mozilla.org >> https://mail.mozilla.org/listinfo/firefox-dev >> > > > _______________________________________________ > firefox-dev mailing list > firefox-...@mozilla.org > https://mail.mozilla.org/listinfo/firefox-dev > > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform