aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
Commit message (Collapse)AuthorAge
* Moved all external calls to isDataEnabled to DataBindingContext and made it ↵Gravatar corysmith2018-08-03
| | | | | | | private. RELNOTES: None PiperOrigin-RevId: 207335684
* Reduce and centralize databinding context instances.Gravatar corysmith2018-08-03
| | | | | | | Due to some of the vagaries of skylark and multiple entry points, the databinding context is currently updated by the parse action. RELNOTES: None PiperOrigin-RevId: 207333111
* When no new configured targets have been analyzed, only check for artifact ↵Gravatar janakr2018-08-03
| | | | | | | | | | conflicts if the current set of configured targets is not a subset of the largest set of configured targets that have been checked for conflicts. Also rework the flow between SkyframeBuildView and SkyframeActionExecutor to remove the SkyframeExecutor middleman. Also reword the error message in case of an ArtifactPrefixConflictException, since a clean should no longer be necessary. PiperOrigin-RevId: 207322139
* Change writer in skylark docgen to use an explicit encodingGravatar Googler2018-08-03
| | | | | RELNOTES: None PiperOrigin-RevId: 207321499
* Introduce the DataBindingContext interface as part of centralizing the data ↵Gravatar corysmith2018-08-03
| | | | | | | binding processing pipeline. RELNOTES: None PiperOrigin-RevId: 207312398
* Make BES tolerant to duplicate artifacts in output groups.Gravatar tomlu2018-08-03
| | | | | | | It is possible to create duplicate artifacts with different owners, so we have to tolerate this when uploading files. RELNOTES: None PiperOrigin-RevId: 207302014
* 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
* Pass digest to Chunker construction when available.Gravatar tomlu2018-08-03
| | | | | | | | | * Refactor Chunker constructor to a builder to reduce constructor overload. * Pass digest into this where we have it * Redo ensureInputsPresent to not lose the missing digests during processing so we can pass them to the Chunker constructor. RELNOTES: None PiperOrigin-RevId: 207297915
* Add support to completion function to create a path resolver from its ↵Gravatar tomlu2018-08-03
| | | | | | | looked-up artifact values. RELNOTES: None PiperOrigin-RevId: 207295716
* Introduce a new file-based logging handler for Bazel.Gravatar arostovtsev2018-08-03
| | | | | | | | | | | | | | | | | | | | | | It provides a number of features that we want and whose combination cannot be accomplished using the standard FileHandler: * Using a different filename per server process, by putting a timestamp and process ID in the filename. This means Bazel will no longer overwrite its log when the server is restarted, making it easier for developers and maintainers to diagnose issues. * Putting the hostname and username in the filename (useful when running on a shared network filesystem). * Automatically setting a symlink to the latest log file, ensuring that the latest log can still be found under the usual Bazel server log path. * Providing an API for getting the filename of the current log file, for use by Bazel itself. * Cleaning up old log files when their total size exceeds a set limit. This commit only introduces the handler; its usage in Bazel will be enabled by a follow-up commit. RELNOTES: None. PiperOrigin-RevId: 207274587
* Update config_setting to get the target platform from the ToolchainContext.Gravatar John Cater2018-08-03
| | | | | | | Closes #5746. Change-Id: Ib5946d405bf22af131f9dbd7b93393958b0848b4 PiperOrigin-RevId: 207261030
* Add --experimental_shortened_obj_file_path to GraveyardOptionsGravatar hlopko2018-08-03
| | | | | | | Fixes https://github.com/bazelbuild/bazel/issues/5677 RELNOTES: None. PiperOrigin-RevId: 207258428
* Set callable field only for methods in order to diferenciate them fromGravatar Googler2018-08-03
| | | | | | | constants. RELNOTES: None PiperOrigin-RevId: 207251793
* Polish archiver_flags feature to behave better with the toolchain apiGravatar hlopko2018-08-03
| | | | | | | With this fix we can get archiver flags from the Skylark API to the C++ toolchain even when we don't pass output_file RELNOTES: None. PiperOrigin-RevId: 207248839
* Update the documentation of the "resources" tag on Java rules.Gravatar lberki2018-08-03
| | | | | | | | | | Add a missing closing parenthesis and clarify resource path resolution a little. Fixes #1689. RELNOTES: None. PiperOrigin-RevId: 207242394
* C++: Change Skylark API whitelisting to be part of flag.Gravatar plf2018-08-03
| | | | | | | | This uses SkylarkSemantics now instead of the C++ configuration. The flag is: --experimental_cc_skylark_api_enabled_packages RELNOTES:none PiperOrigin-RevId: 207235431
* Change the list of rc files accepted.Gravatar ccalvarin2018-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The old list was, in order: - %workspace%/tools/bazel.rc (unless --nomaster_bazelrc) - %binary_dir%/bazel.bazelrc (unless --nomaster_bazelrc) - system rc, /etc/bazel.bazelrc or in %ProgramData% for Windows (unless --nomaster_bazelrc) - the first of the following gets called the "user" bazelrc - path passed by flag --bazelrc - %workspace%/.bazelrc - $HOME/.bazelrc The new list is hopefully a bit more consistent, as: - system rc (unless --nosystem_rc) - workspace, %workspace%/.bazelrc (unless --noworkspace_rc) - user, $HOME/.bazelrc (unless --nohome_rc) - command-line provided, passed as --bazelrc or nothing if the flag is absent. This list removes two less than useful locations, duplication in the Workspace directory, and the rc next to the bazel binary. This location made sense at Google but is generally nonsensical elsewhere so we are removing it. It also stops the user local rc file from being overriden by passing in a custom file in --bazelrc. In both old and new, --ignore_all_rc_files disables all of the above. For a transition period, any file that you would have loaded but was not read will cause a WARNING to be printed. If you want the old file to still be read without moving its location, you can always import it into one of the new standard locations, or create a symlink. Closes #4502, except for cleanup to remove the warning after a transition period of 1 Bazel version has passed. RELNOTES[INC]: New bazelrc file list. PiperOrigin-RevId: 207189212
* Add some additional debugging if a dep is unexpectedly absent.Gravatar janakr2018-08-02
| | | | PiperOrigin-RevId: 207178336
* Set target/aspect completion functions as unsharable.Gravatar tomlu2018-08-02
| | | | | RELNOTES: None PiperOrigin-RevId: 207176404
* Disables ActionFS sandboxing of discovered derived inputs forGravatar shahan2018-08-02
| | | | | | performance reasons. PiperOrigin-RevId: 207171305
* Clarifies the documentation for action.args() set_param_file_format.Gravatar Googler2018-08-02
| | | | | | | | The way documentation reads, it sounds like 'shell' format is single line (especially because the other format is called multiline). Currently it seems like the implementation only uses new line but assuming Bazel doesn't want to promise on that, this patch updates the documentation to point that whitespace could be space, tab or newline - which mimics the documentation of ParameterFileType.SHELL_QUOTED. RELNOTES: None. PiperOrigin-RevId: 207142679
* Lazily construct Preconditions failure message. Mistake from ↵Gravatar janakr2018-08-02
| | | | | | https://github.com/bazelbuild/bazel/commit/129c3e2fd3dfdfe1cd312826988f0944bdd69236. PiperOrigin-RevId: 207140930
* Thread a path resolver through target/aspect complete event.Gravatar tomlu2018-08-02
| | | | | | | At the moment, an identity path resolver is passed. This will later be replaced by a contextual path resolver. RELNOTES: None PiperOrigin-RevId: 207138772
* Add support for VirtualActionInputs to the remote cache.Gravatar tomlu2018-08-02
| | | | | RELNOTES: None PiperOrigin-RevId: 207137932
* Make TestSummary event paths use the file system from ActionExecutionContext.Gravatar tomlu2018-08-02
| | | | | RELNOTES: None PiperOrigin-RevId: 207133488
* Fixed builtins proto. Callable field was not set for functions with no ↵Gravatar Googler2018-08-02
| | | | | | | parameter. RELNOTES: None PiperOrigin-RevId: 207127862
* Added return type info in API exporter.Gravatar Googler2018-08-02
| | | | | RELNOTES: None PiperOrigin-RevId: 207107667
* Keep the analysis cache between builds when only trimmed test options change.Gravatar mstaib2018-08-02
| | | | | | | | | | | | | | | | | | | | When --trim_test_configuration is on and the only options which have changed are from the (trimmed) TestOptions (not counting trim_test_configuration itself), preserve the analysis cache rather than dropping it all. This means that as long as no non-test options change, non-test rules will not need to be reanalyzed. This also applies to test rules which were analyzed with this configuration since the last time non-test options changed. For example: --test_arg=A //test (//test and its dependencies are analyzed) --test_arg=B //test (only //test is reanalyzed) --test_arg=A //test (no reanalysis needed) --test_arg=A --define=Test=A //test (full reanalysis) --test_arg=A //test (full reanalysis) RELNOTES: None. PiperOrigin-RevId: 207105915
* Excluded "self" param from the callable symbols. In .bzl files it is not ↵Gravatar Googler2018-08-02
| | | | | | | used in the function call. RELNOTES: None PiperOrigin-RevId: 207102812
* BEGIN_PUBLICGravatar cushon2018-08-02
| | | | | | | | | | | | | | | | | | | | | | | | | | Internal change END_PUBLIC Automated rollback of commit 81a2dddbcfd4a9c7ea9c664195f2f44ae8abeb55. *** Reason for rollback *** fix forward *** Original change description *** Automated rollback of commit 75810d5910073aa7a1550bbd36544971f3c95ae1. *** Reason for rollback *** [] *** Original change description *** Remove the gen_jars output group RELNOTES: Removed the gen_jars output group PiperOrigin-RevId: 207099489
* Add text output to aquery.Gravatar twerth2018-08-02
| | | | | | RELNOTES[NEW]: The aquery command now supports --output=text. PiperOrigin-RevId: 207096607
* Docker sandbox: Pass client environment to "docker" when calling it.Gravatar Philipp Wollermann2018-08-02
| | | | | | | | Otherwise Docker will not be able to read the configuration of the current user and might fail to download containers from registries that require authentication. Closes #5721. PiperOrigin-RevId: 207094268
* remote: add support for directory inputs in runfilesGravatar buchgr2018-08-02
| | | | | | | | | | | | | | | | Add support for tree artifacts (ctx.action.declare_directory(...)) in runfiles. Before this change we would throw away the information about the files inside a tree artifact before executing an action. That's fine for local execution where the sandbox just copies/symlinks a directory and doesn't care much what's inside. However, in remote execution we actually need to upload each individual file and so we need to be aware of all individual files not just directories. This change makes it so that this information is made available to a SpawnRunner via the SpawnInputExpander. RELNOTES: None PiperOrigin-RevId: 207091668
* Prevent errors on double-close in HttpBlobStoreGravatar Robert Gay2018-08-02
| | | | | | | | | | Attempt to fix #5711, "java.util.concurrent.RejectedExecutionException: event executor terminated", by having `HttpBlobStore.close()` no-op when called more than once. I'm rolling a patched version of bazel for us internally based on 0.15.2. Should be able to say definitively in a couple days whether or not this addresses the issue, but it seems like it should (and @buchgr agrees). Closes #5725. PiperOrigin-RevId: 207089681
* [Skylark] Optimize UserDefinedFunction.Gravatar Taras Tsugrii2018-08-02
| | | | | | | | | Java's iterator overhead is significant (2X slower than using indices), so it's worthwhile to use indices for hot code. Closes #5737. PiperOrigin-RevId: 207088309
* Automated rollback of commit a6255612e4892729d3758775c76085b26b9bc584.Gravatar twerth2018-08-02
| | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks FDO builds, see http://b/112112125 *** Original change description *** Remove PerActionFileCache Instead, make ActionMetadataHandler implement the MetadataProvider interface. This fixes an issue where an action that runs two spawns where one depends on an output of the other was unable to get the metadata for the intermediate output. We don't currently have actions that do this, but we will have in a future change (which will also implicitly act as a regression test). PiperOrigin-RevId: 207084179
* 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
* [Skylark] Speed up string.partition function.Gravatar Taras Tsugrii2018-08-02
| | | | | | | | | | | | | | | | According to JMH using `ImmutableList.of` or `Arrays.asList` is ~2X faster than using existing approach of creating an empty `ArrayList` with expected size and populating it using `add` method. This is most likely due to extra range and capacity checks. Returning `ImmutableList` instead of `ArrayList` avoids the need to copy it again in order to create a `SkylarkTuple`. These changes speed up the function by ~3X. Closes #5736. PiperOrigin-RevId: 207079605
* [Skylark] Improve Skylark interpreter performance.Gravatar Taras Tsugrii2018-08-02
| | | | | | | | | | | | | According to JMH and JIT assembly generated for iterators and index accesses, iterator methods like `hasNext` and `next` are not optimized away and result in 3-4X slower execution. Not using an iterator reduces Buck parse time for FB's internal Android apps by 7%+. Closes #5735. PiperOrigin-RevId: 207073078
* Return Java providers only onceGravatar elenairina2018-08-02
| | | | | | | through JavaInfo, instead of returning them also through ConfiguredTarget. Since these providers can not be found in ConfiguredTarget anymore they have to be retrieved from JavaInfo instead. RELNOTES: None. PiperOrigin-RevId: 207068520
* Change Deque -> LinkedHashSetGravatar ulfjack2018-08-02
| | | | | | | | In some cases, we may be reporting a lot of actions, and this has shown up as a hotspot in our profiling. LinkedHashSet should be just as fast for insertion, keep order as Deque, and be faster for removal. There are a couple of more aggressive steps we can take if this doesn't help. PiperOrigin-RevId: 207064758
* Add a normal startup-option for setting the digest function.Gravatar ccalvarin2018-08-01
| | | | | | | | | We continue to support the jvm property -Dbazel.DigestFunction, for backwards compatibility, but this will go away. The startup-option is marked experimental for now as we iron out issues. (note: leaving this out of release notes until the experimental tag is removed) As part of this refactor, the default constructor calls for FileSystem and derived classes will now use this default. This should remove the need for constructors that accept custom hash functions. RELNOTES: None. PiperOrigin-RevId: 207035217
* Update comment about repository mapping containing entry from "@<main repo ↵Gravatar dannark2018-08-01
| | | | | | | name>" to "@". RELNOTES: None PiperOrigin-RevId: 207010178
* Pass a path to ActionExecutedEvent that is resolved via ActionExecutionContext.Gravatar tomlu2018-08-01
| | | | | | | If the output artifact is backed by a different file system then we need to use that file system later. RELNOTES: None PiperOrigin-RevId: 206981369
* Refresh ConfigurationResolver.getConfigurationsFromExecutor documentation.Gravatar gregce2018-08-01
| | | | | Specifically: mention trimming less and rule transitions more. PiperOrigin-RevId: 206980126
* Only detect artifact conflicts between targets in current build.Gravatar tomlu2018-08-01
| | | | | | | Previously, two successive builds of targets A and B would fail if the two sets had conflicting actions. Now, only fail such builds if the targets from the current build has action conflicts. RELNOTES: None PiperOrigin-RevId: 206974011
* Refactor setupPackageCache to get all BuildConfiguration.Options references ↵Gravatar juliexxia2018-08-01
| | | | | | | | out of it. Setting up the package cache is necessary for proper loading. In the future, BuildConfiguration.Option options will be targets that need to be loaded in order to be parsed. Thus, we will need to be able to do loading before BuildConfiguration.Options are parsed. PiperOrigin-RevId: 206964473
* Add builtin include directories to action key for CppCompileActionGravatar hlopko2018-08-01
| | | | | | | | Since builtin include directories affect validation, they have to be part of the action key. RELNOTES: None. PiperOrigin-RevId: 206960988
* Automated rollback of commit 15b27e46ad766e777fb898f39bff06efa9268c2a.Gravatar Googler2018-08-01
| | | | | | | | | Keep the usage of Streams in place. Keep the test in place, updated it with the new expected values. Only removed the neverlink filter. RELNOTES: none. PiperOrigin-RevId: 206951071
* Fix a broken link in the documentationGravatar vladmos2018-08-01
| | | | | | Fixes #5601 PiperOrigin-RevId: 206942639