aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/config
Commit message (Collapse)AuthorAge
* Add easy access to MessageDigests in DigestHashFunctionGravatar ccalvarin2018-08-13
| | | | | | | Move the message-digest cloning to DigestHashFunction and out of Fingerprint, to make it possible to configure Fingerprint to use different hash functions. We keep the default MD5 for now, we'd like it to use the global default but want to isolate the configuration change from any change adding potential contention. RELNOTES: None. PiperOrigin-RevId: 208502993
* Set --defer_param_files to true.Gravatar tomlu2018-08-03
| | | | | | | | | This will cause bazel to write the parameter file during action execution instead of as a separate action. This is faster and requires less memory than using a separate action. When using remote execution, pass --materialize_param_files if you wish to inspect the file locally (for debugging purposes). RELNOTES: Set --defer_param_files to default to true. PiperOrigin-RevId: 207300073
* Lazily construct Preconditions failure message. Mistake from ↵Gravatar janakr2018-08-02
| | | | | | https://github.com/bazelbuild/bazel/commit/129c3e2fd3dfdfe1cd312826988f0944bdd69236. PiperOrigin-RevId: 207140930
* Add a flag to evaluate the top level transitions in SkyframeGravatar ulfjack2018-08-02
| | | | | | | | | | | | | | | | | | | | | | | | This adds a new PrepareAnalysisPhaseFunction, which started out as a copy of some existing code from SkyframeExecutor, BuildView, AnalysisPhaseRunner, AnalysisUtils, and ConfigurationResolver, which was then modified to work inside Skyframe. Most of our tests already work with the new code, except for some of the tests related to configuration trimming in combination with dependency cycles. The reason for this is that we can only recover from dependency cycles at the end of a Skyframe invocation, but never inside a Skyframe invocation. The new code therefore cannot return partial results like the old code. This seems to make null builds a bit faster. In my testing, I saw null build times for a single test target go from ~50ms to ~40ms. This is probably due to slightly better caching - it seems that computing the configuration transitions and top-level targets is non-negligible, even if there's only a single top-level configuration for a single top-level target. This might be an even bigger win if there are a lot of top-level targets and configurations. PiperOrigin-RevId: 207083192
* Refresh ConfigurationResolver.getConfigurationsFromExecutor documentation.Gravatar gregce2018-08-01
| | | | | Specifically: mention trimming less and rule transitions more. PiperOrigin-RevId: 206980126
* Automated rollback of commit db01c6f926bcb4774d901797c59f51dd54c05624.Gravatar janakr2018-07-27
| | | | | | | | | | *** Reason for rollback *** Rolling forward with fixes. *** Original change description *** PiperOrigin-RevId: 206339696
* PiperOrigin-RevId: 206181674Gravatar shahan2018-07-26
|
* Transition --defer_param_files into host options.Gravatar Googler2018-07-23
| | | | | RELNOTES: None. PiperOrigin-RevId: 205665675
* Introduce --strict_fileset_output which treats all output Artifacts ↵Gravatar felly2018-07-18
| | | | | | encountered in a Fileset as a regular file. PiperOrigin-RevId: 205152271
* Read a byte array instead of a certain number of bytes that are indicated by aGravatar mjhalupka2018-07-12
| | | | | | | preceding integer when serializing BuildOptions.DiffForReconstruction. Reorder the cache map inserts due to a subtle race condition that can occur. PiperOrigin-RevId: 204376273
* Move caching to BuildOptions instead of BuildConfigurationValue.Key.Gravatar mjhalupka2018-07-11
| | | | PiperOrigin-RevId: 204154609
* Replace instances of Blaze with Bazel.Gravatar Dan Fabulich2018-07-05
| | | | | | | PiperOrigin-RevId: 203300374 Change-Id: Iaa47f870ab2e0cad40a202aad2c7f9430f73c856 PiperOrigin-RevId: 203407392
* Deletes AutoCodec.PUBLIC_FIELDS strategy. Superseded by DynamicCodec.Gravatar shahan2018-06-29
| | | | PiperOrigin-RevId: 202704472
* Automated refactor of Label.parseAbsolute() to always pass a repository mappingGravatar dannark2018-06-27
| | | | | RELNOTES: None PiperOrigin-RevId: 202360925
* Add Arm64 supportGravatar Arielle Albon2018-06-20
| | | | | | | | Based on work of Sun Zhiyi <zhiyisun@gmail.com>. Closes #5360. PiperOrigin-RevId: 201339882
* Remove topLevelConfigurationHook now that LIPO is goneGravatar gregce2018-06-15
| | | | PiperOrigin-RevId: 200801973
* Remove "artifactOwnerConfiguration" now that LIPO is goneGravatar gregce2018-06-15
| | | | PiperOrigin-RevId: 200763653
* Remove LIPO supportGravatar hlopko2018-06-15
| | | | | RELNOTES: Support for LIPO has been fully removed. PiperOrigin-RevId: 200724578
* When composing RuleTransitionFactories, return something that respects equality.Gravatar mstaib2018-06-13
| | | | | | | | | | | | If the output from composeTransitions is one of the input PatchTransitions, return it. If it's a composed transition, make sure to wrap it in a class which respects equality. Without this change, running the same RuleTransitionFactory on the same attribute and target twice will produce two non-equal Dependencies which can't be deduplicated by OrderedSetMultimap - no lambda is equal to any other instance of the same lambda. RELNOTES: None. PiperOrigin-RevId: 200472777
* Add more data to the exception thrown when putOnlyEntry's verification fails.Gravatar mstaib2018-06-12
| | | | | | | | | If this exception is thrown, performance no longer matters - we're detonating the place and riding the explosion out to stderr. So we might as well just dump everything we know. RELNOTES: None. PiperOrigin-RevId: 200290439
* Move TARGET_CPU from the CcToolchainProvider to BuildConfiguration.Gravatar jcater2018-06-01
| | | | PiperOrigin-RevId: 198877280
* Open up visibility of BuildConfiguration$OutputDirectory for serialization ↵Gravatar janakr2018-05-31
| | | | | | and remove unused repositoryName field from BuildConfiguration. PiperOrigin-RevId: 198723339
* Merge ComposingSplitTransition and ComposingPatchTransition.Gravatar gregce2018-05-29
| | | | | | Part of https://docs.google.com/document/d/1_UJKmAQ9EE8i3Pl0il3YLTYr-Q9EKYYyLatt2zohfyM/edit# PiperOrigin-RevId: 198420365
* Fix SkylarkCallable-annotation detection to appropriately handle methods ↵Gravatar cparsons2018-05-24
| | | | | | | with generic parameters RELNOTES: None. PiperOrigin-RevId: 197932265
* Unfork SplitTransition / PatchTransition invocations.Gravatar gregce2018-05-24
| | | | | | Part of https://docs.google.com/document/d/1_UJKmAQ9EE8i3Pl0il3YLTYr-Q9EKYYyLatt2zohfyM/edit# PiperOrigin-RevId: 197890685
* Make BuildOptions$OptionsDiffForReconstruction deterministic in its ↵Gravatar janakr2018-05-23
| | | | | | construction. Also restrict visibility of some test-only OptionsDiff methods, and remove a server-specific part of the ConfiguredTargetKey #toString representation. PiperOrigin-RevId: 197830577
* Make the SplitTransition, PatchTransition interfaces more compatible.Gravatar gregce2018-05-23
| | | | | | Part of https://docs.google.com/document/d/1_UJKmAQ9EE8i3Pl0il3YLTYr-Q9EKYYyLatt2zohfyM/edit# PiperOrigin-RevId: 197800831
* Simplify split transition semantics: noops now return the input build options.Gravatar gregce2018-05-23
| | | | | | This results in less special logic in the implementation and a simpler API. PiperOrigin-RevId: 197772283
* Rename PatchTransition.apply to PatchTransiton.patch.Gravatar gregce2018-05-23
| | | | | | | This unclashes with the incoming ConfigurationTransition.apply method described in https://docs.google.com/document/d/1_UJKmAQ9EE8i3Pl0il3YLTYr-Q9EKYYyLatt2zohfyM/edit#heading=h.96gongkwg852. PiperOrigin-RevId: 197769784
* Move coverageSupport and coverageReportGenerator from BuildConfiguration toGravatar dbabkin2018-05-18
| | | | | | | TestConfiguration. RELNOTES:none PiperOrigin-RevId: 197135911
* Pull caching up to BuildConfigurationValue$Key$Codec. Almost all ↵Gravatar janakr2018-05-14
| | | | | | | | BuildOptions$DiffForReconstruction serializations are reached in this way, so we get better efficiency. Also, it was already a custom codec, so less new handrolling. Also use serialization framework for FragmentClassSet, instead of doing serialization directly. Default FragmentClassSet should be a constant, so it will serialize down to a byte or three. Future changes can make all the classes constants as well, if we're getting misses on them. PiperOrigin-RevId: 196546279
* Only use fingerprint and checksum for equality and hashCode in ↵Gravatar janakr2018-05-14
| | | | | | BuildOptions$OptionsDiffForReconstruction. The fingerprint uniquely identifies the "baseline" BuildOptions object and the checksum uniquely identifies the "overlay", so we don't need to incorporate the rest of the data. PiperOrigin-RevId: 196532013
* Add an IdentityHashMap to the BuildOptions.OptionsDiffForReconstruction codec.Gravatar mjhalupka2018-05-11
| | | | PiperOrigin-RevId: 196310244
* Migrate SkylarkRuleContext (and a few dependencies) to the build APIGravatar cparsons2018-05-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 196287081
* Relax requirements of skylark-exposed configuration fragmentsGravatar cparsons2018-05-07
| | | | | | | Since configuration fragments will extend from build API classes, @SkylarkConfigurationField no longer needs to annotate a method defined on a @SkylarkModule class. Ideally, we would ensure that a configuration fragment with a @SkylarkConfigurationField method implements an interface with @SkylarkModule, but this seems impossible to perform at the level of an annotation processor. RELNOTES: None. PiperOrigin-RevId: 195651344
* Kill Legacy Fileset implementation.Gravatar kush2018-05-04
| | | | | RELNOTES: None PiperOrigin-RevId: 195422399
* Simplify config fragment creation.Gravatar gregce2018-05-02
| | | | | | | | | Remove all unnecessesary accesses to ConfigurationEnvironment and deprecate the accesses that actually need ConfigurationEnvironment. For review, check out ConfigurationFragmentFactory first. PiperOrigin-RevId: 195099768
* Add equality support to composing transitions.Gravatar mstaib2018-04-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 194540141
* Avoid creating a Composing*Transition if one of the transitions is NoTransition.Gravatar mstaib2018-04-27
| | | | | RELNOTES: None. PiperOrigin-RevId: 194536202
* Add --experimental_use_late_bound_option_defauts flag to toggle usage of ↵Gravatar Googler2018-04-27
| | | | | | | | late bound option defaults BuildConfiguration.Fragment#lateBoundOptionDefaults() is going away soon, this flag is added to decouple its removal with the release process. PiperOrigin-RevId: 194527657
* Replace ConfigurationTransition with PatchTransition in a few places.Gravatar mstaib2018-04-26
| | | | | RELNOTES: None. PiperOrigin-RevId: 194459347
* RuleTransitionFactory returns NoTransition instead of null.Gravatar mstaib2018-04-26
| | | | | RELNOTES: None. PiperOrigin-RevId: 194433721
* Support deferred param files.Gravatar tomlu2018-04-25
| | | | | | | | | | | | | Design doc: https://docs.google.com/document/d/1JXqwwVHYosZOgmjN8xrfTalyhiUYJ99Qe2D0qBcqZ1c The behaviour is gated on --defer_param_files (default off) and is controlled by --min_param_file_size. This CL adds support for VirtualActionInputs to LocalSpawnRunner, and all remote runners already supports them. The sandboxed runners are not yet supported, but that can be added in a future CL. This CL does not add support for spawn runner using different param file limits. This will require refactoring of the spawn strategies and runners to be viable. RELNOTES: None PiperOrigin-RevId: 194265291
* Add the capability to register a trimming RuleTransitionFactory.Gravatar mstaib2018-04-19
| | | | | | | | | | 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
* Move test_timeout to BuildConfiguration and TargetCompleteEvent.Gravatar Googler2018-04-17
| | | | | | | | - Move test_timeout to BuildConfiguration. - Add test_timeout_seconds field to BEP TargetCompleteEvent. - Deprecate test_timeout field in ExecutionInfo. Data is still written to deprecated field to allow consumer transition. PiperOrigin-RevId: 193192636
* Change BuildOptions.DiffForReconstruction.toString() to use MoreObjects insteadGravatar mjhalupka2018-04-12
| | | | | | of a StringBuilder. PiperOrigin-RevId: 192681870
* Remove WorkerTestStrategy and with it, ↵Gravatar lberki2018-04-12
| | | | | | | | | BuildConfiguration.Fragment#compatibleWithStrategy(). The experiment did not work out. RELNOTES: None. PiperOrigin-RevId: 192567832
* Add a toString method to BuildOptions and BuildConfigurationValue.KeyGravatar mjhalupka2018-04-11
| | | | PiperOrigin-RevId: 192479952
* Make --fdo_optimize paths be PathFragment instead of Path, and remove the ↵Gravatar Googler2018-04-11
| | | | | | now unused ConfigurationEnvironment#getBlazeDirectories() PiperOrigin-RevId: 192443323
* Deprecate BuildConfiguration.Fragment#getArtifactOwnerTransition().Gravatar lberki2018-04-11
| | | | | | | Not a lot of chance that this will accidentally get used for something, but let's keep our house tidy. RELNOTES: None. PiperOrigin-RevId: 192426276