Commit Graph

1500 Commits

Author SHA1 Message Date
Gregory Szorc
83d847a354 Bug 1108399 - Split command group populating into own function; r=ahal
An upcoming patch will reuse this code. Split it out into its own
function.
2014-12-07 11:56:31 -08:00
Gregory Szorc
5c9c715038 Bug 1108399 - Introduce decorator for mach sub-commands; r=ahal
With this patch, we now have the ability to declare mach sub-commands.
Subsequent patches will implement dispatching for sub-commands.
2014-12-07 11:40:39 -08:00
Gregory Szorc
cab32f370f Bug 1108399 - Properly name command help function; r=ahal
We will soon have proper sub-commands. Let's fix function names.
2014-12-06 21:58:46 -08:00
Gregory Szorc
06c94040fe Bug 1108399 - Remove outdated comment about hooking up conditional commands; r=ahal
mach conditions are implemented elsewhere. This comment can die.
2014-12-06 21:53:16 -08:00
Gregory Szorc
318fd6e02d Bug 1108399 - Fix docs for mach decorators; r=ahal
Documentation was referencing sub commands. The proper terminology is
"command."
2014-12-06 21:15:27 -08:00
Gregory Szorc
5af0c6abf1 Bug 1108399 - Properly link to Python docs; r=ahal
There were a few parts of the docs that were linking to Python types
incorrectly. Let's fix that.
2014-12-07 11:37:54 -08:00
Gregory Szorc
bfe6799d76 Bug 1108399 - Split mach documentation into multiple articles; r=ahal
The main mach docs page is a bit long. Let's split it into multiple
articles to increase readability going forward.
2014-12-07 11:34:06 -08:00
Gregory Szorc
39a76e34a5 Bug 1108399 - Improve code linking in mach docs; r=ahal
Now that mach's docs are part of a proper Sphinx install, link to
Python type docs. While we're here, we also clean up formatting of code
samples.
2014-12-07 11:23:46 -08:00
Gregory Szorc
907c3c2ef9 Bug 1108399 - Move mach docs into sphinx; r=ahal
mach has restructured text documentation. Let's expose it to the in-tree
Sphinx config so we can increase visibility of the documentation.
2014-12-07 10:40:19 -08:00
Nicholas Nethercote
8842f78222 Bug 1100851 (follow-up 2) - Fix more trivial bustage in |mach run --dmd|. r=glandium.
DONTBUILD because NPOTB.
2014-12-17 18:24:38 -08:00
Nathan Froyd
06bc5468c5 Bug 1109826 - part 1 - make the preprocessor able to avoid emitting warnings about missing directives; r=mshal 2014-12-10 14:49:44 -05:00
Nicholas Nethercote
84279946f2 Bug 1100851 - Tweak DMD to account for the fact that $DMD can now be undefined. r=glandium.
Now that defining $DMD is no longer necessary to run DMD, this patch does the
following.
- Removes all the places where we set DMD=1 (test harnesses, etc.)
- Still handles DMD=1, for backwards compatibility.
- Prints "$DMD is undefined" at DMD start-up if appropriate.
- Writes a |null| value for |dmdEnvVar| in the JSON if $DMD is undefined. Bumps
  the DMD output version number accordingly.
- Changes a bunch of the test files accordingly, including changing the mode of
  script-ignore-alloc-fns.json in order to test a case where $DMD is undefined.
2014-11-27 21:04:46 -08:00
Phil Ringnalda
e850ff7d0c Backed out 2 changesets (bug 1105128) for Windows make check failures
CLOSED TREE

Backed out changeset 5dfe0838798c (bug 1105128)
Backed out changeset def38e936db8 (bug 1105128)
2014-12-09 20:42:01 -08:00
Gregory Szorc
1ef2b3f9f0 Bug 1105128 - Alias os.path functions in local scope; r=glandium
Various os.path attributes are being used in tight loops. Having local
variables prevents extra dictionary lookups.

This appears to shave 10-20ms off of the tests install manifest
processing time.
2014-11-25 18:37:11 -08:00
Gregory Szorc
14a2905919 Bug 1105128 - Avoid excessive path normalization in FileCopier.copy(); r=glandium
FileCopier.copy() was performing a lot of os.path.normpath() operations.
Profiling revealed that os.path.normpath() was the function with the
most wall time CPU usage when processing the tests manifests. Upon
subsequent examination of the code in question, all the paths being used
were already normalized. So, os.path.normpath() wasn't accomplishing
anything.

This patch results in ~300ms reduction in wall time to process the tests
install manifest on a fully populated page cache. Execution time drops
from ~2.8s to ~2.5s.

