| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
Move dealing with coverage related features from CppConfiguration.configurationEnabledFeatures to CcCommon.configureFeatures.
Remove configurationEnabledFeatures.
RELNOTES: None.
PiperOrigin-RevId: 186744803
|
|
|
|
|
|
| |
to select a codec.
PiperOrigin-RevId: 186378153
|
|
|
|
|
|
|
|
|
| |
regex@attempts, similarly to --runs_per_test.
Also re-arrange some option converters to be closer to their options.
RELNOTES: flaky_test_attempts supports the regex@attempts syntax, like runs_per_test.
PiperOrigin-RevId: 186358437
|
|
|
|
|
|
| |
(Des|S)erializationContext.
PiperOrigin-RevId: 185547740
|
|
|
|
|
|
|
|
|
|
| |
Context implementations are currently empty, just doing the plumbing in this
change. Once this is in we can start passing along the ObjectCodecRegistry, which
will allow runtime codec resolution for classes not known at compile time.
We'll also inevitably add some memoization helpers, allowing us to optimize the
serialization process further.
PiperOrigin-RevId: 185305674
|
|
|
|
|
|
| |
BuildConfiguration.
PiperOrigin-RevId: 185155423
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Path and PathFragment have been replaced with String-based implementations. They are pretty similar, but each method is dissimilar enough that I did not feel sharing code was appropriate.
A summary of changes:
PATH
====
* Subsumes LocalPath (deleted, its tests repurposed)
* Use a simple string to back Path
* Path instances are no longer interned; Reference equality will no longer work
* Always normalized (same as before)
* Some operations will now be slower, like instance compares (which were previously just a reference check)
* Multiple identical paths will now consume more memory since they are not interned
PATH FRAGMENT
=============
* Use a simple string to back PathFragment
* No more segment arrays with interned strings
* Always normalized
* Remove isNormalized
* Replace some isNormalizied uses with containsUpLevelReferences() to check if path fragments try to escape their scope
* To check if user input is normalized, supply static methods on PathFragment to validate the string before constructing a PathFragment
* Because PathFragments are always normalized, we have to replace checks for literal "." from PathFragment#getPathString to PathFragment#getSafePathString. The latter returns "." for the empty string.
* The previous implementation supported efficient segment semantics (segment count, iterating over segments). This is now expensive since we do longer have a segment array.
ARTIFACT
========
* Remove Path instance. It is instead dynamically constructed on request. This is necessary to avoid this CL becoming a memory regression.
RELNOTES: None
PiperOrigin-RevId: 185062932
|
|
|
|
|
|
|
|
|
|
|
| |
do the same with the target one.
I'm not exactly happy at this development, but we already have a host of --host_* options so it's only incremental badness.
Fixes #4484.
RELNOTES: None.
PiperOrigin-RevId: 183375817
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
This is slightly more descriptive, and we will potentially want to use the name Root for a broader concept shared between ArtifactRoot and RootedPath.
PiperOrigin-RevId: 182082367
|
|
|
|
|
|
| |
This is no longer used.
PiperOrigin-RevId: 181754475
|
|
|
|
| |
PiperOrigin-RevId: 181545835
|
|
|
|
|
|
|
| |
HostTransition can't be migrated yet because it depends on
BuildConfiguration.
PiperOrigin-RevId: 180842784
|
|
|
|
|
|
|
| |
that most Google builds have it set to true.
RELNOTES: None
PiperOrigin-RevId: 180578926
|
|
|
|
|
|
|
|
|
|
| |
we don't create too many of them, but it'll be nice to have this interning for future work in which there are many more of them.
When comparing BuildConfiguration instances, compare their full BuildOptions fields, which can compare quickly due to fingerprint caching, as opposed to their raw options, which is slow.
Also intern the map of Fragments that we create as part of a BuildConfiguration. There aren't too many of them either, but it means that equal Fragment sets can be compared using reference equality downstream.
PiperOrigin-RevId: 180289334
|
|
|
|
| |
PiperOrigin-RevId: 180202221
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This cleans up a legacy API from Bazel's "static configuration" days,
when transition definitions involved deep and complex logic in the
analysis code. That was too much cruft to embed into lib.packages.
But the modern definitions are way simpler and thus easier to embed.
This change only *copies* the existing definitions. Because a lot of
references will have to be updated, we'll migrate the move over a few
changes.
PiperOrigin-RevId: 179859293
|
|
|
|
|
|
|
| |
Allows for ThinLTO to be enabled once the --features=autofdo_implicit_thinlto feature is enabled in the crosstool. Also allows for --features=-thin_lto to override and prevent ThinLTO from being enabled.
RELNOTES: None.
PiperOrigin-RevId: 179687743
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Context: java_import or other custom rules (genrules or Skylark) do not propagate coverage information. Coverage metadata is retrieved from the compilation information and it is passed around through providers as Artifact(s). The problem with the current implementation is that there is no way of retrieving instrumentation metadata from arbitrary jars provided by java_import or other custom rules.
--experimental_java_coverage solves the issue presented above ONLY for the java rules (has no effect for android/[]/etc).
Implementation details:
* For each build jar create a .txt file containing the relative path of each Java file. This file is included in the build jar. It is used for recreating the correct path for each covered file when included in the coverage report.
* java_binary/java_test will set 3 environment variables:
1) JACOCO_METADATA_JAR - in experimental mode will be a txt file containing all the jars considered for collecting coverage (JacocoCoverageRunner filters out the ones that don't have .uninstrumented.class files). In non-experimental mode will be a jar containing all the instrumented class files.
2) JACOCO_MAIN_CLASS - The main class to be called for the current coverage run. Previously this information was embedded in the JACOCO_METADATA_JAR's manifest.
3) JACOCO_JAVA_RUNFILES
RELNOTES: --experimental_java_coverage is available for testing.
PiperOrigin-RevId: 177941471
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, SymlinkTreeAction no longer needs to accept artifacts
as an input. --experimental_enable_runfiles now immediately reports an
error on Windows.
This mostly unwinds e4974e4cc6aeb437d36b3b36eb20142b7120fb16
("Separate runfiles middlemen into two layers") and
41f4456ac2348bef66739194853a1ddadcbb887e ("Make runfiles tree creation
on Windows depend on the artifacts of the actual runfiles."). See
https://groups.google.com/d/msg/bazel-dev/btOAgxv434g/bDhTOOePAgAJ.
Change-Id: Iac3308669bfc07abfd1c91445922269d8fdc2a26
PiperOrigin-RevId: 177837504
|
|
|
|
|
|
|
| |
behave as if this flag is true.
RELNOTES: None
PiperOrigin-RevId: 177219652
|
|
|
|
|
|
| |
configuration.
PiperOrigin-RevId: 175532550
|
|
|
|
| |
PiperOrigin-RevId: 175027144
|
|
|
|
|
|
|
| |
"blaze test".
RELNOTES: None.
PiperOrigin-RevId: 174386473
|
|
|
|
|
| |
RELNOTES: none
PiperOrigin-RevId: 173432000
|
|
|
|
|
|
|
|
|
| |
toolchain identifier.
This is necessary because we don't want BuildConfiguration to depend on BUILD and CROSSTOOL files anymore and this is possible because the toolchain ID was conceived as a unique identifier for the configuration in the build event stream, which it isn't anyway, and this way it's at least more human-readable.
RELNOTES: None.
PiperOrigin-RevId: 172725386
|
|
|
|
|
|
|
|
| |
Adds a legacy flag so clients can continue to use both
experimental_auto_cpu_environment_group and auto_cpu_environment_group until
uses can be cleaned up.
PiperOrigin-RevId: 172470616
|
|
|
|
|
|
|
| |
This migration flag only affects Java rules.
RELNOTES: None.
PiperOrigin-RevId: 171026607
|
|
|
|
| |
PiperOrigin-RevId: 171017483
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
--plugin, though once used for C++, is currently a Java-specific flag.
--plugin_copt is currently a total no-op, and has been for a long time.
Moving these to the Java fragment is a little neater and helps get one
step closer to enforcing LateBoundDefault fragment access.
Additionally, since the "no plugins with duplicate names" restriction
was added to work with plugin_copt, this restriction can be lifted.
It no longer adds any value.
RELNOTES: None.
PiperOrigin-RevId: 169981221
|
|
|
|
|
|
|
|
| |
There's no need for it in the core configuration options, as it's used
exclusively by Python rules.
RELNOTES: None.
PiperOrigin-RevId: 169435643
|
|
|
|
| |
PiperOrigin-RevId: 168607439
|
|
|
|
| |
PiperOrigin-RevId: 168583577
|
|
|
|
|
|
|
| |
getPotentialSplitTransitions() from FragmentOptions.
RELNOTES: None.
PiperOrigin-RevId: 168218102
|
|
|
|
|
|
|
|
| |
foo_test.runfiles_manifest files. These are the largest local outputs
in many builds, and unnecessary for remote test execution.
RELNOTES: New --build_runfile_manifests flag controls production of runfiles manifests.
PiperOrigin-RevId: 166001477
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
BuildConfigurationCollection.Transitions.
Part of the static config cleanup effort.
PiperOrigin-RevId: 165607492
|
|
|
|
|
|
|
|
| |
Dynamic configs use RuleTransitionFactory instead.
Part of the static config cleanup effort.
PiperOrigin-RevId: 165590679
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
host configuration.
I think the comment I'm deleting is misleading. PAR file construction
already has special handling of the input manifest, and host tools do
get their runfiles when executed remotely. They don't get them for
local execution, but users who care about that don't need to pass the
non-default --nobuild_runfile_links option.
RELNOTES: None.
PiperOrigin-RevId: 165535870
|
|
|
|
| |
PiperOrigin-RevId: 165478994
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
--test_env isn't moved in this CL since it's exposed to Skylark via BuildConfiguration, making it a somewhat riskier refactor.
PiperOrigin-RevId: 164266168
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If this is enabled, Bazel will build a Windows native exe binary
launcher for sh_binary, in the future this flag will also
apply to py_binary and java_binary.
By default, it's turned ON, set --windows_exe_launcher=0 to turn it off.
Fix https://github.com/bazelbuild/bazel/issues/3491
Change-Id: Ic55bff745670446e585e3cc62af9dc6561527d4f
PiperOrigin-RevId: 164234552
|
|
|
|
|
|
| |
The other test configuration options will follow in subsequent CLs to keep size manageable.
PiperOrigin-RevId: 164068510
|
|
|
|
|
|
| |
Fixes a bug where the flags would be ignored during Bazel's compile.sh bootstrap.
PiperOrigin-RevId: 163341779
|
|
|
|
|
|
|
|
| |
The computed default used in bazel coverage excludes both javatests/ and test/java. Having the stated default exclude only one of those is needlessly confusing. (Even though in practice that static default will rarely be used.)
Also updates the comment about the computed default, since that logic has moved.
PiperOrigin-RevId: 163325837
|
|
|
|
|
|
|
|
|
|
| |
This lets a parent choose a transition for its dep based
on the dep's rule class.
Implement (experimental) dynamic Android resource filtering
trimming with this.
PiperOrigin-RevId: 163259052
|
|
|
|
|
|
| |
Part of the static configuration removal cleanup.
PiperOrigin-RevId: 163130922
|
|
|
|
|
|
|
|
|
| |
given type.
Fixes https://github.com/katre/bazel/issues/6.
Change-Id: I6c6e303384277b013bdc27eb80743aa51f2fb98a
PiperOrigin-RevId: 162618674
|