Just landed in inbound (and hopefully sticking) are some build system changes to how XPIDL files are processed (bug 850380).

XPIDL generation now occurs during the "precompile" build tier and runs concurrently with WebIDL and IPDL processing. (Previously, XPIDL processing occurred during the export or libs subtiers during the platform and apps tiers.) If you run |make| or |make export| from a directory containing XPIDL files, XPIDLs will still be built.

We changed how XPIDLs are processed to require fewer process invocations. Instead of producing a .h/.xpt for each .idl and linking the .xpt files together, we now have a single process invocation that takes each .idl going into the final/linked XPIDL "module" and emits multiple .h files and a single linked .xpt file. This drastically reduces overhead.

We also removed XPIDL_FLAGS from the build config. It was previously used to define all the extra directories to search for dependency .idl files. Since moz.build now gives us a "whole world view," we no longer need this "hint."

Altogether, this patch appears to shave ~4 minutes of CPU time from the build (at least on my machine). If you were performing a clobber build with a fully populated ccache, my measurements show this patch reduces CPU time from ~800s to ~560s, about a 30% reduction!

If you notice anything funky with XPIDL generation in the build system, please comment on bug 850380.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to