Profiling reveals that after this patch os.stat() is the #1 wall time
consumer. However, os.path.{join,dirname,normpath} still account for
~1.5x the wall time of os.stat(). There is still room to optimize
this function.
2014-11-25 18:16:22 -08:00
Nicholas Nethercote
4beda4eda0 Bug 1094552 (part 6) - DMD: add support for cumulative heap profiling. r=mccr8.
By adding a new "cumulative" mode.
2014-10-30 20:22:47 -07:00
Nicholas Nethercote
1794d21329 Bug 1094552 (part 5) - DMD: choose the profiling mode at start-up. r=mccr8.
This patch moves profiling mode selection from post-processing (in dmd.py) to
DMD start-up. This will make it easier to add new kinds of profiling, such as
cumulative heap profiling.

Specifically:

- There's a new --mode option. |LiveWithReports| is the default, as it is
  currently.

- dmd.py's --ignore-reports option is gone.

- There's a new |mode| field in the JSON output.

- Reports-related operations are now no-ops if DMD isn't in LiveWithReports
  mode.

- Diffs are only allowed for output files that have the same mode.

- A new function ResetEverything() replaces the SetSampleBelowSize() and
  ClearBlocks(), which were used by the test to change DMD options.

- The tests in SmokeDMD.cpp are split up so they can be run multiple times, in
  different modes. The exact combinations of tests and modes has been changed a
  bit.
2014-12-08 14:45:14 -08:00
Gregory Szorc
91c801a037 Bug 1108294 - Removed unused makeutils Python module; r=froydnj
There are no more consumers of makeutils.py in the tree. So we delete
it.
2014-12-06 15:48:42 -08:00
Gregory Szorc
f7ae0b6d2f Bug 1107968 - Add --debug-command to mach; r=ahal
People often seek to learn how mach commands work. A common way to do
this is to launch a debugger and step through the code as it is
executing. But this requires someone to first find and modify the mach
command. This involves overhead.

This patch adds a global --debug-command argument to mach. When present,
we launch an interactive debugger right before command dispatch. This
allows people to easily enter a debugger to see what mach commands are
doing, hopefully lowering the barrier to understanding and contributing.
2014-12-05 10:19:49 -08:00
Mike Shal
690145336a Bug 1091668 - generate voucher on signed plugin-container; r=glandium 2014-11-25 10:43:43 -05:00
Ting-Yu Lin
6dff0bb13a Bug 1105090 - Update ccache parser against version 3.2. r=gps
ccache version 3.2 adds primary config and secondary config in the
statistic report. Update the ccache stats parser to support that.
2014-11-26 06:25:00 +01:00
Nick Alexander
199eb0fa27 Bug 1105052 - Update in-tree jsmin to commit a878bf0. rs=gps
This is a straight copy from

a878bf0ba0

paired with a tiny change to use the new quote_chars option.
2014-11-25 16:02:08 -08:00
Mike Shal
b89173b380 Bug 1091668 - Import eme voucher script; r=ted, r=gerv 2014-11-03 11:24:55 -05:00
Mike Shal
bb6b3855b2 Bug 1091668 - Import bitstring-3.1.3; r=ted, r=gerv 2014-11-03 10:47:25 -05:00
Mike Shal
4d7bde0953 Bug 1091668 - Import pyasn1-0.1.7; r=ted, r=gerv 2014-11-03 10:46:46 -05:00
Kartikaya Gupta
c386b5f771 Bug 1092217 - Allow debugging gtests via mach gtests --debug. r=ted 2014-11-24 15:29:40 -05:00
Anton Neumann
b69c112b23 Bug 906177 - Fix bootstrap on elementary; r=gps
DONTBUILD (NPOTB)
2014-11-21 09:58:29 -08:00
Gregory Szorc
0284c3356b Bug 1094303 - Move XPT buildlist into misc tier; r=glandium
buildlist invocations are slow and can occur in parallel since the
underlying program obtains a lock on the modified file.

Moving the XPT-related buildlist invocation from the serial libs tier to
the parallel misc tier decreased my no-op build time on OS X from 43.5s
to 37.0s.
2014-11-05 09:20:35 -08:00
Vaibhav Agrawal
ca53ae4690 Bug 1089037 - Removing invalid mochitests and moving webapprt-content tests to a seperate "webapprtContent" folder in object directory. r=jmaher, marco 2014-11-13 12:30:00 +01:00
Gregory Szorc
9dbc9f8e01 Bug 1098135 - Traverse directories with misc rules; r=glandium
When the misc tier was added, only directories with misc-associated
variables from moz.build were traversed. This patch adds a dummy
variable to moz.build whose presence will add the directory to the misc
tier.

