aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
Commit message (Collapse)AuthorAge
* Initialize the RuleClassProvider only once.Gravatar carmi2017-12-12
| | | | | | | This saves some CPU/wall time when creating multiple PackageLoader instances. RELNOTES: None PiperOrigin-RevId: 178834826
* Add a new file path type, LocalPath.Gravatar tomlu2017-12-12
| | | | | | | | This path type is a local file path as a wrapper around a string. It works much the same as java.io.File, but without its file operations. For the most part, FilePath shouldn't add much overhead compared to using plain strings. Strings do get normalised on the way in, but no extra objects are allocated unless the path actually needs normalisation. PiperOrigin-RevId: 178798497
* Remove hyperthreading multiplier to improve performance.Gravatar dmaclach2017-12-12
| | | | | | | Tests on my local machine show that the Hyperthreading multiplier is significantly hurting our builds times. RELNOTES: Set build jobs equivalent to number of logical processors by default. Should improve build times significantly. PiperOrigin-RevId: 178795078
* Add --checkHashMismatch flag to ZipFilterAction.Gravatar jingwen2017-12-12
| | | | | | | | | | This flag is set to true by default. If `--checkHashMismatch IGNORE` is passed, ZipFilterEntryFilter will filter duplicate files based on filenames and not do the check for different content hashes. This is used for Android instrumentation tests: classes already in the target APK are removed from the instrumentation APK to prevent runtime crashes in ART. GITHUB: #903 RELNOTES: Added --checkHashMismatch flag to ZipFilterAction. Valid values are IGNORE, WARN and ERROR. --errorOnHashMismatch is deprecated, please use this flag instead. PiperOrigin-RevId: 178787292
* Fix a CCE in ConfiguredTargetCycleReporterGravatar cushon2017-12-12
| | | | PiperOrigin-RevId: 178785887
* Add a new flag to disable glob tracking: --incompatible_disable_glob_trackingGravatar laurentlb2017-12-12
| | | | | RELNOTES: None. PiperOrigin-RevId: 178760403
* Automated rollback of commit 367f704e71f352b404df38161f4c367b9ff506c9.Gravatar hlopko2017-12-12
| | | | | | | | | | | | | | *** Reason for rollback *** Rollforward of https://github.com/bazelbuild/bazel/commit/c861c0afd9a4df283936218b9e5b33c452b07c95 after fixing fake link actions. *** Original change description *** Rollback of 178106899. RELNOTES: Linkstamping is now a separate and full-blown CppCompileAction, it's no longer a part of linking command. PiperOrigin-RevId: 178760072
* Update cc_import rule documentationGravatar Yun Peng2017-12-12
| | | | | | | | 1. Allowing .lib as interface library, which is necessary on Windows 2. Documenting cc_improt by giving specific example use cases. Change-Id: Ia50850495a1e91fe913ad69f9119753c32f9b4a7 PiperOrigin-RevId: 178754145
* [java_common.compile] Name output source jar relative to the output jar nameGravatar elenairina2017-12-12
| | | | | | | instead of the rule name. RELNOTES: None. PiperOrigin-RevId: 178747070
* Remove an unused fieldGravatar cushon2017-12-12
| | | | PiperOrigin-RevId: 178731961
* Thread FileSystem instance through a few call sites.Gravatar tomlu2017-12-11
| | | | PiperOrigin-RevId: 178704585
* disambiguate mnemonics for $shuffle_jars and $dexsharder actionsGravatar kmb2017-12-11
| | | | | | RELNOTES: None. PiperOrigin-RevId: 178693605
* Removes skyframe/serialization's dependency on cmdline and vfs. Instead, ↵Gravatar Googler2017-12-11
| | | | | | make cmdline and vfs depend on serialization. This allows a class to have a pointer to its codec, which simplifies automatic recursive composite codecs. PiperOrigin-RevId: 178683500
* Automated rollback of commit 9321316b34767b06c3071b2cf2a4de189874fcce.Gravatar ccalvarin2017-12-11
| | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Design change, 2 boolean flags instead of 1 enum flag *** Original change description *** Add --incremental_state_retention_strategy This option is intended to replace some of the uses of --batch. It lets users specify that builds should not be incremental, and how eagerly to discard the state that is kept around for incrementality. Note that for both values discard_eargerly and keep_for_life_of_build, the build graph is kept around until the next build. This may change. Will add tests for keep_for_life_of_build in a later change, for now it will warn that that feature is experimen... *** ROLLBACK_OF=178661777 RELNOTES: None. PiperOrigin-RevId: 178681472
* Add --incremental_state_retention_strategyGravatar ccalvarin2017-12-11
| | | | | | | | | This option is intended to replace some of the uses of --batch. It lets users specify that builds should not be incremental, and how eagerly to discard the state that is kept around for incrementality. Note that for both values discard_eargerly and keep_for_life_of_build, the build graph is kept around until the next build. This may change. Will add tests for keep_for_life_of_build in a later change, for now it will warn that that feature is experimental. RELNOTES: --[no]keep_incrementality_data is gone, replaced by the enum-valued --incremental_state_retention_strategy PiperOrigin-RevId: 178661777
* Remove hyperthreading multiplier to improve performance.Gravatar dmaclach2017-12-11
| | | | | | | | | | | | | | Tests on my local machine show that the Hyperthreading multiplier is significantly hurting our builds times. Running with 8 logical cores is 11% faster than running with 4.8 cores when doing builds on my Mac. macOS 10.12 MacBookPro 2017 (1 CPU, 4 core, 8 hyperthreaded) 1434.259 with --jobs = 5 1274.459 with --jobs = 8 I'll do some similar tests on Linux to see if it makes sense there. PiperOrigin-RevId: 178654477
* Clarify documentation about File.basenameGravatar laurentlb2017-12-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 178618888
* Fix: uploading artifacts of failed actions to remote cache stopped working.Gravatar olaola2017-12-11
| | | | | | | | | | | | | | | | To reproduce: run a failing test with --experimental_remote_spawn_cache or with --spawn_strategy=remote and no executor. Expected: test log is uploaded. Desired behavior: - regardless of whether a spawn is cacheable or not, its artifacts should be uploaded to the remote cache. - the spawn result should only be set if the spawn is cacheable *and* the action succeeded. - when executing remotely, the do_not_cache field should be set for non-cacheable spawns, and the remote execution engine should respect it. This CL contains multiple fixes to ensure the above behaviors, and adds a few tests, both end to end and unit tests. Important behavior change: it is no longer assumed that non-cacheable spawns should use a NO_CACHE SpawnCache! The appropriate test case was removed. Instead, an assumption was added that all implementations of SpawnCache should respect the Spawns.mayBeCached(spawn) property. Currently, only NO_CACHE and RemoteSpawnCache exist, and they (now) support it. TESTED=remote build execution backend. WANT_LGTM: philwo,buchgr RELNOTES: None PiperOrigin-RevId: 178617937
* Doc: mention that sibling must be in the same package.Gravatar laurentlb2017-12-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 178609245
* Avoid expansion of NestedSets in MiddlemanFactory.Gravatar Benjamin Peterson2017-12-11
| | | | | | | | | | | | MiddlemanFactory wants to check if the middleman inputs set is empty or singleton. A NestedSet can answer both queries efficiently if the right APIs are used. My ultimate goal here is to avoid the expansion of runfiles artifacts nested sets until execution. Change-Id: I29a269df757ef41b1410bbb492cf24c926df6114 PiperOrigin-RevId: 178600943
* Move native deps collection code out of android_binary.Gravatar ajmichael2017-12-09
| | | | | | | Also remove a TODO that was addressed in unknown commit. RELNOTES: None PiperOrigin-RevId: 178489151
* Thread filesystem through codebase.Gravatar tomlu2017-12-08
| | | | | RELNOTES: None PiperOrigin-RevId: 178426166
* Add fields to record block I/O and involuntary context switch execution ↵Gravatar ruperts2017-12-08
| | | | | | | statistics to SpawnResults, and add cumulative getters for these in ActionResults. RELNOTES: None. PiperOrigin-RevId: 178426142
* Make config_feature_flag's default_value optional.Gravatar mstaib2017-12-08
| | | | | | | | | | | | | | | | | | | | | | | With this change, if the default_value is not set, but the flag has been given a value by a configuration transition, that value is used and no error is produced. If the default_value is not set and the flag has not been given a value by a configuration transition, the rule produces an error (as it did before, but now the error is different). config_feature_flags with default_values behave as they did before. (use the default value if no configured value is set, otherwise use the configured value) Also transition the Optional used in feature flags from Guava to Java 8. RELNOTES: config_feature_flag's default_value is optional. It is only an error to have a config_feature_flag with no default_value if that config_feature_flag has not been set in the configuration it is being evaluated in. PiperOrigin-RevId: 178418907
* Add --implicit_deps custom filtering to configuredtargetqueryenvironment.Gravatar juliexxia2017-12-08
| | | | | | This implementation requires adding an interned list of LabelAndConfiguration objects to each RuleConfiguredTarget ('implicit' is an attribute describer, not a dep describer so filtering needs to happen while attribute information still exists). PiperOrigin-RevId: 178411882
* Remove unused Info constructor argGravatar brandjon2017-12-08
| | | | | RELNOTES: None PiperOrigin-RevId: 178408662
* Remove redundant words in logging message.Gravatar nharmata2017-12-08
| | | | | RELNOTES: None PiperOrigin-RevId: 178407067
* Stop filtering resources in analysis in aapt2 buildsGravatar Googler2017-12-08
| | | | | | | | aapt2 always gets the complete, unfiltered resources, and then filters them in execution. Save time by not uselessly filtering in analysis. RELNOTES: none PiperOrigin-RevId: 178397137
* Rollback of 178106899.Gravatar cpeyser2017-12-08
| | | | PiperOrigin-RevId: 178384991
* Rollforward of rollback commit 078c25c2f3cce5f407e28938ab2f3429e4609b19 with ↵Gravatar juliexxia2017-12-08
| | | | | | properly executable shell and correct test outputs. PiperOrigin-RevId: 178376681
* Automated rollback of commit 337f19cc54e77c45daa1d5f61bf0a8d3daf8268f.Gravatar buchgr2017-12-08
| | | | | | | | | | | | | | | | | *** Reason for rollback *** This breaks downstream projects and blocks Bazel's 0.9.0 release. See https://github.com/bazelbuild/bazel/issues/4249 for more information. *** Original change description *** Move override check to the createAndOverrideRule function So we actually test for override also from skylark repositories. Fixes #3908. Change-Id: I7650a17834a6915a73c89df46989f72aa2f56920 PiperOrigin-RevId: 178370143
* Infrastructure for fixed checking if android_test can inherit resourcesGravatar Googler2017-12-08
| | | | | RELNOTES: none PiperOrigin-RevId: 178369060
* Remove the --incompatible_list_plus_equals_inplace flagGravatar vladmos2017-12-08
| | | | | | | | RELNOTES[INC]: The flag --incompatible_list_plus_equals_inplace is removed, its default behavior is preserved. += on lists now always mutates the left hand side. PiperOrigin-RevId: 178359047
* Change flag name --start_type to --start, to be consistent with adb options ↵Gravatar Googler2017-12-07
| | | | | | | | | flag. Add check to test options, default value of testFilter is null. RELNOTES: None PiperOrigin-RevId: 178337368
* Register builtins with RuntimeGravatar brandjon2017-12-07
| | | | | | | | | | | This covers all builtins in classes that use SkylarkSignatureProcessor#configureSkylarkFunctions. Generally this means things you define with @SkylarkSignature. It is now an error to call configureSkylarkFunctions multiple times for the same class. It should only be called in static initializers. Runtime's static knowledge of builtins has been factored into Runtime.BuiltinRegistry. RELNOTES: None PiperOrigin-RevId: 178295926
* bazel integration tests: chmod +x configured_query_test.shGravatar juliexxia2017-12-07
| | | | | | | | | | | | | | Automated rollback of commit d6736496f0e1c35b7567f331988997892e32dfda. *** Reason for rollback *** broken test *** Original change description *** Report empty query results. PiperOrigin-RevId: 178280711
* New flag `--incompatible_depset_union` to disable old-style depset merging.Gravatar laurentlb2017-12-07
| | | | | | | RELNOTES: Using `+`, `|` or `.union` on depsets is now deprecated. Please use the new constructor instead (see https://docs.bazel.build/versions/master/skylark/depsets.html). PiperOrigin-RevId: 178262338
* Custom serialization for TestSuiteExpansionKey.Gravatar Googler2017-12-07
| | | | PiperOrigin-RevId: 178262335
* Report empty query results.Gravatar juliexxia2017-12-07
| | | | PiperOrigin-RevId: 178250626
* Move the javabase middleman to within JavaRuntimeInfo.Gravatar lberki2017-12-07
| | | | | | | | | | | This is necessary bacause //tools/jdk:current_host_java_runtime is implemented in Skylark, and we don't (and shouldn't) have a way to create MiddlemanProvider from there. However, we are planning to move to the the java_runtime_alias/java_host_runtime_alias rules as the exclusive representation of the javabase, so we need to be able to make one from Skylark. Previously, this wasn't a problem, because if the javabase was a filegroup (like //tools/defaults:jdk), the path to the Java binary was taken from the configuration and the middleman from the filegroup, but since we are removing that information from the configuration, we can't do that anymore. RELNOTES: None. PiperOrigin-RevId: 178242307
* Implement cc_import ruleGravatar Yun Peng2017-12-07
| | | | | | | | | | Designed here: https://docs.google.com/document/d/1hK2mWl3TYNL9oJYX_S020TKkXZvBw1aBoYERvTHVyfg/edit Fix https://github.com/bazelbuild/bazel/issues/3402 Change-Id: I9beff94d8b85ffeb4e46e0959c8f5ed4ef9c6268 PiperOrigin-RevId: 178238408
* Expose two methods from JavaSkylarkApiProvider in JavaInfoGravatar dbabkin2017-12-07
| | | | | | | | | | | | JavaSkylarkApiProvider will be deprecated soon and replaced by JavaInfo. Methods exposed: getCompilationInfoProvider() getTransitiveExports() Changed signature of JavaCommon methods to accept JavaInfoBuilder. RELNOTES:none PiperOrigin-RevId: 178229835
* Remove the ctx.middle_man function from Skylark.Gravatar lberki2017-12-07
| | | | | | | | Let's not expose middlemen to Skylark if we can help. RELNOTES[INC]: The ctx.middle_man function is not supported anymore. PiperOrigin-RevId: 178226393
* If a temporary directory name clashes in the LocalSpawnRunner, try ↵Gravatar ruperts2017-12-06
| | | | | | | generating another temporary directory name instead of throwing an exception. RELNOTES: None. PiperOrigin-RevId: 178190769
* Provide more execution statistics in the ExecutionStatistics class.Gravatar ruperts2017-12-06
| | | | | | | In particular, provide all of the statistics available from the getrusage() system call. RELNOTES: None. PiperOrigin-RevId: 178162687
* Add SkylarkSemantics#toBuilder() and #builderWithDefaults()Gravatar brandjon2017-12-06
| | | | | | | This avoids having to inline a bunch of default values when you only want to change one flag. RELNOTES: None PiperOrigin-RevId: 178148057
* allow params files for long dexmerger and dexsharder command linesGravatar kmb2017-12-06
| | | | | | RELNOTES: None. PiperOrigin-RevId: 178130422
* Pass file system to Path operations.Gravatar tomlu2017-12-06
| | | | PiperOrigin-RevId: 178116776
* Register separate linkstamp compile actionGravatar hlopko2017-12-06
| | | | | | | | | | | | | | | | | This cl replaces entire hardcoded linkstamping command line generation with a separate action. Instead of generating bash command to compile linkstamp and prepending it to the standard link command line, this cl creates a special action that link action depends on. I kept linkstamp action registration in the CppLinkActionBuilder (and GoCompilationHelper internally) to keep the cl shorter and change more localized. I also didn't remove linkstamps and buildInfoHeaderArtifacts from CppLinkAction to stay compatible with extra actions api. Both issues and corresponding cleanups will be addressed in separate cls. RELNOTES: Linkstamping is now a separate and full-blown CppCompileAction, it's no longer a part of linking command. PiperOrigin-RevId: 178106899
* Add option to populate selector list in blaze query's proto output.Gravatar twerth2017-12-06
| | | | | | RELNOTES[NEW]: query: Add option --noproto:flatten_selects to turn off flattening of selector lists in proto output. PiperOrigin-RevId: 178106289