gecko-dev/build/moz.configure/memory.configure
Ricky Stewart 02a7b4ebdf Bug 1654103: Standardize on Black for Python code in mozilla-central.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00

99 lines
3.2 KiB
Python

# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
@depends(target)
def jemalloc_default(target):
return target.kernel in ("Darwin", "Linux", "WINNT")
option(
"--enable-jemalloc",
env="MOZ_MEMORY",
default=jemalloc_default,
help="{Replace|Do not replace} memory allocator with jemalloc",
)
set_config("MOZ_MEMORY", True, when="--enable-jemalloc")
set_define("MOZ_MEMORY", True, when="--enable-jemalloc")
add_old_configure_assignment("MOZ_MEMORY", True, when="--enable-jemalloc")
@depends(milestone, build_project)
def replace_malloc_default(milestone, build_project):
if build_project == "memory":
return True
if milestone.is_early_beta_or_earlier and build_project != "js":
return True
option(
"--enable-replace-malloc",
default=replace_malloc_default,
when="--enable-jemalloc",
help="{Enable|Disable} ability to dynamically replace the malloc implementation",
)
set_config("MOZ_REPLACE_MALLOC", True, when="--enable-replace-malloc")
set_define("MOZ_REPLACE_MALLOC", True, when="--enable-replace-malloc")
@depends(build_project, when="--enable-replace-malloc")
def replace_malloc_static(build_project):
# Default to statically linking replace-malloc libraries that can be
# statically linked, except when building with --enable-project=memory.
if build_project != "memory":
return True
set_config("MOZ_REPLACE_MALLOC_STATIC", replace_malloc_static)
# PHC (Probabilistic Heap Checker)
# ==============================================================
# In general, it only makes sense for PHC to run on the platforms that have a
# crash reporter.
@depends(
milestone,
target,
replace_malloc_default,
"--enable-replace-malloc",
when="--enable-jemalloc",
)
def phc_default(milestone, target, replace_malloc_default, replace_malloc):
if not replace_malloc_default or (
replace_malloc.origin != "default" and not replace_malloc
):
return False
# Nightly or early beta only because PHC has a non-negligible performance cost.
if not milestone.is_early_beta_or_earlier:
return False
# Both Linux32 and Win32 have frequent crashes when stack tracing (for
# unclear reasons), so PHC is enabled only on 64-bit only in both cases.
#
# XXX: PHC is implemented but not yet enabled on Mac. Bug 1576515 is about
# enabling it on Mac, but it is blocked by bug 1035892.
return (
target.os == "GNU" and target.kernel == "Linux" and target.bitness == 64
) or (target.kernel == "WINNT" and target.bitness == 64)
option(
"--enable-phc",
env="MOZ_PHC",
default=phc_default,
when="--enable-jemalloc",
help="{Enable|Disable} PHC (Probabilistic Memory Checker). "
"Also enables replace-malloc and frame pointers",
)
imply_option("--enable-replace-malloc", True, when="--enable-phc")
imply_option("--enable-frame-pointers", True, when="--enable-phc")
set_config("MOZ_PHC", True, when="--enable-phc")