Closed Bug 783357 Opened 12 years ago Closed 12 years ago

use PARALLEL_DIRS in dom/

Categories

(Core :: DOM: Core & HTML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla17

People

(Reporter: froydnj, Assigned: froydnj)

References

Details

Attachments

(2 files, 1 obsolete file)

Attached patch PARALLEL_DIRS magic for dom/ (obsolete) — Splinter Review
dom/ has grown pretty big, almost as big as content/.  content/ does PARALLEL_DIRS.  dom/ doesn't.  Let's fix that.

Fresh build before PARALLEL_DIRS:

real	10m46.380s
user	75m31.311s
sys	6m47.187s

Fresh build with attached patch:

real	10m9.947s
user	77m9.975s
sys	6m52.453s

so ~5% improvement.

Guessing there are some subtle ordering issues which one run doesn't turn up, though...
Attachment #652529 - Flags: feedback?(khuey)
I'm pretty sure we can't do interfaces/ in parallel.
Yeah, I do see some random build failures on try.  May look at those today.
Attachment #652529 - Flags: feedback?(khuey)
(In reply to :Ms2ger from comment #1)
> I'm pretty sure we can't do interfaces/ in parallel.

So it *looks* like the only thing preventing this from happening is that, e.g. domstubs.idl is included by a bunch of different files, thus requiring interfaces/base to be built before everything else.  (And other examples, but domstubs is the most prominent one that I've seen.)

dom/interfaces/base/Makefile.in gets around some circularity by appending to XPIDL_FLAGS; would it be reasonable to add the necessary XPIDL_FLAGS+= bits to the appropriate directories so it at least *looks* like we are declaring our dependencies, rather than requiring serialization to sort them out for us?
fiddling with XPIDL_FLAGS (like LOCAL_INCLUDES) is the right way to proceed.
Here's the boring patch that adds XPIDL_FLAGS where necessary.  This whole patch was generated by a script, the logic is something like:

for each directory with idl files:
  determine #includes
  find where the #includes live
  write appropriate XPIDL_FLAGS bits to the directory's Makefile.in

so I am reasonably confident it won't produce random build failures.  I assumed that only dependencies in dom/ mattered; other deps should be taken care of by top-level serialization, IIUC.
Attachment #654617 - Flags: review?(khuey)
This patch flips dom/Makefile.in to use PARALLEL_DIRS in all the appropriate places.
Attachment #652529 - Attachment is obsolete: true
Attachment #654618 - Flags: review?(khuey)
CC'ing gps in case he has insights on this from build-splendid work.
Comment on attachment 654617 [details] [diff] [review]
add XPIDL_FLAGS where necessary

Review of attachment 654617 [details] [diff] [review]:
-----------------------------------------------------------------

XPIDL_FLAGS += \
  directory \
  $(NULL)

Even on the single line ones please.
Attachment #654617 - Flags: review?(khuey) → review+
Comment on attachment 654618 [details] [diff] [review]
PARALLEL_DIRS magic for dom/

Review of attachment 654618 [details] [diff] [review]:
-----------------------------------------------------------------

::: dom/Makefile.in
@@ +43,2 @@
>    interfaces/apps \
>    $(NULL)

Just move this up into the other set of PARALLEL_DIRS.
Attachment #654618 - Flags: review?(khuey) → review+
https://hg.mozilla.org/mozilla-central/rev/fb4219f3723d
https://hg.mozilla.org/mozilla-central/rev/544b0cbdbb09
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla17
Blocks: 786703
So how about we back this out until we can do it right?
Yes, please back this out until we can fix the build issue.
FWIW, there is a patch for the build issue in bug 786703.
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.