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