| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
| |
--
MOS_MIGRATED_REVID=139508838
|
|
|
|
|
|
|
| |
by introducing TargetPattern#parEval, which allows TargetPatterns' evaluations to explicitly have parallel implementations (no need to secretly use a FJP).
--
MOS_MIGRATED_REVID=139101922
|
|
|
|
|
|
|
|
| |
No need for the char[] in the middle, prevents us from accidentally modifying
input, or sucking up ram on huge queries.
--
MOS_MIGRATED_REVID=137872573
|
|
|
|
|
|
|
| |
overrides. Also, have AbstractBlazeQueryEnvironment#evaluateQuery take an OutputFormatterCallback instance rather than a Callback instance. This is more sensible since the latter is only intended to be used intra-query, while the former is intended for usage in end-to-end query evaluation. This lets us slightly simplify QueryCommand, by shifting the responsibility for managing the OutputFormatterCallback to AbstractBlazeQueryEnvironment#evaluateQuery.
--
MOS_MIGRATED_REVID=134827588
|
|
|
|
|
|
|
| |
shared naive BFS implementation. Also implement RegexFilterExpression#parEval.
--
MOS_MIGRATED_REVID=134598046
|
|
|
|
|
|
|
| |
evaluation in SkyQueryEnvironment. FJP is nicer to program against, imo.
--
MOS_MIGRATED_REVID=133844508
|
|
|
|
|
|
|
| |
once. This is helpful when there are multiple skylark reverse 'load' paths from the same popular .bzl file to a single BUILD file. As an implementation detail, introduce a few ThreadSafeUniquifier things (these will also be used in followup CLs).
--
MOS_MIGRATED_REVID=132680777
|
|
|
|
|
|
|
| |
nodes.
--
MOS_MIGRATED_REVID=132558031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
evaluation:
-Rename QueryExpression#evalConcurrently to QueryExpression#parEval. (parallelism is not concurrency! See https://existentialtype.wordpress.com/2011/03/17/parallelism-is-not-concurrency/)
-Have SkyQueryEnvironment#eval (used recursively in #evaluateQuery) dynamically call QueryExpression#parEval when appropriate.
-Delete QueryExpression#canEvalConcurrently.
-Add ThreadSafety annotations in a bunch of relevant places in the query codebase.
-A bunch of testing infrastructure to test parallel query evaluation.
-TODOs for implementing parallel evaluation of all QueryExpression nodes.
--
MOS_MIGRATED_REVID=132436340
|
|
|
|
|
|
|
| |
The only place we now don't handle InterruptedException is in the action graph created after analysis, since I'm not sure that will be around for that much longer.
--
MOS_MIGRATED_REVID=130327770
|
|
|
|
|
|
|
|
|
| |
the left-hand side needs to be pinned fully into memory.
Intersection is not associative, so we can't do the same thing there. For example, "abc" ^ "abc" = "abc", but "abc" ^ "a" ^ "b" ^ "c" = <null>.
--
MOS_MIGRATED_REVID=130015098
|
|
|
|
|
|
|
|
|
| |
Turns out that our existing test coverage was insufficient for catching this (I
misread the tests during development of unknown commit and thus incorrectly
thought we had test coverage for this).
--
MOS_MIGRATED_REVID=127461716
|
|
|
|
|
|
|
|
|
| |
mutable global context of variable bindings, pass around immutable local contexts.
The motivation is so we can safely evaluate all blaze query expressions concurrently under the hood. A global context is hostile to this goal.
--
MOS_MIGRATED_REVID=127324600
|
|
|
|
|
|
|
| |
was unnecessary.
--
MOS_MIGRATED_REVID=126457804
|
|
|
|
|
|
|
|
| |
(2) Refactor the simple query concurrency support by introducing QueryExpression#canEvalConcurrently and removing the primitive BinaryOperatorExpression#evalConcurrently and the hardcoded SkyQueryEnvironment logic around it. This way each QueryExpression can safely manage its own concurrency. A followup CL will ensure that concurrent evaluation occurs for as much of the query expression as possible, rather than just for the top-level query expression node.
(3) Make a few query internals public.
--
MOS_MIGRATED_REVID=126324637
|
|
|
|
|
|
|
| |
with maximum limit
--
MOS_MIGRATED_REVID=125959807
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds evalConcurrently to QueryExpression so that expression
implementations that support concurrent evaluation can do so using the
supplied executor service.
Implements concurrent evaluation for the PLUS/UNION cases of
BinaryOperatorExpression.
Because evalConcurrently requires its callback to be threadsafe, but
the callback passed to evaluateQuery may only be called by one thread
at a time, this change makes the BatchStreamedCallback constructed by
SkyQueryEnvironment threadsafe, including its uniquifier.
However, there is a thread-safety problem when the operands of
BinaryOperatorExpression are LetExpressions, because their evaluation
involves mutating state in the query environment. A future change will
fix that. For now, concurrent evaluation is only attempted when the
query expression is a BinaryOperatorExpression and all its operands are
target literals.
--
MOS_MIGRATED_REVID=125505247
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=121982887
|
|
|
|
|
|
|
|
|
| |
transformation 'rdeps(<sky_query_environment_universe_scope>, T, depth)' -> 'allrdeps(T, depth)'.
SkyQueryEnvironment can evaluate such allrdeps queries much more efficiently since it doesn't need to bother filtering out targets outside of universe, meaning it doesn't need to have all targets in the universe in memory at the same time.
--
MOS_MIGRATED_REVID=116075008
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=113681840
|
|
|
|
|
|
|
|
|
| |
directly, and pass a Query callback in when resolving target patterns. This means that the targets a pattern resolves to can be processed incrementally.
This is the fifth step in a series to allow processing large sets of targets in query target patterns via streaming batches rather than all at once. This should improve performance for SkyQueryEnvironment for certain classes of large queries.
--
MOS_MIGRATED_REVID=111696713
|
|
|
|
|
|
|
| |
This is the third step in a series to allow processing large sets of targets in query target patterns via streaming batches rather than all at once. This should also be a functional no-op.
--
MOS_MIGRATED_REVID=111620668
|
|
|
|
|
|
|
|
|
| |
returning a ResolvedTargets set.
This is the first step in a series to allow processing large sets of targets in query target patterns via streaming batches rather than all at once. This should be a functional no-op.
--
MOS_MIGRATED_REVID=111609309
|
|
|
|
|
|
|
| |
targets.
--
MOS_MIGRATED_REVID=110275427
|
|
|
|
|
|
|
| |
Reduces garbage.
--
MOS_MIGRATED_REVID=109914243
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=109908202
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
--
MOS_MIGRATED_REVID=109005097
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=108142169
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107249788
|
|
|
|
|
|
|
|
|
|
|
| |
The headers were modified with
`find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'`
And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan.
The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand.
--
MOS_MIGRATED_REVID=103938715
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=102332437
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=102239051
|
|
|
|
|
|
|
|
|
| |
SkyQueryEnvironment.
rbuildfiles returns the packages (in the form of BUILD files) that depend on the given source files as BUILD files or subincludes.
--
MOS_MIGRATED_REVID=101157700
|
|
|
|
|
|
|
|
|
| |
wrapping it in a QueryException.
QueryException should usually indicate a persistent failure, while an InterruptedException is transient. Wrapping the InterruptedException in a QueryException just obfuscates state.
--
MOS_MIGRATED_REVID=97815388
|
|
|
|
|
|
|
|
|
|
|
| |
be loaded.
This avoids having to materialize the full universe scope in memory when doing an rdeps query over "//...".
Another option considered was special-casing the string "//..." if it was the first argument to rdeps, but this seemed cleaner.
--
MOS_MIGRATED_REVID=96878999
|
|
|
|
|
|
|
| |
getReverseDeps(Target) from the QueryEnvironment interface, since they're no longer needed by any query functions, and also WalkableGraph#get{Direct,Reverse}Deps(SkyKey).
--
MOS_MIGRATED_REVID=96361760
|
|
|
|
|
|
|
|
|
| |
getReverseDeps, and migrate DepsFunction and RdepsFunction to use them.
This makes our (unordered) results potentially dependent on the iteration order of hash sets, but what do we care?
--
MOS_MIGRATED_REVID=96117626
|
|
|
|
|
|
|
|
|
|
| |
The visible(x, y) query expression computes the subset of nodes in y visible
from all nodes in x.
RELNOTES: Add a visibility predicate to blaze query.
--
MOS_MIGRATED_REVID=90765071
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=86826447
|
|
--
MOE_MIGRATED_REVID=85702957
|