aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
Commit message (Collapse)AuthorAge
...
* Reduce contention in the digest map.Gravatar tomlu2018-08-09
| | | | | | | | | During reads and writes a read lock is taken. If we need to resize the table, a write lock is taken to flush all the readers and writers before the table is resized. The read lock should be significantly cheaper than full synchronisation since multiple threads can grab a read lock at once. RELNOTES: None PiperOrigin-RevId: 208059810
* Stop allowing targets with loose headers checking that reference srcs/hdrs ↵Gravatar shahan2018-08-09
| | | | | | in other package to also treat those package as loose. PiperOrigin-RevId: 208051086
* Support a .bazelignore fileGravatar Klaus Aehlig2018-08-09
| | | | | | | | | | | | | | | | | | | Add suport for a file .bazelignore, allowing to specify directories that should be ignored. So far, even for the "ignored" directories, the directory structure, including following symlinks, still has to be well founded. We plan to lift that restriction in the future, but already with the restriction, it is an improvement over the status quo. RELNOTES: bazel now supports a .bazelignore file specifying directories to be ignored; however, these directories still have to be well founded and, in particular, may not contain symlink cycles. Improves on #4888. Change-Id: Icfe0b7f5c35eceea16e28944ca7711431b71271a PiperOrigin-RevId: 208050372
* Final asset/resource decoupling cleanupGravatar asteinb2018-08-09
| | | | | | | | | | | | | | | | | | - Remove MergableAndroidData interface, and clean up various converters to explicitly use ParsedAndroid{Resources|Assets} - Remove calls to getters that always return an empty list (based on the above cleanup) - Stop passing around empty transitiveAssets in ResourceDependencies and AndroidResourcesInfo - Remove no-op getter method for decoupling settings in AndroidConfiguration Also, consolidate all AndroidDataConverter instances that were used in multiple places into the AndroidDataConverter class, rather than declaring them in multiple places. Add a bit of documentation as to which objects they represent in the action code, which should make mapping between one and the other easier. RELNOTES: none PiperOrigin-RevId: 208042452
* Split up getTargetsToBuild() into multiple methods so compute() can ↵Gravatar Googler2018-08-09
| | | | | | | | determine which pattern expanded to which targets. Plan is to modify either TargetParsingCompleteEvent or LoadingPhaseCompleteEvent (which are both posted to the event handler) so that targets can be traced back to original command line patterns. PiperOrigin-RevId: 208031588
* Remove unused workspace variable.Gravatar twerth2018-08-09
| | | | | RELNOTES: None PiperOrigin-RevId: 208010973
* Fix StackOverflowError on Windows. Fixes #5730Gravatar buchgr2018-08-09
| | | | | | | | | | | | | | | | | | | We found that with JDK9 and up Bazel would sometimes crash with a StackOverflowError in one of the Command-Accumulator-Thread-* threads. We experimentally found that this error was due to these threads being constrained to a 32KiB stack size. The default stack size for JVM threads on most 64-bit systems is 1MiB (So that's 3% of the default). The purpose of the Command-Accumulator-Threads is to read stdout/stderr from processes that Bazel launches locally. The proposed fix is to just use the system default stack size for these threads. The alternative is to increase the size limit to some arbitrary number that happens to work, but this is likely premature optimization and I'd like to avoid that if possible. We further found that this code even predates Blaze/Bazel and is from 2005. PiperOrigin-RevId: 208009940
* Fix a @GuardedBy errorGravatar cushon2018-08-09
| | | | PiperOrigin-RevId: 208009857
* In AbstractSkyFunctionEnvironment, don't check for filtered exceptions in ↵Gravatar janakr2018-08-08
| | | | | | the common case of no exceptions. We were already mostly tracking missing dependencies in the subclasses, so there's no need to check for missing dependencies here. PiperOrigin-RevId: 207934220
* Automated rollback of commit 09bf7cc5865f7edd9a3eeabb42792e8de3ad862f.Gravatar tomlu2018-08-08
| | | | | | | | | | | | | | | | *** Reason for rollback *** Causes crashes in fake_cc_binary in combination with --experimental_nodotd_scanning_with_modules. *** Original change description *** Stop generating .d files when they won't be looked at later. While at it remove CppCompilationActionBuilder.setAllowUsingHeaderModules, which isn't used anymore and would make the logic here (even) more complicated. RELNOTES: None. PiperOrigin-RevId: 207932548
* Remove ApplicationManifestGravatar asteinb2018-08-08
| | | | | | | | | | | | This class just contains methods used elsewhere; move them to appropriate places (generally AndroidManifest or StampedAndroidManifest). Also, somewhat reduce code duplication by having more stuff use the existing AndroidManifest.from() method, which automatically handles unspecified manifests and packages. RELNOTES: none PiperOrigin-RevId: 207913410
* Improve error messaging for constraints violations.Gravatar gregce2018-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1) Break up dense lines with clearer pretty-printing. 2) When a violation happens because of a select(), mention both the target with the select (as before) *and* the dep that the select() chose. 3) Integrate this messaging into --target_environment violations, which currently provide no info about the root cause. Examples: ------------------------------------- select() + compatible_with violation: ------------------------------------- Before: ERROR: /workspace/testapp/BUILD:41:1: in cc_binary rule //testapp:top: the current command-line flags disqualify all supported environments because of incompatible select() paths: environment: //constraints:p removed by: //testapp:midlib (/workspace/testapp/BUILD:28:1) After: ERROR: /workspace/testapp/BUILD:41:1: in cc_binary rule //testapp:top: the current command line flags disqualify all supported environments because of incompatible select() paths: environment: //constraints:p removed by: //testapp:midlib (/workspace/testapp/BUILD:28:1) which has a select() that chooses dep: //testapp:glib which lacks: //constraints:p. ------------------------------------- select() + --target_environment=//constraints:p violation: ------------------------------------- Before: ERROR: This is a restricted-environment build. - //testapp:top does not support required environment //constraints:p After: ERROR: This is a restricted-environment build. //testapp:top does not support: environment: //constraints:p removed by: //testapp:midlib (/workspace/testapp/BUILD:28:1) which has a select() that chooses dep: //testapp:g which lacks: //constraints:p Fixes: #5795 PiperOrigin-RevId: 207910308
* Remove CompiledMergeableAndroidDataGravatar asteinb2018-08-08
| | | | | | | | This was also just shared between ParsedAndroidResources and the now defunct ResourceContainer RELNOTES: none PiperOrigin-RevId: 207907140
* Expose GeneratedExtensionRegistryProvider to Skylark.Gravatar Googler2018-08-08
| | | | | RELNOTES: None PiperOrigin-RevId: 207905848
* Don't convert InterruptException to EvalException in struct field call ↵Gravatar Benjamin Peterson2018-08-08
| | | | | | | | | | | expressions. This is probably only a theoretical problem, since a blocking struct field is probably a very bad idea. Closes #5132. Change-Id: Ie84a78ab4d9ce215f2806ac49bf8911de6959930 PiperOrigin-RevId: 207902766
* Remove ValidatedAndroidData interfaceGravatar asteinb2018-08-08
| | | | | | | | Now that ValidatedAndroidResources is the only implementation, we can just use that instead. RELNOTES: none PiperOrigin-RevId: 207900844
* Remove support for explicitly setting java_toolchain.encoding to UTF-8Gravatar cushon2018-08-08
| | | | PiperOrigin-RevId: 207891979
* Remove ResourceContainerGravatar asteinb2018-08-08
| | | | | | | | | ValidatedAndroidResources is now the only implementation of ValidatedAndroidData, so we can also clean up some code. (The actual interface will be cleaned up in the next few changes.) RELNOTES: none PiperOrigin-RevId: 207891778
* Add a comment clarifying the soundness of not doing edge filtering during ↵Gravatar nharmata2018-08-08
| | | | | | | the DTC construction of the universe argument to 'rdeps'. RELNOTES: None PiperOrigin-RevId: 207884395
* Improve NaiveMultisetSemaphore#estimateCurrentNumUniqueValues by having it ↵Gravatar nharmata2018-08-08
| | | | | | | use Semaphore#availablePermits. I have no idea why I didn't do this initially. RELNOTES: None PiperOrigin-RevId: 207883650
* Remove non-static ApplicationManifest methodsGravatar asteinb2018-08-08
| | | | | | | | | | | | | | | | Remove all state from the ApplicationManifest class. Actual methods in this class will be migrated to somewhere more appropriate in upcoming changes. We now usually use the manifest passed around in the ResourceApk object instead. (The exception is mobile-install, which still wants to use the raw manifest.) Note that this manifest is the processed manifest output by resource processing - using it will somewhat decrease parallelisim, but is also more correct. (We'll get the parallelisim gains back once we now longer use the legacy manifest merger and don't need to process the manifest in resource processing.) RELNOTES: none PiperOrigin-RevId: 207881830
* Add a option to disable idle gc.Gravatar Benjamin Peterson2018-08-08
| | | | | | | | | | | | | | | If a Bazel server is idle for 10 seconds, it unconditionally triggers a full-scale Java GC via System.gc(). This behavior doesn't have clear benefits and causes Bazel to steal resources from whatever the user does after invoking Bazel. This CL adds a startup option, --idle_server_tasks, to toggle the idle GC behavior. Also, add some logging for when idle GC is enabled, so it's easier to evaluate its effects. Example of logging: ``` 180718 17:43:04.609:I 247 [com.google.devtools.build.lib.server.IdleServerTasks.lambda$idle$0] [Idle GC] used: 157MB -> 15MB, committed: 421MB -> 422MB ``` Fixes https://github.com/bazelbuild/bazel/issues/5589. Closes #5628. PiperOrigin-RevId: 207869996
* Expose methods returning bare C++ options in SkylarkGravatar hlopko2018-08-08
| | | | | | | | | | | | | This cl exposes getters for flags passed by --copt, --cxxopt, --conlyopt, and --linkopt Bazel options. Fixes #5602. While at it, I deprecated existing methods that are either migrated to the C++ toolchain, or to cc_common. RELNOTES: None. PiperOrigin-RevId: 207854692
* Fixed the builtins exporter to include all top level Starlark symbols.Gravatar Googler2018-08-08
| | | | | RELNOTES: None PiperOrigin-RevId: 207850273
* Disable legacy linking Skylark api to C++ toolchainGravatar hlopko2018-08-08
| | | | | RELNOTES: None. PiperOrigin-RevId: 207845945
* Put main repo remapping behind a flag.Gravatar dannark2018-08-07
| | | | | RELNOTES: None PiperOrigin-RevId: 207801155
* Migrate ObjcProvider to BuiltinProvider from NativeProviderGravatar cparsons2018-08-07
| | | | | RELNOTES: None. PiperOrigin-RevId: 207778688
* Remove ResourceContainerConverterGravatar asteinb2018-08-07
| | | | | | | | Also, migrate Robolectric action that used it to use AndroidDataConverter instead. RELNOTES: none PiperOrigin-RevId: 207761747
* Remove analysis code for old resource processing pipelineGravatar asteinb2018-08-07
| | | | | | | | This code should all be unused now. Some code it calls into will be removed in the next changes. RELNOTES: none PiperOrigin-RevId: 207753966
* Replace 0/1 with False/True for testonly attributeGravatar Googler2018-08-07
| | | | | | RELNOTES: Replace 0/1 with False/True for testonly attribute PiperOrigin-RevId: 207747213
* Sort the rule attribute list in ProtoOutputFormatter by name to cure some queryGravatar Googler2018-08-07
| | | | | | | | | | | and genquery non-determinism. This approach relies on there never being two attributes with the same name. I added the inOrder() to the test without my change commented and observed flaky failures. I then uncommented my change and saw consistent passes. RELNOTES: Sort attribute lists in proto-form query output to fix non-deterministic genquery output. PiperOrigin-RevId: 207743773
* Remove decoupling flag from BazelGravatar asteinb2018-08-07
| | | | | | | | | | This flag is turned on everywhere. Remove it. There's a lot of dead code hidden behing this flag; will remove it in a series of upcoming changes. RELNOTES: none PiperOrigin-RevId: 207732126
* Delete the now unused ExtractInclusionAction.Gravatar Googler2018-08-07
| | | | | RELNOTES: None. PiperOrigin-RevId: 207724147
* Improve implementation of filterDiscoveredHeaders. Instead of creating a hugeGravatar Googler2018-08-07
| | | | | | | | | | set of all declared headers, iterate over them and remove them from a (often much smaller) set. This should improve runtime as well as amount of garbage produced. RELNOTES: None. PiperOrigin-RevId: 207710867
* Automated rollback of commit 186b887e5862c1502010f097e75bfd8d605620b0.Gravatar twerth2018-08-07
| | | | | | *** Reason for rollback *** PiperOrigin-RevId: 207697096
* Pass cc_toolchain location to FeatureConfigurationGravatar rosica2018-08-07
| | | | | | | Paths to tools in CROSSTOOL are either absolute or relative to the CROSSTOOL location (which is the same as cc_toolchain location). As in the future CROSSTOOL will be gone, and the new skylark rule that will replace CROSSTOOL will not have to be in the same location as cc_toolchain, we need to pass information to FeatureConfiguration about the location of the cc_toolchain in use, so we can calculate the workspace relative paths to the tools. RELNOTES: None. PiperOrigin-RevId: 207695703
* Remove is_cc_test_link_action and is_not_cc_test_link_action build variablesGravatar hlopko2018-08-07
| | | | | | | All users have been migrated, so it's not used anymore. RELNOTES: None. PiperOrigin-RevId: 207688604
* Clean up Java toolchain configurationGravatar cushon2018-08-07
| | | | | | now that JDK 8 host_javabases are no longer supported. PiperOrigin-RevId: 207687089
* C++: Removes CcLinkParamsStore from Skylark APIGravatar plf2018-08-07
| | | | | | | This class is deprecated and should not be exposed. RELNOTES:none PiperOrigin-RevId: 207685607
* C++: Stops passing workspace to whitelist check of providersGravatar plf2018-08-07
| | | | | | | The workspace changes from user to user and it shouldn't be taken into account. RELNOTES:none PiperOrigin-RevId: 207679881
* Add configuration for android data binding v2.Gravatar corysmith2018-08-06
| | | | | RELNOTES: None PiperOrigin-RevId: 207592136
* Inline static functions.Gravatar corysmith2018-08-06
| | | | | RELNOTES: None PiperOrigin-RevId: 207570533
* Add AndroidResources processing to the DataBindingContext.Gravatar corysmith2018-08-06
| | | | | RELNOTES: None PiperOrigin-RevId: 207564798
* Fix deprecation note of native http/git rulesGravatar Yannic Bonenberger2018-08-06
| | | | | | Closes #5702. PiperOrigin-RevId: 207560697
* Order tree artifacts.Gravatar felly2018-08-06
| | | | | | | Fixes #5686. RELNOTES: None PiperOrigin-RevId: 207559658
* Cleaning up errant sysouts.Gravatar corysmith2018-08-06
| | | | | RELNOTES: None PiperOrigin-RevId: 207559097
* Move maybeAddProvider to be part of the EnabledDataBindingContext.Gravatar corysmith2018-08-06
| | | | | RELNOTES: None PiperOrigin-RevId: 207553449
* Rename a param to better reflect its intent.Gravatar nharmata2018-08-06
| | | | | RELNOTES: None PiperOrigin-RevId: 207550943
* C++: Removes calls to setCcLinkparamsStore of CcLinkingInfo.BuilderGravatar plf2018-08-06
| | | | | | | | | | This is in preparation for deleting CcLinkParamsStore. All remaining calls to the setCcLinkparamsStore method of the CcLinkingInfo builder have been removed. See b/111781390 for details of rollback. RELNOTES:none PiperOrigin-RevId: 207525881
* Explicitly create strict java compilation args in java_library.Gravatar twerth2018-08-06
| | | | | | | Otherwise we can construct cases where we don't handle exports in different cases correctly. RELNOTES: None PiperOrigin-RevId: 207517499