| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
constructing JavaInfo providers instead
PiperOrigin-RevId: 194123199
|
|
|
|
|
|
|
|
|
|
|
|
| |
Design: https://docs.google.com/document/d/1ubah6phuvWnugShtVgSQnaopQ1BtKtNxQASVwGZA7k0/
* Moves action construction out into java_common.run_ijar, java_common.pack_sources
* Deprecates corresponding arguments in JavaInfo
An incompatible flag will be added in another CL since it is not possible to add incompatible flags at the same time as new functionality is added.
RELNOTES: Adds new-style JavaInfo provider constructor.
PiperOrigin-RevId: 194111925
|
|
|
|
| |
PiperOrigin-RevId: 194099006
|
|
|
|
|
|
|
|
|
| |
The CopyingSandboxedSpawn will be used by the upcoming Docker sandbox.
This is otherwise a no-op change.
RELNOTES: None.
PiperOrigin-RevId: 194096413
|
|
|
|
|
|
| |
TemplateVariableInfo.
PiperOrigin-RevId: 194088329
|
|
|
|
|
|
|
|
|
|
|
|
| |
be treated as a callable skylark object.
This will allow Skylark Provider objects to be better specified.
For example, "JavaInfo" can have a fully-documented, fully-specified @SkylarkCallable method with selfCall=true to represent the method JavaInfo(), instead of being a subclass of BaseFunction and requiring a @SkylarkSignature annotation.
There are no usages of this pattern introduced in this CL, and also no updates to docgen to support the new pattern. These will be introduced in another CL.
RELNOTES: None.
PiperOrigin-RevId: 194088227
|
|
|
|
|
|
| |
This should reduce memory consumption in NestedSet deserialization, which currently does not recycle Artifact instances.
PiperOrigin-RevId: 194083901
|
|
|
|
|
|
| |
RELNOTES[NEW]: TemplateVariableInfo can now be constructed from Skylark.
PiperOrigin-RevId: 194072452
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently we report "Analyzing" when include scanning runs. But since we can
have shared C++ compile actions, only one of the group will be executed and only
one will be reported completed. Remaining shared actions currently stay with
"analyzing" forever.
This cl makes sure that these actions are properly handled when finished.
This is an encore of https://github.com/bazelbuild/bazel/commit/24f19ec2679dd93b1ac5b06e46f3b35807d6e217. In this incarnation I make sure that all actions that discover inputs are consistent in reporting their Analyzing status. Originally only CppCompileAction was doing that. Apparently we have more actions that discover inputs (e.g. LtoBackendAction) but these were not reporting Analyzing and therefore crashing on preconditions. This cl makes sure that all actions discovering inputs report their analyzing status.
RELNOTES: None
PiperOrigin-RevId: 194066513
|
|
|
|
|
|
|
| |
Removing stack trace unless verbose failures is on.
TESTED=unit test
PiperOrigin-RevId: 194060440
|
|
|
|
|
|
|
| |
Working towards #4571.
RELNOTES: CppRules: Feature configuration can be created from Skylark
PiperOrigin-RevId: 194048906
|
|
|
|
|
|
|
|
|
|
| |
for direct, transitive, and full compile-time jars; runtime jars; and instrumentation
metadata. These are trivial wrappers around the corresponding getters on the recursive
and non-recursive JavaCompilationArgs objects.
This is a no-op refactoring in preparation for flatting JavaCompilationArgs into JavaCompilationArgsProvider.
PiperOrigin-RevId: 194047064
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dynamic libraries
Term runtime input had 2 meanings in CppLinkAction:
1) input needed at runtime - dynamic library
2) input corresponding to the C++ runtime (libstdc++ or libc++)
This confused me and therefore the code :) This cl cleans this up to some extent by:
* renaming runtimeInput to runtimesInput, to at least give the reader a chance to catch the difference :)
* treating runtimesInputs as normal linker inputs, also downstream in CppLinkAction and LinkCommandLine
* Simplifying LibrariesToLinkCollector by removing explicit runtimesHandling.
RELNOTES: None
PiperOrigin-RevId: 194046439
|
|
|
|
|
|
|
| |
This allows a C++ file to include headers from a tree artifact, and pass header inclusion checks.
RELNOTES: None.
PiperOrigin-RevId: 193967617
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are effectively three different states a flag's value could be in:
1. Value is known to be non-default
2. Value is known to be default
3. Value is unknown (has been trimmed)
In addition to flagValues (which covers the first state), there are now
two additional sets covering the other two states. Neither of these sets
are used when manual trimming is disabled or when the entire set of flags
is known, in which case state 1 is represented by labels in the map,
state 2 is represented by labels not in the map, and state 3 doesn't exist.
This also adds the flag which controls whether manual trimming is active,
but it currently has no effect.
RELNOTES: None.
PiperOrigin-RevId: 193964624
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 193962460
|
|
|
|
|
|
|
|
|
| |
to check the direct dependencies for aar_import targets.
Currently the default value of this flag is not changed. And it will be enabled in a separate cl.
RELNOTES: None
PiperOrigin-RevId: 193959866
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
See: http://b/78455900
*** Original change description ***
Properly report completion of shared actions with input discovery
Currently we report "Analyzing" when include scanning runs. But since we can
have shared C++ compile actions, only one of the group will be executed and only
one will be reported completed. Remaining shared actions currently stay with
"analyzing" forever.
This cl makes sure that these actions are properly handled when finished.
RELNOTES: None
PiperOrigin-RevId: 193955856
|
|
|
|
| |
PiperOrigin-RevId: 193937177
|
|
|
|
|
| |
RELNOTES:none
PiperOrigin-RevId: 193919970
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Even if downloading a file without a predicted hash, add it to the cache.
This step is necessary to avoid redownloading when we switch to resolved
WORKSPACES. Starting from a plain URL, the file is downloaded and the hash
is added to the resolved version of the rule. Then we still want the resolved
form of the rule (which still has different arguments) to download the
same file again.
Even before the design of resolved WORKSPACES is implemented, this caching
is useful for the manual workflow: take the hash that is printed for every
file downloaded without predicted hash and manually add it to the parameters
of the rule. Then we prefer not to redownload the file again.
Change-Id: I90eefa9efed7c47514cc481dc09d9e938efa5a39
PiperOrigin-RevId: 193907109
|
|
|
|
|
|
|
|
|
|
| |
Add a new put method to the repository cache, that computes the cache key
itself. The key is returned, so it can be reused without having to recompute
it. This is a convenient interface for caching a file that was downloaded
without prior knowledge of its hash.
Change-Id: I6ac844f4166bf64498b87e483896d155df35475e
PiperOrigin-RevId: 193889444
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SpawnAction.setShellCommand(String) now expects
the shell interpreter's path as an argument. This
change enables two things:
- rules can report an error if the shell is
missing
- SpawnAction no longer has to know about a
default shell
The new ShToolchain class will later also be
responsible for retrieving the active shell
toolchain (added in https://github.com/bazelbuild/bazel/commit/81ed3add408adb20bddbc3ba1818c65806738dc5).
This change brings Bazel closer to not depend on
the shell unless it has to (e.g. to run shell
scripts).
See https://github.com/bazelbuild/bazel/issues/4319
RELNOTES: none
PiperOrigin-RevId: 193885943
|
|
|
|
|
|
| |
exceptions are detected in async worker threads.
PiperOrigin-RevId: 193725871
|
|
|
|
|
|
|
|
| |
aar_import probably should give IDEs the same information as other rules, but
it doesn't at the moment. Stop exporting the corresponding provider.
RELNOTES: none
PiperOrigin-RevId: 193701950
|
|
|
|
|
|
|
|
|
|
| |
We need to pass primary asset and resource artifacts to processing, not just
resources.
This was introduced as part of my recent migration. In my defense, this migration was needed exactly to avoid situations like this (ResourceContainer.getArtifacts does not just return resource artifacts like you might expect it to).
RELNOTES: none
PiperOrigin-RevId: 193693868
|
|
|
|
|
|
| |
callables that depend on CToolchain in CppConfiguration.
PiperOrigin-RevId: 193690345
|
|
|
|
|
|
|
|
|
|
|
| |
When two or more instances of high priority workers are running, no other worker execution may start.
Tweak WorkerSpawnRunner. Only reserve resources for a worker after it has been obtained from the pool.
This allows us to block waiting for high priority workers to have finished before resources are reserved.
RELNOTES: Add --high_priority_workers flag.
PiperOrigin-RevId: 193672343
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This extends the scalability fix in https://github.com/bazelbuild/bazel/commit/8c5e290dfab3cab378a9ca107ecdd6267403cd4b to optionally apply to
all statically linked targets. Some test invocations end up building
non-testonly cc_binary that are in the transitive data deps of a test,
and can lead to huge numbers of LTO backend jobs for those test invocations.
With this change, the global blazerc can enable this feature for "blaze test".
This can end up subsuming the thin_lto_linkstatic_tests_use_shared_nonlto_backends
feature. However, it might be useful to keep that one as it can be the default
for all blaze builds (in case anyone wants to just build and not run their tests).
RELNOTES: None
PiperOrigin-RevId: 193667161
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...in preparation of the change towards resolved workspaces,
where a source-like rule is supposed to return the information
needed to make it reproducible. At the moment, the value is
ignored (it is just printed back to the user), but it allows
rule authors to prepare for the upcoming change.
RELNOTES: repository rules are no longer restricted to return None.
Change-Id: I1b3bdc7b02a957f00c9846bcb0ee6b7e09343d72
PiperOrigin-RevId: 193664946
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 193660672
|
|
|
|
|
|
|
|
|
|
|
| |
We always prepend crosstool top path anyway, so let's create Tool instances with
the already prepared path.
I don't expect this affects memory usage since we don't have many cc_toolchain
targets in the graph.
RELNOTES: None
PiperOrigin-RevId: 193660445
|
|
|
|
|
| |
RELNOTES: "bazel run" now lets one run interactive binaries. The BUILD_WORKSPACE_DIRECTORY and BUILD_WORKING_DIRECTORY environment variables indicate the working directory and the workspace root of the Bazel invocation. Tests are provided with an approximation of the official test environment.
PiperOrigin-RevId: 193659165
|
|
|
|
|
| |
RELNOTES:none
PiperOrigin-RevId: 193657227
|
|
|
|
|
|
|
|
| |
Unintentional sideeffect of https://github.com/bazelbuild/bazel/commit/119d8ecfba898799a9ad39eb756fa0247739a4a6 was that linkstamp compile action
stopped receiving flags from --copt (blaze option). This cl fixes that.
RELNOTES: None.
PiperOrigin-RevId: 193655939
|
|
|
|
|
|
|
|
|
| |
In particular, update run_test so that the little test binary used to check ANSI escape code stripping explicitly marks the beginning of its output and delete a bunch of tests run RunCommandTest that verified the output of the binary. They are not relevant anymore now that the output is not piped through the server.
Also drive-by fix a few linter issues in RunCommand.
RELNOTES: None.
PiperOrigin-RevId: 193655720
|
|
|
|
|
|
| |
Always use the more-qualified class name for clarity at the site of use. There are too many classes named Builder.
PiperOrigin-RevId: 193649193
|
|
|
|
|
|
|
| |
This simplifies the exposure to Skylark. It also helps by not forcing us to expose to Skylark providers that may eventually be deleted.
RELNOTES:none
PiperOrigin-RevId: 193645766
|
|
|
|
|
|
|
|
|
| |
This method will be available to Skylark. Native rules will use the wrapped
version in CcCommon.configureFeaturesOrReportRuleError. The error message shown
in case of conflicting features was modified slightly.
RELNOTES: None.
PiperOrigin-RevId: 193639182
|
|
|
|
| |
PiperOrigin-RevId: 193637350
|
|
|
|
|
|
|
|
| |
This field will be needed by C++ rules re-written in Skylark. This change has
to be checked in before the field itself can be used from Skylark.
RELNOTES:none
PiperOrigin-RevId: 193632184
|
|
|
|
|
|
|
|
|
|
| |
CcCommon.configureFeatures
The goal is to enable creation of feature configuration without the rule
context. This will enable us to have cleaner API for this in Skylark.
RELNOTES: None
PiperOrigin-RevId: 193630386
|
|
|
|
|
|
|
| |
reference to `this and its internal state.
RELNOTES:none
PiperOrigin-RevId: 193629392
|
|
|
|
|
|
| |
Always use the more-qualified class name for clarity at the site of use. There are too many classes named Builder.
PiperOrigin-RevId: 193624381
|
|
|
|
|
|
|
|
|
|
| |
This RuleTransitionFactory will be applied to all targets after other
transitions, and is intended to be used to manually trim the configuration
based on tagging of that target. This is a stopgap feature until automatic
trimming of configuration can be implemented.
RELNOTES: None.
PiperOrigin-RevId: 193573013
|
|
|
|
| |
PiperOrigin-RevId: 193564550
|
|
|
|
| |
PiperOrigin-RevId: 193559600
|
|
|
|
|
|
| |
actual code changing going on here.
PiperOrigin-RevId: 193559578
|
|
|
|
|
|
|
|
|
|
| |
This CL introduces a new intermediate SkyValue type,
PackageErrorMessageValue, to be used by RecursivePkgFunction.
RecursivePkgValue will now have a direct dep on
PackageErrorMessageValue rather than PackageValue.
RELNOTES: None
PiperOrigin-RevId: 193549158
|
|
|
|
|
|
|
|
| |
This is a very heavy and slow option by design. It will be enabled only when a user wants to debug their build, most frequently to compare the step-by-step results of two builds.
TESTED: manually on various rules, including directories.
RELNOTES: None
PiperOrigin-RevId: 193539034
|