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

Reply via email to