This will enable us to aggressively convert existing libs:: rules
to the misc tier.
2014-11-12 21:59:22 -08:00
Joshua Cranmer
8a761ee01a Bug 910781 - add support for FINAL_TARGET_FILES; r=gps 2014-07-23 13:56:25 -04:00
Gregory Szorc
5f3ace7965 Bug 1094302 - Update build system tests to cover moved tier; r=glandium
This fixes |make check| bustage on inbound.
2014-11-06 20:17:17 -08:00
Gregory Szorc
eddc2b9062 Bug 1094302 - Move JS module installation into the misc tier; r=glandium
JS module installation performs simple file copying or preprocessing.
There is no reason it can't occur in parallel. Move it to the misc tier.

As part of this, I recognized that TESTING_JS_MODULES was assigned to a
tier. Since these files are managed by an install manifest, they don't
belong to any tier. So the tier is now listed as None.
2014-11-05 09:47:14 -08:00
Mike Hommey
9412afdb09 Bug 1094037 - Move EXTRA_COMPONENTS and EXTRA_PP_COMPONENTS to the misc tier. r=gps 2014-11-06 09:29:11 +09:00
Wes Kocher
c2359b8a97 Backed out changeset db93b3cbdc17 (bug 1094037) on a CLOSED TREE 2014-11-05 17:22:50 -08:00
Mike Hommey
dac717ad4e Bug 1093499 - Add a -C option to mach build. r=gps
The build system being what it currently is, there are various cases where one
wants something explicit, rather than the current autodetection.

For instance, one may want to run
  make -C $objdir chrome
instead of
  make -C $objdir/chrome
that mach build chrome currently invokes.

There are several such usecases that mach's autodetection makes harder, and
it's sometimes awkward when telling people, to debug their issues, to run
  make -C objdir something
and hear back that objdir doesn't exist or something along those lines,
because they took "objdir" literally.
2014-11-06 09:29:27 +09:00
Mike Hommey
2ae6a7b5f0 Bug 1094037 - Move EXTRA_COMPONENTS and EXTRA_PP_COMPONENTS to the misc tier. r=gps 2014-11-06 09:29:11 +09:00
Mike Hommey
41614a5c21 Bug 1094033 part 2 - Add a "misc" parallel tier where to move parts of the libs tier that can be moved. r=gps 2014-11-06 09:29:11 +09:00
Mike Hommey
be97f93c9b Bug 1094033 part 1 - Consolidate how to add new tiers. r=gps 2014-11-06 09:29:11 +09:00
Mike Hommey
40ad22f0fc Bug 1091383 - Move delayload logic entirely in moz.build frontend code. r=gps 2014-11-04 13:48:25 +09:00
Andrew Halberstadt
c89ea5ca9b Bug 1092149 - Use LooseVersion instead of StrictVersion in |mach mercurial-setup| so release candidates work, r=gps 2014-10-31 15:09:39 -04:00
Nick Alexander
307f8298f3 Bug 1090599 - Upgrade in-tree jsmin to release-2.0.11. r=gps
This updates to release-2.0.11 (sha1: 04374472ed18) from
https://bitbucket.org/dcs/jsmin/.
2014-10-30 17:02:33 -07:00
Mike Hommey
632dbaeb90 Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Mike Hommey
567e973ad0 Bug 1077148 part 1 - Define mozcrt in moz.build. r=gps 2014-10-30 13:05:50 +09:00
Mike Hommey
6f3ed256b2 Bug 1090107 - Define stlport dependencies in moz.build. r=mshal 2014-10-29 13:29:42 +09:00
Nicholas Nethercote
fdfd979478 Bug 1080302 (part 3) - Convert -foo options to --foo in |mach run|. r=glandium. 2014-10-23 17:39:49 -07:00
Nicholas Nethercote
6b4cdbafbc Bug 1080302 (part 1) - Add support for --foo and /foo options where it's not already present. r=glandium. 2014-10-23 17:25:19 -07:00
Nicholas Nethercote
b6b6a322b0 Bug 1076446 (attempt 2) - Make the DMD test work on Windows. r=glandium. 2014-10-09 19:28:33 -07:00
Wes Kocher
58f65b28e6 Merge inbound to m-c a=merge 2014-10-24 15:05:02 -07:00
Richard Newman
48efd3c640 Bug 1088788 - Fix build target for Eclipse projects. r=nalexander, DONTBUILD (NPOTB) 2014-10-24 11:06:48 -07:00