fix_stack_using_bpsyms.py locates a .sym file based on file name only, not uuid or full path,
which causes a failure if a duplicate leaf file name is introduced. This patch introduces a
small utility program on mac and linux to extract a breakpad guid from a shared library or
executable to identify the correct symbol file when this ambiguity occurs. A subsequent commit
implements this for windows.
fix_stack_using_bpsyms.py locates a .sym file based on file name only, not uuid or full path,
which causes a failure if a duplicate leaf file name is introduced. This patch introduces a
small utility program on mac and linux to extract a breakpad guid from a shared library or
executable to identify the correct symbol file when this ambiguity occurs. A subsequent commit
implements this for windows.
This grabs the list of changed and added files that match the set we expect to
be able to lint and runs them through eslint displaying simple messages on error.
Running old extensions with newer versions of Mercurial may crash `hg`
due to the old extension accessing something or doing something that has
been changed in the new release.
To minimize the risk of this happening, we disable common 3rd party
extensions when cloning or pulling as part of `mach mercurial-setup`. We
don't want to disable everything because some extensions (like
remotenames) provide features the user may want enabled as part of the
clone/update. This leaves the door open for more failures. Hopefully
this approach is sufficient. We can always revisit later.
This can speed up performance significantly.
Only support OS X for now because on Linux we have to adjust inode
limits to support mozilla-central and I don't feel like scope bloating.
bundleclone is the Mozilla-specific precursor to the "clonebundles"
feature in Mercurial 3.6. Change the wizard to recognize when
clonebundles is available and to favor it. Activating clonebundles will
also disable bundleclone, as bundleclone is redundant with clonebundles.
(If both are enabled, bundleclone detects this and gets out of the way.)
Main reason for recommending 3.5 is bundle2. The protocol is faster and
we can do things like put extra data in the server exchange. It also
enables generaldelta to be exchanged without pain.
And of course there are tons of performance improvements and bug fixes.
We need to let ContentParent and PluginModuleParent get a reference to the ProfileGatherer
during the window of time that we're profiling so that if they start to die (the actor is
starting to go away), they have a gatherer they can send their last profile data to.
This makes it clearer that really it's the same thing as FINAL_TARGET,
with preprocessing.
We still keep DIST_FILES in backend.mk because it's shorter and doesn't
really matter.