Closed Bug 1189391 Opened 9 years ago Closed 8 years ago

ICU takes eons to run "genrb" during build (on Windows, at least)

Categories

(Core :: JavaScript: Internationalization API, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
Tracking Status
firefox42 --- affected

People

(Reporter: vlad, Unassigned)

References

Details

A full Windows clobber (debug+optimize) ends up spending a very large amount of time in ICU, running genrb, like so:

PATH=../lib:../stubdata:../tools/ctestfw:$PATH  ../bin/genrb --usePoolBundle -k -i ./out/build/icudt55l -s c:/proj/moz/inbound/intl/icu/source/data/locales -d ./out/build/icudt55l brx_IN.txt

each run takes about 2-3 seconds (fairly beefy laptop; ssd), and these aren't executed in parallel.  This ends up contributing a huge amount of time to the build... 739 locale files, ~2 seconds per file = 24 minutes!

Can we just check in whatever the results of this operation are, or is there any way for me to figure out why it's taking so long?

(Better yet, can we somehow just fetch binary artifacts for ICU from some locally-cached location, distcc-style, instead of doing its stupid slow build every time for something that doesn't ever really change?)
For some reason, the cost to execute genrb from make is extremely high.  genrb can take multiple input fiels in one go; so an easy fix would be to just pass a large number of source files in to one invocation.
In bug 1239083 I'm just going to commit a pre-built ICU dat file to the tree, which will remove these invocations entirely. We'll generate the data file per-ICU-update instead.
Depends on: 1239083
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.