| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 157124371
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Rollforward with fix.
*** Original change description ***
Automated g4 rollback of commit c78c947e6a8cbb323304f872a3dcabb989a3d76b.
*** Reason for rollback ***
Breaks android targets in the nightly - see []
*** Original change description ***
Do not retain transitive data in AndroidLocalTestBase...
***
ROLLBACK_OF=156745610
RELNOTES: None
PiperOrigin-RevId: 157028029
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks android targets in the nightly - see []
*** Original change description ***
Do not retain transitive data in AndroidLocalTestBase.
The argument strings and artifacts were both transitive and flattened, causing O(N^2) memory consumption.
PiperOrigin-RevId: 156745610
|
|
|
|
|
|
| |
The argument strings and artifacts were both transitive and flattened, causing O(N^2) memory consumption.
PiperOrigin-RevId: 156083738
|
|
|
|
|
|
|
| |
* isShellCommand is now passed directly to SpawnAction
* Getting the associated params file action was a test-only thing. We can pull this out of the action graph instead.
PiperOrigin-RevId: 156060366
|
|
|
|
| |
PiperOrigin-RevId: 155900259
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This lets users specify that their test needs a minimum of <n> CPU cores
to run and not be flaky. Example for a reservation of 4 CPUs:
sh_test(
name = "test",
size = "large",
srcs = ["test.sh"],
tags = ["cpu:4"],
)
This could also be used by remote execution strategies to tune their
resource adjustment.
RELNOTES: You can increase the CPU reservation for tests by adding a "cpu:<n>" (e.g. "cpu:4" for four cores) tag to their rule in a BUILD file. This can be used if tests would otherwise overwhelm your system if there's too much parallelism.
PiperOrigin-RevId: 154856091
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here is what is done today:
bazel build -c opt --fdo_optimize=<path_to_profdata_file> //target
The .profdata file is the LLVM profiles in indexed format and bazel creates a
symlink to it from bazel-fdo/_fdo/... and compiles the target.
However, the instrumented binary generates a .profraw file and hence the
conversion to .profdata must be done manually using the llvm-profdata binary
which is shipped along with the crosstool as:
$ llvm-profdata -merge -o <path_to_profdata_file> <path_profraw_file>
We are trying to avoid this intermediate step in this change by baking this
into bazel.
This implementation does the following:
* In CppConfiguration.java, adds new tool llvm-profdata.
* In CcToolchain.java, in function create, if LLVM instrumented FDO is desired,
the profile format is checked and the profile conversion takes place.
* FdoSupport.java checks for LLVM instrumented FDO is bypassed.
RELNOTES[NEW]: Raw LLVM profiles are now supported.
PiperOrigin-RevId: 154569896
|
|
|
|
|
|
|
|
|
|
|
|
| |
'create' method.
This paves the way for changing PathFragment to e.g. an abstract class with multiple subclasses. This way we can split out the windows-specific stuff into one of these concrete classes, making the code more readable and also saving memory (since the shallow heap size of the NonWindowsPathFragment subclass will hopefully be smaller than that of the current PathFragment).
This also lets us pursue gc churn optimizations. We can now do interning in PathFragment#create and can also get rid of unnecessary intermediate PathFragment allocations.
RELNOTES: None
PiperOrigin-RevId: 152145768
|
|
|
|
|
|
|
|
| |
This became necessary because extra actions for C++ compile actions require .h files, but the compiler only returns the .pcm files in the .d file for headers that it reads from the .pcm file. This is not a problem for correctness because the .pcm files depend on the headers, but that doesn't help the extra actions that would then only get the .pcm files.
--
PiperOrigin-RevId: 150052839
MOS_MIGRATED_REVID=150052839
|
|
|
|
|
|
| |
--
PiperOrigin-RevId: 149110466
MOS_MIGRATED_REVID=149110466
|
|
|
|
|
|
|
|
| |
to generate extra action proto file.
--
PiperOrigin-RevId: 148479293
MOS_MIGRATED_REVID=148479293
|
|
|
|
|
|
|
|
| |
CppCompileActions that to be executed at execution time.
--
PiperOrigin-RevId: 147163077
MOS_MIGRATED_REVID=147163077
|
|
|
|
|
|
|
|
| |
It did not take the type (shell_quoted vs unquoted) into account and thus did not redo the action if only the type has changed.
--
PiperOrigin-RevId: 146670962
MOS_MIGRATED_REVID=146670962
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. proto_library exposes a direct descriptor set (built from its 'srcs') and a nested set of transitive descriptor (from all of its dependencies).
2. Alias libraries (=no 'srcs') produce empty files as their descriptor sets.
3. The direct descriptor set depends on the transitive ones, ensuring that building a top-most proto validates all of its dependencies are also valid protos.
4. The wire format of protos allows to concatenate the outputs to get a valid serialized proto that contains all of the descriptor sets in the proto tree.
RELNOTES: proto_library: alias libraries produce empty files for descriptor sets.
--
PiperOrigin-RevId: 146300520
MOS_MIGRATED_REVID=146300520
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove getSpawnInfo and asShellCommand, which are never really
overridden in a useful way. asShellCommand moves to the Spawns class,
and getSpawnInfo is only ever called by SpawnAction, and the
implementation moves there.
I'm considering using Spawn as the general lower-level abstraction for both
local and remote execution. It sort of is that already, except it's not
used consistently - we often pass a tuple of (args, env) plus possibly
input and output files through parameter-heavy method call hierarchies
instead of using this existing abstraction.
However, I'm concerned about the amount of baggage it's carrying as well
as the number of implementations for what is supposed to be a simple
interface (or possibly even a simple value class), and this is an attempt
to slim it down a bit.
This should have no visible effects on builds.
--
PiperOrigin-RevId: 146109838
MOS_MIGRATED_REVID=146109838
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ActionSpawn/SpawnAction now deal exclusively in RunfilesSuppliers, manifests
maps are no more.
There is some lingering awkwardness, in particular:
- Manifests still need to be tracked in some places, we can work out if this is
still necessary on a case by case basis.
- Skylark makes actions' runfiles available via 'resolve_command' where they are
consumed by 'action'. I've updated the documentation, though the name isn't
entirely accurate anymore. That being said these interfaces _are_ marked as
experimental, so we _should_ be able to be flexible here.
Overall, I think the benefits consolidating runfiles into suppliers, from both
code cleanliness and performance perspectives (no longer needing to parse
manifests), outweights the awkwardnesses.
RELNOTES: resolve_command/action's input_manifest return/parameter is now list
--
PiperOrigin-RevId: 145817429
MOS_MIGRATED_REVID=145817429
|
|
|
|
|
|
|
|
| |
One's unused, the other is ok as protected.
--
PiperOrigin-RevId: 145291062
MOS_MIGRATED_REVID=145291062
|
|
|
|
|
|
|
|
|
|
|
| |
As pointed out in the new review comments on commit df726eae7b6ef11df3b962d720df36f63d5cd3a3, the
SpawnAction members did not need to be changed from private to
protected, they just needed to be accessed via accessor methods
in the derived LTOBackendAction class.
--
PiperOrigin-RevId: 144989490
MOS_MIGRATED_REVID=144989490
|
|
|
|
|
|
|
|
|
| |
We were previously jumping through hoops to avoid cyclic dependencies. It's
unclear why the class was here in the first place rather than in lib.actions.
--
PiperOrigin-RevId: 143948959
MOS_MIGRATED_REVID=143948959
|
|
|
|
|
|
|
|
|
|
| |
--experimental_transparent_compression flag
Also add test to ensure lazy strings aren't forced.
--
PiperOrigin-RevId: 142496520
MOS_MIGRATED_REVID=142496520
|
|
|
|
|
|
|
|
| |
This clarifies documentation, renames or rearranges constructors, and defines a BuildConfiguration option that will be made to control transparent compression in a follow-up CL. The follow-up updates call sites to use the new create() factory method.
--
PiperOrigin-RevId: 142491333
MOS_MIGRATED_REVID=142491333
|
|
|
|
|
|
|
|
| |
This should save on heap space for actions with long strings.
--
PiperOrigin-RevId: 141440705
MOS_MIGRATED_REVID=141440705
|
|
|
|
|
|
|
| |
useDefaultShellEnvironment is exclusive with clientEnvironmentVariables.
--
MOS_MIGRATED_REVID=140366745
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=140024976
|
|
|
|
|
|
|
|
|
|
|
| |
Instead, it skips discovery (include scanning), but provides all headers to
action
execution to allow for re-adding pruned sources in a sandbox.
This means that mis-capitalization errors will only break a build if --objc_use_dotd_pruning is one.
--
MOS_MIGRATED_REVID=139456194
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=139219934
|
|
|
|
|
|
|
| |
headers pruned by .d pruning to be re-added if they are changed.
--
MOS_MIGRATED_REVID=138866385
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For SpawnActions, depending on the value of use_default_shell_env,
the specified environment is taken. The shell environment, however,
consists of two parts: a static mapping of variables to values, and
a set of variables where the value is to be taken from the client
environment. Make sure, both parts are set correctly. Fixes #2035.
--
Change-Id: I32253e9bf651b18ca25107edc5fc839813905726
Reviewed-on: https://bazel-review.googlesource.com/#/c/7211
MOS_MIGRATED_REVID=138376914
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=137864618
|
|
|
|
|
|
|
| |
headers pruned by .d pruning to be re-added if they are changed.
--
MOS_MIGRATED_REVID=137697323
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Fixed underlying broken CL that was depended on
*** Original change description ***
Automated [] rollback of commit e025939e71b179ae0f6bd09ef3af474f49b853a2.
*** Reason for rollback ***
Depends on commit 9c25afe750a937b2152c21a93effc8b9ba82c27b, which needs to be rolled back.
*** Original change description ***
Add API for individual actions
This exposes action inputs, outputs, argv, content, and substitutions (if applicable).
--
MOS_MIGRATED_REVID=135821603
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Depends on commit 9c25afe750a937b2152c21a93effc8b9ba82c27b, which needs to be rolled back.
*** Original change description ***
Add API for individual actions
This exposes action inputs, outputs, argv, content, and substitutions (if applicable).
--
MOS_MIGRATED_REVID=135783964
|
|
|
|
|
|
|
| |
This exposes action inputs, outputs, argv, content, and substitutions (if applicable).
--
MOS_MIGRATED_REVID=135226123
|
|
|
|
|
|
|
|
|
|
|
|
| |
This ensures that stale outputs from prior builds do not remain
to confuse the compiler.
Fixes #1778.
--
Change-Id: I31b5c3e7e5970cf45c3ff10144ddfc73540ef9af
Reviewed-on: https://bazel-review.googlesource.com/6250
MOS_MIGRATED_REVID=134780501
|
|
|
|
|
|
|
| |
false.
--
MOS_MIGRATED_REVID=134452391
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
We *still* have case discrepancies in objc code, which appears to be a hard blocker to .d pruning. This change will not work until we've found some way to enforce case-consistency.
*** Original change description ***
Implement input pruning using .d files in objc.
--
MOS_MIGRATED_REVID=134069949
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=133944059
|
|
|
|
|
|
|
|
|
| |
#getShellExecutable() method.
That's all it was used for anyway.
--
MOS_MIGRATED_REVID=133824769
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=133697962
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks Bigtop incremental build
*** Original change description ***
Implement input pruning using .d files in objc.
--
MOS_MIGRATED_REVID=133271059
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=133253857
|
|
|
|
|
|
|
|
|
|
|
| |
SingleJar.
Otherwise the WorkerSpawnStrategy (which requires the action to use a parameter file) will fail to execute JavaDeployJar Spawn actions when its CommandLine decides not to use a parameter file, because the arguments are short enough.
Also adds a convenience method SpawnAction#getArgumentsFromParamFile() for use in tests, because I needed it here to fix up the deploy jar tests.
--
MOS_MIGRATED_REVID=132557693
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=132550233
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Prunes .modulemap files incorrectly. See [].
*** Original change description ***
Implement input pruning using .d files in objc.
--
MOS_MIGRATED_REVID=132246906
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=132061988
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=131990160
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=131951535
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...for the variables that supposed to be inherited from it. Note
That with this patch, we take the correct variables, but do not
yet track the dependency on changes to the client environment; this
will happen in a follow up patches.
Also add a test that demonstrates that the client environment rather
than that at startup is taken.
--
Change-Id: I4d33efa8eaf4f8b689c9b7f2130f71309f3343f0
Reviewed-on: https://bazel-review.googlesource.com/#/c/5392
MOS_MIGRATED_REVID=131406356
|
|
|
|
|
|
|
| |
Collection<Artifact>
--
MOS_MIGRATED_REVID=131285541
|