| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, there is no way to enforce that LateBoundDefaults only access
the fragments that they declare. This means that LateBoundDefaults can
fail to declare fragments at all, or declare the wrong ones, and still
have no troubles.
But when trimming, these fragments must be declared, because otherwise
they will not necessarily be available.
This change refactors LateBoundDefault to declare a single fragment type,
not a set. All existing LateBoundDefaults use sets with a single element
or no elements at all for their set of fragment classes, so this does not
limit anything being done currently.
To account for LateBoundDefaults which do not use configuration at all,
typically those which only want to access the configured attribute map,
it is possible for Void to be the fragment class which is requested.
To account for LateBoundDefaults which need to access methods of the
BuildConfiguration instance itself, it is possible for BuildConfiguration
to be the fragment class which is requested; however, this is unsafe, so
it is only a temporary state until a way to do this without also giving
access to all of the fragments can be added.
Drive-by refactoring: LateBoundDefaults' values are now typed. All actual
production LateBoundDefaults were Label or List<Label> typed, through the
LateBoundLabel and LateBoundLabelList subclasses. These subclasses have
been removed, and LateBoundDefault has two type parameters, one for the
type of its input, and one for the type of its output.
RELNOTES: None.
PiperOrigin-RevId: 169242278
|
|
|
|
| |
PiperOrigin-RevId: 169179218
|
|
|
|
|
|
|
|
|
| |
Not sure why we passed in Class<T>, ObjectCodec<? extends T> - it should really
be the other way around, since ObjectCodec<T> should be able to serialize <?
extends T>....
RELNOTES: None
PiperOrigin-RevId: 169161061
|
|
|
|
|
|
|
| |
Exempt RuleConfiguredTarget in this change because that's liable to touch
a billion files.
PiperOrigin-RevId: 168929827
|
|
|
|
| |
PiperOrigin-RevId: 168802886
|
|
|
|
|
|
| |
inline constructor that did ServerDirectories creation inline: don't pollute production code for tests' convenience.
PiperOrigin-RevId: 168652349
|
|
|
|
|
|
| |
codec. Since PrecomputedValues can contain any value, give them access to an ObjectCodecs instance so we don't have to have a whitelist inside PrecomputedValueCodec.
PiperOrigin-RevId: 168624137
|
|
|
|
| |
PiperOrigin-RevId: 168607439
|
|
|
|
| |
PiperOrigin-RevId: 168583913
|
|
|
|
| |
PiperOrigin-RevId: 168583577
|
|
|
|
| |
PiperOrigin-RevId: 168452997
|
|
|
|
|
|
| |
Also pipe keepGoing back into initial configuration creation.
PiperOrigin-RevId: 168412512
|
|
|
|
|
|
| |
Part of the static config cleanup effort.
PiperOrigin-RevId: 168270713
|
|
|
|
|
|
|
| |
PackageFunction constructors is only used in tests and annotate the missing variable.
RELNOTES: None.
PiperOrigin-RevId: 168265593
|
|
|
|
|
|
| |
available from BuildViewTestCase#getRuleContext
PiperOrigin-RevId: 168231020
|
|
|
|
|
|
|
|
| |
PlatformConfiguration is made a legal configuration fragment for every rule class.
Add a default "dummy" c++ toolchain to prevent resolution errors when legacy toolchain selection logic is used. Add toolchain mocks to java and shell tests.
PiperOrigin-RevId: 167901210
|
|
|
|
| |
PiperOrigin-RevId: 167861778
|
|
|
|
|
|
|
|
|
|
| |
path crosses into a local repository and correctly report the
repository-relative package.
Fixes #3553.
Change-Id: Ib912e69d546fb740ef8fe4c426dba30fa7776bda
PiperOrigin-RevId: 167760229
|
|
|
|
|
|
| |
ToolchainContext.
PiperOrigin-RevId: 167729868
|
|
|
|
|
|
|
|
|
| |
package crosses into a local repository.
Part of #3553.
Change-Id: Ib21de0a1843e72055c53ef34922d69290aee72ed
PiperOrigin-RevId: 167726591
|
|
|
|
|
|
|
|
|
| |
Split collect, concurrent, vfs, windows into package-level BUILD files.
Move clock classes out of "util", into their own Java package.
Move CompactHashSet into its own Java package to break a dependency cycle.
Give nestedset and inmemoryfs their own package-level BUILD files.
PiperOrigin-RevId: 167702127
|
|
|
|
|
|
|
|
|
| |
repository.
Part of #3553.
Change-Id: Id8b4958844b2ad7b5ce4b2ea00a91b6b22acc025
PiperOrigin-RevId: 167589110
|
|
|
|
|
|
|
| |
Turns out, my previous search expression didn't find the ones that were not "final LOG" or "final log" and a surprising number of places were missing the "final" tag.
RELNOTES: None.
PiperOrigin-RevId: 167547507
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 167505493
|
|
|
|
|
|
| |
removing unused methods and making the Builder more general.
PiperOrigin-RevId: 167150478
|
|
|
|
|
|
|
| |
SkyframeAwareAction.ExceptionBase.
RELNOTES: None
PiperOrigin-RevId: 167030688
|
|
|
|
|
|
|
|
|
| |
PlatformInfo provider.
Fixes #3631.
Change-Id: I78ed8905e18e3c11c01d6e30512c10491a5ba0f1
PiperOrigin-RevId: 167019469
|
|
|
|
|
|
|
| |
also, AppleConfiguration no longer throws NPE with invalid cpu.
RELNOTES: None.
PiperOrigin-RevId: 167013760
|
|
|
|
|
|
|
| |
while traversing filesets.
RELNOTES: None
PiperOrigin-RevId: 166913262
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 166907799
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 166704851
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Publishing duplicate build events for tests.
*** Original change description ***
Request test artifacts to be built in parallel with running the test.
In cases where not all test artifacts are needed to run the test, this allows for greater parallelism in the build.
We need to inject the request for the test to be run into the TargetCompletion function, so that it can properly process any errors. Thanks to nharmata@ for suggesting this.
MEMORY: One additional Skyframe node and 2 edges for each test to be run (sharded tests still only count as one). So with 500 test target...
***
PiperOrigin-RevId: 166307568
|
|
|
|
|
|
|
|
|
| |
In cases where not all test artifacts are needed to run the test, this allows for greater parallelism in the build.
We need to inject the request for the test to be run into the TargetCompletion function, so that it can properly process any errors. Thanks to nharmata@ for suggesting this.
MEMORY: One additional Skyframe node and 2 edges for each test to be run (sharded tests still only count as one). So with 500 test targets, 100K is a conservative estimate of memory usage.
PiperOrigin-RevId: 166256545
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 165973661
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 165967625
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
passing the --post_build_query flag to a build command, with a query expression as the argument. Bazel then executes this query on the configured target graph as constructed by the build command.
Since the prepare graph -> query workflow is how SkyQueryEnvironment works, this is mostly just copying that.
Main missing features/code cleanups:
* Recursive target patterns (/...) are not supported.
* There is no way to specify the configuration of the targets in your query.
* Configuration output is totally opaque (just the hash, or null if no configuration).
* More generally, no output options.
* Some features (visibility, label attrs) not supported.
* No edge filtering (host deps, implicit deps).
* Aspects are totally ignored.
* Graceful failure on errors, edge cases, incompatible flags (like the TAP flags that discard edges).
* Code hygiene issues (calling test-only method to get to Skyframe graph, some code duplication across ConfiguredTargetQueryEnvironment and SkyQueryEnvironment).
Most of the features I plan to leave to rules-side people, since I think they won't be too hard for a general Blaze developer to implement, and designing the right features and user interfaces for these things is better left to the rules side.
PiperOrigin-RevId: 165747829
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This accomplishes a few goals:
1. Removes the outdated BuildConfiguration.StaticConfigurationApplier code.
2. Removes the TransitionApplier abstraction completely. This was an awkward
bridge meant to support both static and dynamic implementations.
3. Moves transition logic to its own dedicated class: ConfigurationResolver.
This no longer belongs in BuildConfiguration, which we ultimately want to
become a simple <key, value> map.
Part of the static config cleanup effort.
PiperOrigin-RevId: 165736955
|
|
|
|
|
|
|
|
| |
This is always true.
Part of the static config cleanup effort.
PiperOrigin-RevId: 165628823
|
|
|
|
| |
PiperOrigin-RevId: 165622047
|
|
|
|
|
|
|
|
| |
BuildConfigurationCollection.Transitions.
Part of the static config cleanup effort.
PiperOrigin-RevId: 165607492
|
|
|
|
|
|
| |
as a pilot. Currently not hooked up to anything, but will be shortly.
PiperOrigin-RevId: 165583517
|
|
|
|
| |
PiperOrigin-RevId: 165578449
|
|
|
|
|
|
|
|
|
|
| |
roots
It also changes a few accessors of utility methods in Skyframe library. It
refactors the QueryExpressionMapper to use a general QueryExpressionVisitor.
RELNOTES: None
PiperOrigin-RevId: 165534908
|
|
|
|
| |
PiperOrigin-RevId: 165478994
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 165465128
|
|
|
|
|
|
| |
action actually executed.
PiperOrigin-RevId: 164917959
|
|
|
|
|
|
|
|
|
|
| |
ConfigurationFactory.
This is a prerequisite to removing ConfigurationFactory (which is only used for static configurations). We still need List<ConfigurationFragmentFactory> to supply ConfigurationFragmentFunction.
Eventually even that will go away (for fully trimmed builds). But we're not there yet.
PiperOrigin-RevId: 164890139
|
|
|
|
|
|
|
|
|
|
|
| |
This isn't ideal, but is the fastest way to split analysis, execution, and
rules into separate java libraries, with lib.skyframe still being in the
analysis library. Ideally, we'd split up the lib.skyframe package, move the
analysis stuff to the analysis library, the execution stuff to the execution
library, and so on. That wouldn't require us moving OutputService out of
lib.exec.
PiperOrigin-RevId: 164856998
|
|
|
|
|
|
|
|
| |
These are depended upon by analysis code, so need to live in the same library
as lib.analysis. Moving them here makes it possible to split the build-base
library into separate libraries for analysis, execution, and rules.
PiperOrigin-RevId: 164847161
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is the first in a series of changes stripping out Bazel's
static configuration code.
This change removes the ability to request static configurations but
not the (now orphaned) logic behind them. Because that logic is
all over the code base, it will be removed in layers in followup
changes.
PiperOrigin-RevId: 164769846
|