| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
| |
Skyframe.
This avoids some unnecessary iteration over already-emitted events that can show up in profiles, and allows us to store execution-phase values a bit more compactly, since we don't need to carry around wrapper objects and nested sets everywhere.
This crucially depends on the fact that we can't build a target in the execution phase without first having analyzed it in a separate Skyframe call. Skyframe normally propagates all events/posts up the graph because it must be able to emit them if a user requests a node that only transitively depends on the node that emitted an event. However, because we do analysis in a separate Skyframe call, any warnings/posts associated with the analysis nodes will be emitted then, and we don't need to propagate them into execution.
PiperOrigin-RevId: 208767078
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Rollforward with fix: Don't use Immutable map builder to agggregate Filesets. We may reach the same one via direct and indirect runfiles, so we need to allow for duplicate entries.
*** Original change description ***
Automated rollback of commit 3bace1b937934fb2cea6260067ecc1cdbe526847.
*** Reason for rollback ***
b/112583337
RELNOTES: None
*** Original change description ***
Track Fileset in artifact expansion.
PiperOrigin-RevId: 208748163
|
|
|
|
|
|
|
|
|
|
| |
It's better to not add `self` positional argument if it's not needed, instead
of adding it and removing it laster on. `subList` invoaction results in more
allocations and CPU overhead when using positional args.
Closes #5812.
PiperOrigin-RevId: 208687360
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 208683453
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 208676674
|
|
|
|
|
|
|
|
|
|
| |
descriptor objects.
Build settings are units of configuration i.e. a key/value pair of a setting (e.g. cpu) and a value (e.g. ppc). A build setting descriptor is used to describe what kind of build setting a skylark rule is (if any at all). The BuildSettingDescriptor implementation of the API describes two facets of the build setting rule: the type of the value and whether or not the setting is settable on the command line.
The methods exposed here will eventually be hooked up to a new parameter in the <code> rule() </code> function. Validation for these restrictions will also happen in a later CL attached to the same bug.
PiperOrigin-RevId: 208669663
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
b/112583337
RELNOTES: None
*** Original change description ***
Track Fileset in artifact expansion.
PiperOrigin-RevId: 208658921
|
|
|
|
|
|
|
| |
This CL also includes a fix for constructor names from the "Provider" module. Naming does not include the module's name now. (Provider.AndroidAssetsInfo() -> AndroidAssetsInfo())
RELNOTES: None
PiperOrigin-RevId: 208658905
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds:
- the skeleton implementation of the Windows
native test wrapper
- a depenency on the native test wrapper from test
rules, through the new $test_wrapper rule
attribute
- the --windows_native_test_wrapper Bazel flag,
which is currently a no-op
See https://github.com/bazelbuild/bazel/issues/5508
Change-Id: I8df95c8ce8bab53c51c257698ec95416065a836e
Closes #5854.
Change-Id: I2ffc78bceec5dd867af775b5878f105fa87c3dba
PiperOrigin-RevId: 208650699
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 208646319
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This works around the following error:
java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer;
at com.google.devtools.build.lib.profiler.Profiler$BinaryFormatWriter.run(Profiler.java:949)
at java.lang.Thread.run(Thread.java:748)
JDK 9 introduced an overloaded methods with covariant return type.
Closes #5886.
PiperOrigin-RevId: 208642556
|
|
|
|
|
|
|
|
| |
removed "sychronized" from Reporter.handle() as we want to be able to let
EventHandlers care about their own synchronization.
RELNOTES: None.
PiperOrigin-RevId: 208628638
|
|
|
|
|
|
|
| |
Note that it is currently only used by the java_proto_library family of rules (if enabled per flag).
RELNOTES: None
PiperOrigin-RevId: 208601730
|
|
|
|
|
|
| |
getNestedArtifact).
PiperOrigin-RevId: 208565138
|
|
|
|
|
|
|
|
| |
node having the same priority, later enqueueings having higher priority, re-enqueued nodes having highest priority, and new root nodes having lowest priority. Experimentally, this can save significant RAM (1.4G in some builds!) while not affecting speed.
Also do a semi-drive-by deleting ExecutorFactory parameter to AbstractQueueVisitor, since it was always AbstractQueueVisitor.EXECUTOR_FACTORY.
PiperOrigin-RevId: 208560889
|
|
|
|
|
|
|
|
|
| |
We use a fixed version of the previous algorithm. See the comments for details.
Fancier algorithms exist. I thought of a cool one that makes use of BatchKeyedLocker (would give me an excuse to revive it, heh), but fancy algorithms would be overkill. As noted in the initial commit of NaiveMultisetSemaphore, performance isn't critical.
RELNOTES: None
PiperOrigin-RevId: 208560559
|
|
|
|
|
|
|
| |
to ensure output contains valid stack map tables.
context: https://github.com/bazelbuild/bazel/issues/5855
PiperOrigin-RevId: 208555048
|
|
|
|
| |
PiperOrigin-RevId: 208554171
|
|
|
|
|
|
| |
This is to allow OptionsProviders to access the new skylark options which aren't held in a fragment class like native options and thus can't be accessed with the traditional <code>get</code> method. Currently this function isn't called anywhere and would just return an empty map. But in the future it will return a map of skylark flag names to values.
PiperOrigin-RevId: 208552510
|
|
|
|
| |
PiperOrigin-RevId: 208549418
|
|
|
|
|
|
|
|
|
| |
This brings 1.2x speedup to clean local Android builds.
Fixes https://github.com/bazelbuild/bazel/issues/5771
RELNOTES: For Android incremental dexing actions, Bazel now persists its DexBuilder process across individual actions. From our benchmarks, this results in a 1.2x speedup for clean local builds.
PiperOrigin-RevId: 208546936
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 208509424
|
|
|
|
|
|
|
| |
Move the message-digest cloning to DigestHashFunction and out of Fingerprint, to make it possible to configure Fingerprint to use different hash functions. We keep the default MD5 for now, we'd like it to use the global default but want to isolate the configuration change from any change adding potential contention.
RELNOTES: None.
PiperOrigin-RevId: 208502993
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Using a thread-safe container to store handlers.
- Using a ThreadLocal NumberFormat to produce readable action counts.
NumberFormat (or rather the default implementation DecimalFormat) use
internal state and locking.
- Adding a lock-free fast path for START and FINISH events in
ExperimentalEventHandler.
RELNOTES: None.
PiperOrigin-RevId: 208479896
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 208462186
|
|
|
|
|
|
|
|
|
|
| |
files and C++ headers
This change completes the handling of proto_src_root when it comes to inclusion of protos, generating the proto files in the right place and adding the generated headers to the include paths.
WANT_LGTM=elenairina
RELNOTES: None.
PiperOrigin-RevId: 208457740
|
|
|
|
|
|
| |
TransitiveVersionTable uses futures.
PiperOrigin-RevId: 208402465
|
|
|
|
|
|
|
|
| |
computeTransitivelyUsedModules to return early on missing values instead of
starting to create datastructures.
RELNOTES: None.
PiperOrigin-RevId: 208351193
|
|
|
|
|
|
|
| |
need them later.
RELNOTES: None.
PiperOrigin-RevId: 208345603
|
|
|
|
|
|
|
|
|
|
|
|
| |
when they're actually being put into a committed value. The previous behavior submitted deps' events twice, when the dep was added and when the node finished building.
The intention is to build on this refactoring to cut off events/postables across the analysis-execution boundary, so that actions are not carrying around nested sets of warnings coming from their configured targets. This will be safe because to execute an action, we must already have analyzed its configured target, so the warning would have been emitted there.
As can be seen from the changed test, this is not a pure behavior no-op. We will now emit cached events slightly later, on value committal, rather than on first dep declaration. This should not be an issue: since the events are cached, the user must have already seen them on a prior build, so the delay should not be important.
Inversely, we now report events slightly more quickly during bubbling up, since we report them at each stage, as opposed to just at ParallelEvaluator evaluation completion.
PiperOrigin-RevId: 208316502
|
| |
|
|
|
|
|
|
|
| |
These show up as directories. Filter these out and return null from the path converter, which should cause omission of those files from any build events.
RELNOTES: None
PiperOrigin-RevId: 208244910
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Rollforward with deduplication of traversals and regression test.
RELNOTES: None
*** Original change description ***
Automated rollback of commit 39974a43abdd32e3a1acbc7da945b08da9983e4e.
*** Reason for rollback ***
b/112458627
*** Original change description ***
Allow skyframe-aware actions to pass partial results through ActionExecutionContext.
Remove FilesetProvider.
PiperOrigin-RevId: 208231719
|
|
|
|
|
|
| |
wildcarding on the presence of an includes attribute.
PiperOrigin-RevId: 208225306
|
|
|
|
|
|
|
|
|
| |
...in a single event instead of relying on the synchronisation on the
reporter. In this way, it will be possible to focus on output of errors,
and also to deduplicate warnings.
Change-Id: I9669e8497ca6e22a01f3e285ec9ee42c1ecf3fb5
PiperOrigin-RevId: 208223882
|
|
|
|
|
|
| |
TargetParsingCompleteEvent.
PiperOrigin-RevId: 208217102
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
b/112458627
*** Original change description ***
Allow skyframe-aware actions to pass partial results through ActionExecutionContext.
Remove FilesetProvider.
PiperOrigin-RevId: 208213955
|
|
|
|
|
|
|
|
|
| |
After this changes blaze will not use in-memory //tools/defaults package.
Instead of that blaze will read //tools/defaults/BUILD file from file system.
Which is empty for bazel.
RELNOTES:none
PiperOrigin-RevId: 208206605
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 208195833
|
|
|
|
|
|
|
|
|
|
|
| |
We want a way for Bazel to find a logging handler's current log file without
direct dependencies on the exact handler class. We do this with an abstract
parent class whose concrete child class (to be used as a singleton) will be
given in startup_options, i.e. in the same place as the server logging
configuration.
RELNOTES: None.
PiperOrigin-RevId: 208171084
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 208166562
|
|
|
|
|
|
| |
iteration, but that should be cheap, while requesting packages sequentially can hurt...
PiperOrigin-RevId: 208126130
|
|
|
|
|
|
|
|
| |
ActionExecutionContext.
Remove FilesetProvider.
PiperOrigin-RevId: 208111251
|
|
|
|
| |
PiperOrigin-RevId: 208096548
|
|
|
|
|
|
|
|
| |
While at it remove CppCompilationActionBuilder.setAllowUsingHeaderModules,
which isn't used anymore and would make the logic here (even) more complicated.
RELNOTES: None.
PiperOrigin-RevId: 208077525
|
|
|
|
|
|
|
|
|
| |
During reads and writes a read lock is taken. If we need to resize the table, a write lock is taken to flush all the readers and writers before the table is resized.
The read lock should be significantly cheaper than full synchronisation since multiple threads can grab a read lock at once.
RELNOTES: None
PiperOrigin-RevId: 208059810
|
|
|
|
|
|
| |
in other package to also treat those package as loose.
PiperOrigin-RevId: 208051086
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add suport for a file .bazelignore, allowing to specify directories
that should be ignored. So far, even for the "ignored" directories,
the directory structure, including following symlinks, still has
to be well founded. We plan to lift that restriction in the future,
but already with the restriction, it is an improvement over the
status quo.
RELNOTES: bazel now supports a .bazelignore file specifying
directories to be ignored; however, these directories still
have to be well founded and, in particular, may not contain
symlink cycles.
Improves on #4888.
Change-Id: Icfe0b7f5c35eceea16e28944ca7711431b71271a
PiperOrigin-RevId: 208050372
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Remove MergableAndroidData interface, and clean up various converters to
explicitly use ParsedAndroid{Resources|Assets}
- Remove calls to getters that always return an empty list (based on the above
cleanup)
- Stop passing around empty transitiveAssets in ResourceDependencies and
AndroidResourcesInfo
- Remove no-op getter method for decoupling settings in AndroidConfiguration
Also, consolidate all AndroidDataConverter instances that were used in multiple
places into the AndroidDataConverter class, rather than declaring them in
multiple places. Add a bit of documentation as to which objects they represent
in the action code, which should make mapping between one and the other easier.
RELNOTES: none
PiperOrigin-RevId: 208042452
|
|
|
|
|
|
|
|
| |
determine which pattern expanded to which targets.
Plan is to modify either TargetParsingCompleteEvent or LoadingPhaseCompleteEvent (which are both posted to the event handler) so that targets can be traced back to original command line patterns.
PiperOrigin-RevId: 208031588
|