| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Made obsolete by https://github.com/bazelbuild/bazel/commit/e734c479956df7a675c61f531d769609d3af3e5d
*** Original change description ***
Blaze now passes an extra flag to JavaBuilder, --testonly, to
mark compilations of test code.
We plan to use this for Error Prone checks that need to distinguish
between test and production code, such as enforcing
@VisibleForTesting.
PiperOrigin-RevId: 183121768
|
|
|
|
|
|
| |
start-lib/end-lib should not be passed to ar. Fix how the libraries to link are passed to ar by not using the generic feature "libraries_to_link"
PiperOrigin-RevId: 183107904
|
|
|
|
|
|
|
|
| |
BuildConfiguration.Fragment>> set of Fragment classes that is part of the BuildConfigurationValue.Key. This class allows us to compute a fingerprint of the wrapped ImmutableSortedSet, making equality comparisons fast. The number of additional wrapper objects is the number of distinct sets of fragment classes, so 1. (In fact, we don't even need to compute a fingerprint, since reference equality does the job for us here, but we do it just to be conservative.)
This CL has a performance benefit for Bazel currently, but has a bigger performance benefit in the following changes, where there are more BuildConfigurationValue.Key objects to compare.
PiperOrigin-RevId: 183090122
|
|
|
|
|
|
|
| |
`blaze --nomaster_bazelrc --master_bazelrc` now uses the master bazelrc.
RELNOTES: None
PiperOrigin-RevId: 183083839
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We'll just replace them with either native support for running tests inside
Docker containers on CI or with VMs running the operating system.
This gets rid of the "let's download 8 GB of Docker images" step when running
`bazel build //...`.
RELNOTES: None.
Closes #4506.
PiperOrigin-RevId: 183078052
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 183069509
|
|
|
|
|
|
|
|
|
| |
Add a test verifying that http_archive from @bazel_tools caches
repositories, also for subsequent queries. Provides a workaround
for #2780.
Change-Id: Ie842c2abf47f42f75e146e454be4ab52efd12ada
PiperOrigin-RevId: 183063093
|
|
|
|
|
|
|
|
| |
and fixes codec in
RunUnderConverter.
PiperOrigin-RevId: 183003383
|
|
|
|
|
|
|
|
| |
ImmutableSortedSet wherever possible, and use a known explicit ImmutableSortedSet in the case of two sets being equal. This is mainly a cosmetic cleanup for the sequel changes.
Also rename test-only methods in SkyframeExecutor to indicate that, and do a drive-by clean-up of a test that reported hard crashes confusingly because it wrapped RuntimeExceptions.
PiperOrigin-RevId: 182984572
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Merged object files are needed when we use -flto-unit. It's created
during the LTO indexing step and needs to be passed to the final link.
LLVM already can create merged object files we just need to pass
"-Wl,-plugin-opt,obj-path=" into LLVM gold plugin.
"-flto-unit" emits IR to support LTO unit features needed for CFI (Control
Flow Integrity).
RELNOTES: Add support for merged object files needed for -flto-unit.
PiperOrigin-RevId: 182964781
|
|
|
|
|
|
|
| |
JavaRuntimeInfo.
Change-Id: Ic338dc9b3e5efa2fee92dba722a46cab743db40c
PiperOrigin-RevId: 182919931
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not run "find & chmod" on the extracted files,
because:
(a) it's unnecessary, we can delete them in the
trap statement just fine, and
(b) it takes an impressive 20 minutes on Windows,
probably because process creation is a lot
slower on Windows than on Unixes and each
`chmod` runs as a subprocess of `find`
See https://github.com/bazelbuild/bazel/issues/4503
Change-Id: I47d97f00b875716997c197a51602fb6ea7728109
PiperOrigin-RevId: 182905086
|
|
|
|
|
|
|
|
| |
Fixes #3234.
Rollforward of commit dafe71390340224e06eab0ac7afcebb2f5219f5a with a bugfix
PiperOrigin-RevId: 182903117
|
|
|
|
|
|
|
|
|
|
|
| |
JavaRuleOutputJarsProvider.
Added tests for checking JavaRuleOutputJarsProvider state.
Moved all test cases related to JavaInfo to new file JavaInfoSkylarkApiTest.java
Created RuleBuilder inside JavaInfoSkylarkApiTest to reduce duplication of code.
RELNOTES:none
PiperOrigin-RevId: 182901118
|
|
|
|
|
|
|
|
|
|
| |
Bazel may also depend on external repositories that already contain
build files. When using http_archive from @bazel_tools also support
that use case, by supporting simply omitting `build_file` and
`build_file_contents`.
Change-Id: I40a9b85ae0aba850c73104d2e2fe7f7ee814e093
PiperOrigin-RevId: 182893460
|
|
|
|
|
|
| |
java.util.function.Predicate and move some code that was only called by TestFilter inside it.
PiperOrigin-RevId: 182884550
|
|
|
|
|
|
|
| |
Fixes #4170.
Change-Id: I308ee17eb769dcc6a94b90b1dd6cc2ccbe14e968
PiperOrigin-RevId: 182807196
|
|
|
|
|
|
|
| |
Part of #4442.
Change-Id: I49d6d851787727739f50348df2e2ef48392af479
PiperOrigin-RevId: 182795733
|
|
|
|
|
|
|
| |
This will serve as an alternative to --batch, leaving behind a server without state from the previous build.
RELNOTES: Introduces --[no]keep_state_after_build
PiperOrigin-RevId: 182778500
|
|
|
|
|
|
|
| |
Part of #4442.
Change-Id: I6debbf7cfdf560d2113e736176702c2cd889c0d2
PiperOrigin-RevId: 182763864
|
|
|
|
|
|
| |
owner and fix up BuildConfigurationValue.Key. ConfiguredTargetKey is going to need some modifications to AutoCodec: probably the long-awaited static "create" method.
PiperOrigin-RevId: 182630181
|
|
|
|
|
|
|
| |
https://google.github.io/styleguide/javaguide.html#s3.4.2.1-overloads-never-split
RELNOTES: NONE.
PiperOrigin-RevId: 182626819
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 182579590
|
|
|
|
|
|
|
|
| |
into output files one by one this mostly means that we can start writing the next file while the previous one is still finishing up, and can read and write in parallel.
RELNOTES: None.
PiperOrigin-RevId: 182570961
|
|
|
|
|
|
| |
Also add a new appendFile method on Scratch.
PiperOrigin-RevId: 182558199
|
|
|
|
|
|
|
| |
An upcoming replacement to PathFragment will not have efficient segment semantics, causing code to become unnecessarily inefficient.
RELNOTES: None
PiperOrigin-RevId: 182553098
|
|
|
|
|
|
| |
This makes it clearer that the path fragments in question are relative *to the root*. Confusingly, when the root is absolute, the root relative fragment is also absolute. This makes it a tiny bit clearer that the path fragment may be absolute.
PiperOrigin-RevId: 182544893
|
|
|
|
|
|
| |
path class.
PiperOrigin-RevId: 182526427
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Breaks C++ on gcc 4.8.4 (specifically, TensorFlow: https://github.com/bazelbuild/bazel/issues/4474)
Fixes #4474
*** Original change description ***
When linking mostly-static Linux binaries, link libstdc++.a explicitly.
This allows libstdc++ to be statically linked, which is normally only
possible when invoking GCC as `g++` with the `-static-libstdc++` flag.
Fixes https://github.com/bazelbuild/bazel/issues/2840
See https://github.com/envoyproxy/envoy/issues/415 for additional
background and context.
cc @htuch (for Envoy) and @calpeyser @hlopko (who I talked to earlier about this)...
***
RELNOTES: None.
PiperOrigin-RevId: 182519445
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Local execution has an inherent race condition: if a user modifies a file while an action is executed, then it is impossible for Bazel to tell which version of the file was actually read during action execution. The file may have been modified before or after the tool has read it, or, in the worst case, the tool may have read both the original and the modified version. In addition, the file may be changed back to the original state before Bazel can check the file, so computing the digest before / after may not be sufficient.
This is a concern for both local and remote caches, although the cost of poisoning a shared remote cache is significantly higher, and is what has triggered this work.
Fixes #3360.
We solve this by keeping a reference to the FileContentsProxy, and using that to check for modificaitons before storing the cache entry. We output a warning if this check fails.
This change does not increase memory consumption; Java objects are always allocated in multiples of 8 bytes, we use compressed oops, and the FileArtifactValue currently has 12 bytes worth of fields (excl. object overhead), so adding another pointer is effectively free.
As a possible performance optimization on purely local builds, we could also consider not computing digests at all, and only use the FileContentsProxy for caching.
PiperOrigin-RevId: 182510358
|
|
|
|
|
|
|
| |
...as it breaks shell tests
Change-Id: I191ec7c0f36832ff064af0b756a8c8fb41eb2a87
PiperOrigin-RevId: 182509548
|
|
|
|
|
|
|
|
| |
BaseRuleClasses.DYNAMIC_TRANSITION_MAP.
This leaves DATA as the last remaining legacy transition.
PiperOrigin-RevId: 182422552
|
|
|
|
|
|
|
| |
* Use an enum instead of booleans and null fields having special meaning.
* Remove the exec root from ArtifactRoot. This is only used to calculate artifact exec paths, which can be done from the root's exec path and the root relative path.
PiperOrigin-RevId: 182411710
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, aar_import.deps only worked for resource files and
aar_import.exports worked for both resource files and Java. Now,
aar_import.deps works for both as well with the same semantics as exports. This
is not ideal, but it is how java_import.deps currently works.
Fixes https://github.com/bazelbuild/bazel/issues/4472
RELNOTES: None
PiperOrigin-RevId: 182405741
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
incomplete deps that need to be removed, and
these deps are currently duplicated in the NodeEntry's newly requested deps
GroupedList.
Also add a fast-path to GroupedListHelper#remove(List<Object> elements, Set<E> toRemove) for the incredibly common case where toRemove is empty. This saves a wasteful O(elements.size()) scan over elements. This method is unconditionally called each time a SkyFunction restart causes us to add new direct deps (with elements=<the new direct deps> and toRemove=<unfinished direct deps>); in the case where there are a ton of new direct deps, this scan entails wasted cpu and gc churn. The bug only occurs in uncommon case that there are deps to remove.
The bug has existed since GroupedList was first introduced into the codebase.
In Skyframe-land, this is only observable in nokeep_going mode because in keep_going mode "we
do not let SkyFunctions throw errors with missing deps" (quote from
comment in AbstractParallelEvaluator).
A Bazel-on-Skyframe-land example how this bug could occur in practice is PackageFunction's Skyframe hybrid globbing. If an io error is encountered during legacy globbing, the PackageFunction eagerly throws a SkyFunctionException but it has already requested the Skyframe GlobValue deps.
RELNOTES: None
PiperOrigin-RevId: 182403943
|
|
|
|
|
|
|
|
| |
An absolute root accepts any absolute path fragments and simply returns it.
This concept replaces the FileSystem root directory concept.
PiperOrigin-RevId: 182400471
|
|
|
|
|
|
|
|
| |
SkylarkAspectLoadingKey.
Also add a @VisibleForSerialization annotation to @AutoCodec, since we're going to need to increase serialization visibility a lot here, and clean up some unnecessary modifiers.
PiperOrigin-RevId: 182389162
|
|
|
|
|
|
|
|
|
|
|
|
| |
container, ConfiguredTargetAndTarget, that can be used to access Targets, and deprecate ConfiguredTarget#getTarget. ConfiguredAndTargetObjects are intended to be limited in scope, not being persisted to Skyframe.
The eventual plan is to remove the target field from ConfiguredTarget.
This CL is mostly straightforward, except for dealing with AliasConfiguredTargets, which cause some complications.
A significant cleanup is still needed before #getTarget can be removed, but I don't see any impossible blockers. We will may still need to store a Target-like object in ConfiguredTarget (that has the RuleClass, or at least a string representation of it, for instance), but that will let us avoid storing a full Target together with its associated Package.
PiperOrigin-RevId: 182371566
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before commit f47291ee3 [1],
FileSystemConcurrencyTest was part of
"foundations_test" which was marked as flaky.
After the change, this test is part of "vfs_test"
which is not marked as flaky.
Looking at the test code [2] it's clearly flaky,
so the modification is appropriate.
[1]
https://github.com/bazelbuild/bazel/commit/f47291ee35e01ebd58951e81b3e65be3243a5f13
[2] https://github.com/bazelbuild/bazel/blob/6f502ac12180973f4646c95d95e1516082b3c71c/src/test/java/com/google/devtools/build/lib/vfs/FileSystemConcurrencyTest.java#L46
RELNOTES: none
PiperOrigin-RevId: 182352485
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added tests for checking JavaExportsProvider state.
Refactored logic working with collection in favor of using Streams to improve readability.
All other providers will be implemented in next CLs.
previous CL with JavaCompilationArgsProvider implementation is https://github.com/bazelbuild/bazel/commit/32dff21d00ad7d1bdf50e8761d675a6e7e002de9,
JavaSourceJarsProvider : https://github.com/bazelbuild/bazel/commit/5bd53cb609480ca896ca2d011f415b424c63ce63
RELNOTES:none
PiperOrigin-RevId: 182342490
|
|
|
|
| |
Change-Id: I05fa85967317c4581081adfc620e24a7c6322669
|
|
|
|
|
|
|
|
|
|
|
| |
This class represents a root (such as a package path or an output root) used for file lookups and artifacts. It is meant to be as opaque as possible in order to hide the user's environment from sky keys and sky functions.
Roots are used by RootedPaths and ArtifactRoots.
This CL attempts to make the minimum number of modifications necessary to change RootedPath and ArtifactRoot to use these fields. Deprecated methods and invasive accessors are permitted to minimise the risk of any observable changes.
RELNOTES: None
PiperOrigin-RevId: 182271759
|
|
|
|
|
|
|
|
|
| |
The bug also permitted For statements in BUILD files so long as they were contained within an If statement (i.e. not at the top level).
Also add minor guidance to error messages.
RELNOTES: None
PiperOrigin-RevId: 182236172
|
|
|
|
|
|
|
|
|
|
| |
Add a test verifying that changes to the patch file trigger a
a rebuild of the external repository.
Ensures soundness of the fix for Issue #3395.
Change-Id: Ida3823b7cddbe3bb54f0f0e24074e3854055f6e1
PiperOrigin-RevId: 182226112
|
|
|
|
|
|
|
|
|
|
|
|
| |
The http_archive command from @bazel_tools can add a BUILD file to an
external repository. Add a test ensuring that changes to that file, in
particular the addition of a previously missing file, are tracked
properly.
Provides a workaround for #3637.
Change-Id: Ibd6a3336834686a13eaa1f9ce7d4c6223410b222
PiperOrigin-RevId: 182221653
|
|
|
|
|
|
|
| |
This has the effect of documenting exposed struct fields on these providers.
RELNOTES: None.
PiperOrigin-RevId: 182221042
|
|
|
|
|
|
|
| |
Fixes #4443.
Change-Id: I8a30823eff87457e3ef2568efbe667f29c644ed4
PiperOrigin-RevId: 182208767
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 182145172
|
|
|
|
|
|
| |
* Moves SingletonCodec to third_party.
PiperOrigin-RevId: 182143153
|
|
|
|
|
|
| |
appears to be flaky in connecting to the JVM.
PiperOrigin-RevId: 182118581
|