aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
Commit message (Collapse)AuthorAge
* Track Option placement within a priority category.Gravatar ccalvarin2017-10-18
| | | | | | | | | An option has precedence over previous options at the same enum-valued priority. Track its placement in this ordering explicitly. This will allow after-the-fact expansion of expansion options such that they correctly take precedence or not compared to other mentions of the same flag. This is needed to fix --config's expansion. RELNOTES: None. PiperOrigin-RevId: 172367996
* Optimize trusted MutableList constructionGravatar michajlo2017-10-18
| | | | | | | | | | | | Cuts back a lot of unnecessary copying. All construction is funneled through copyOf and wrapUnsafe. copyOf is the traditional construction mechanism, taking defensive copies of the input and determining if GlobList information needs to be retained. wrapUnsafe takes full ownership of the supplied ArrayList, allowing us to skip a lot of copies in trusted situations. This is particularly useful for common built in functions which return a list, range() being one common example. RELNOTES: None PiperOrigin-RevId: 172361367
* Delayed rollforward of commit 8fb311b4dced234b2f799c16c7d08148619f4087.Gravatar kush2017-10-18
| | | | | | | | | | | | | | | This was rolled back due to Tensorflow breakage but the patch I exported to gerrit (https://bazel-review.googlesource.com/c/bazel/+/18590) passed Tensorflow (https://ci.bazel.io/job/bazel/job/presubmit/52/Downstream_projects/). Confirmed with jcater@ that the "newly failing" projects in the Global Tests are known issues. I think we can check this in now. Additionally I had attempted to reproduce any tensorflow issues with this by building and testing TensorFlow locally with this patch, and all tests which passed with the released bazel had also passed with this patch. ================= Original change description ========================== Reinstate idleness checks where the server self-terminates when it's idle and there is either too much memory pressure or the workspace directory is gone. Arguably, it should kill itself when the workspace directory is gone regardless of whether it's idle or not, but let's first get us back to a known good state, then we can think about improvements. RELNOTES: None. PiperOrigin-RevId: 172361085
* Fall back to guessing available memory on Linux machines running kernels ↵Gravatar Googler2017-10-18
| | | | | | | older than 3.14-rc1 (2014-02-02). RELNOTES: N/A PiperOrigin-RevId: 172356826
* Accept command lines from tools invoking Bazel.Gravatar ccalvarin2017-10-18
| | | | | | | | | | | For tools that wrap Bazel in some way, the original way that the tool was invoked can be a useful piece of information to track when logging what Bazel did and why. In order to output this information in the same way that Bazel outputs its command lines, we accept --tool_command_line in the structure command line format that Bazel uses in the BEP. These structured command lines are protos that we expect as a base64 encoded byte array. For simple scripts that wish to use this feature without compiling the proto, we will also accept any old string (that cannot be interpreted as a base64 encoding) as a single "chunk" in a structured command line. This is experimental for now and users should not get attached to the format. We will remove the experimental_ prefix when it is stable. RELNOTES: None. PiperOrigin-RevId: 172341216
* Actions now have a temp envvar.Gravatar László Csomor2017-10-16
| | | | | | | | | | | | | | | | | | | | | Every build and test action that creates a Spawn will now have platform-specific environment variables for temp directories: - on Windows: TMP and TEMP - on Linux/Darwin: TMPDIR This is particularly important on Windows where e.g. Java programs cannot create temp directories unless there's a valid TMP or TEMP environment variable set. Fixes: - https://github.com/bazelbuild/bazel/issues/1590 - https://github.com/bazelbuild/bazel/issues/2349 - https://github.com/bazelbuild/bazel/issues/2870 Change-Id: Ib758307daf6b3a51b0f71ae5e65e5bb564dad643 PiperOrigin-RevId: 172326371
* Clean up FindModuleSpace.Gravatar Benjamin Peterson2017-10-16
| | | | | | | | | | - Delete "infinite" loop that always ran once. - Remove erroneous comment about resolving symlinks. This hasn't been true since 58ee85afcab07374dabc5493c780cbe3369b644f ("Don't follow symlink when looking for python module space") Change-Id: Ibfaddc3aa2b3f89b180c74f86796c0d39f4092d3 PiperOrigin-RevId: 172321824
* In CppToolchainInfo, use the label of the cc_toolchain instead of ↵Gravatar cpeyser2017-10-16
| | | | | | --crosstool_top to find the crosstool package. PiperOrigin-RevId: 172320513
* BuildEventStreamer: clear a pending BuildStarted event firstGravatar Klaus Aehlig2017-10-16
| | | | | | | | | | | | | | | | | | | | If we receive an event indicating that the build is over, we first post that event and then clear up all pending event by stating that their prerequisite event was aborted (which we can safely assert, as we know we will not process any further events). Now, if a build is aborted (e.g., user interruption) before the build starting event is generated, the streamer can receive a build-finished event while still having an event (e.g., the raw command line) blocked on the build-starting event. So the canonical order of clearing the stream would send a build-finished event before the build-starting event, which can be confusing to consumers of the stream. Therefore, if have to generate an artificial aborted build-starting event, do so first (including clearing the events blocked on the build-starting event) and only afterwards post the build-finished event in the stream. Change-Id: Ib33f16f74b7bee7a963df94bbcad7a56db9f07e3 PiperOrigin-RevId: 172305114
* BEP: explicitly report failures associated with a label as suchGravatar Klaus Aehlig2017-10-16
| | | | | | | | | | There is a conceptual difference between the (maybe unsuccessful) completion of a top-level target and a label as the root cause for a failure (i.e., a missing source file). Indicate that difference as such, by having a separate message for failures associated with an unconfigured label. Change-Id: I3f2e20d4dc85782eb11b104a7baf089e66d972e7 PiperOrigin-RevId: 172299938
* Export apple_host_system_env and target_apple_env through apple_common (as ↵Gravatar lberki2017-10-16
| | | | | | | | | opposed to only through ctx.fragments.apple) Progress towards #3424. RELNOTES: None. PiperOrigin-RevId: 172299240
* Removing the USER variable from test environment, unless explicitly provided.Gravatar olaola2017-10-16
| | | | | | TESTED=added remote test RELNOTES: Fixes #2574 PiperOrigin-RevId: 172294781
* Remove the uses_protobuf attribute from objc_proto_library.Gravatar kaipi2017-10-16
| | | | PiperOrigin-RevId: 172199420
* Extract more RuleContext error-related methods into RuleErrorConsumerGravatar cparsons2017-10-16
| | | | | | | This will make it easier to pass only error-handling functionality into support classes. RELNOTES: None. PiperOrigin-RevId: 172148072
* Properly report errors as errors.Gravatar nharmata2017-10-16
| | | | | RELNOTES: None PiperOrigin-RevId: 172133468
* Add callcount system for blaze developers.Gravatar tomlu2017-10-16
| | | | | | | | | | | This simple system allows blaze developers to insert instrumentations in particular methods that they want to know: 1. How often are they called? 2. From which call sites are they called, with full call stack The output is a pprof file that can then be analysed offline. PiperOrigin-RevId: 172128440
* Make option conflicts less spammy.Gravatar ccalvarin2017-10-16
| | | | | | | Remove an unnecessary warning and make all warnings for option conflicts print only if the option values are not equal. RELNOTES: None. PiperOrigin-RevId: 172124261
* Define protos for the Skylark debug server.Gravatar allevato2017-10-16
| | | | PiperOrigin-RevId: 172115471
* Flip the --incompatible_list_plus_equals_inplace flag by defaultGravatar vladmos2017-10-16
| | | | | | | | | RELNOTES[INC]: += on lists now mutates them. `list1 += list2` is now equivalent to `list1.extend(list2)` and not equivalent to `list1 = list1 + list2` anymore. Fixes #2350. PiperOrigin-RevId: 172111899
* Simplify ApplicationManifest by inlining createApk and simplifying the ↵Gravatar corysmith2017-10-16
| | | | | | | builder code. RELNOTES: None PiperOrigin-RevId: 172109520
* Update documentation on objc_proto_library rule, and disable the passing of ↵Gravatar kaipi2017-10-16
| | | | | | direct files into the deps attribute, only proto_library and objc_proto_library targets are allowed. PiperOrigin-RevId: 172107133
* Don't follow globs in rbuildfiles. Globs request the FILE node for symlinks ↵Gravatar shreyax2017-10-16
| | | | | | which causes the package containing the reference to be visited in rbuildfiles (which isn't the intended behaviour of rbuildfiles). Also add tests to guard against other types of inclusions. PiperOrigin-RevId: 172106051
* BEP: link structured command lineGravatar Klaus Aehlig2017-10-16
| | | | | | | | | | Change ceb1013c1ca0238188e2714442fcfb2efb16bc6a added an event for the structured command line to the BEP. Announce that event as a child of the build-starting event so that it gets properly chained and does not have to be chained in by a progress event. Change-Id: I6aeb46b748a536da58a916b9c4e0b1b66bbd40b0 PiperOrigin-RevId: 172100341
* Improve private skylark attribute error messagingGravatar cparsons2017-10-16
| | | | | RELNOTES: None. PiperOrigin-RevId: 172087232
* Deprecate methods in ConfigurationEnvironment that give access to ↵Gravatar lberki2017-10-16
| | | | | | | ConfigurationFragmentFactory instances to contents of BUILD files and to the file system. RELNOTES: None. PiperOrigin-RevId: 172086610
* Simplify the SpawnExecException constructorGravatar ulfjack2017-10-16
| | | | | | | Whether or not there was a catastrophic error is stored in the SpawnResult, so we can just use that instead of passing in an additional boolean. PiperOrigin-RevId: 172083752
* Put the platform version from the options into the output directory name ↵Gravatar lberki2017-10-13
| | | | | | | instead of the one computed based on xcode_config. RELNOTES: None. PiperOrigin-RevId: 172064337
* Merge [] compilation classpaths using singlejarGravatar cushon2017-10-13
| | | | PiperOrigin-RevId: 172053593
* Remove the deprecated set constructor from SkylarkGravatar vladmos2017-10-13
| | | | | | | | | | The `set` constructor used to be deprecated, but it was still possible to use it by providing --incompatible_disallow_set_constructor=false. RELNOTES[INC]: The flag --incompatible_disallow_set_constructor is no longer available, the deprecated `set` constructor is not available anymore. PiperOrigin-RevId: 171962361
* Fix NPE thrown by java_common.compile when no sources are specified.Gravatar elenairina2017-10-13
| | | | PiperOrigin-RevId: 171960869
* Expand implicitRequirements in the location of the option that required it.Gravatar ccalvarin2017-10-13
| | | | | | | | | | | Removes the special casing of implicit requirements. Accumulating them and parsing them at the end of the parse() function was never enough to actually guarantee that the value not be replaced. I've gone through all options with implicit requirements to make sure that the expectation is checked after options parsing, so this change should be relatively safe. Implicit requirements is still a broken concept - they don't actually expand based on the value given, so a user that is explicitly NOT setting a flag might unwittingly be setting all the requirements for that unset flag. Removing it fully requires redesigning or removing the flags that set it, though, so for now we are standardizing the behavior so that it behaves like any other expansion options, just one with a value. Also consolidate the deprecated wrapper option behavior into the expansion work. It will soon be removed entirely, but for now it can get grouped in with the expansion logic, so that its differences are more explicit. RELNOTES: None. PiperOrigin-RevId: 171957502
* Remove some no-op flags.Gravatar ajmichael2017-10-13
| | | | | | | The transition period is over, these features have now been rolled out. RELNOTES: --experimental_use_parallel_android_resource_processing and --experimental_android_use_nocompress_extensions_on_apk are removed. These features are fully rolled out. PiperOrigin-RevId: 171957383
* Fix local repository detection when the repository path is absolute.Gravatar John Cater2017-10-13
| | | | | | | Fixes #3874. Change-Id: Ibbe3ea27b77426f551e2f70f082478edb2234749 PiperOrigin-RevId: 171957230
* Remove deprecated legacy string representations of Skylark objectsGravatar vladmos2017-10-13
| | | | | | | | RELNOTES[INC]: The flag --incompatible_descriptive_string_representations is no longer available, old style string representations of objects are not supported anymore. PiperOrigin-RevId: 171952621
* Only delete the current execroot in clean.Gravatar Benjamin Peterson2017-10-13
| | | | | | | | | | | | | I noticed a problem where if you have a workspace with basename "server", clean will rudely delete the server's pid file and cause it to commit suicide. This is because clean deletes the deep and non-deep execroot, presumably temporarily as part of the deep execroot migration. --deep_execroot has been enabled for more than a year now, so hopefully we can safely remove this aggressive deleting. --expunge can take care of old execroots if needed. Change-Id: I445b0d7cedf2fb9a6a365eacc85b75428a981640 PiperOrigin-RevId: 171948100
* Throw a checked exception if there's an error reading /proc/meminfo, and ↵Gravatar janakr2017-10-12
| | | | | | handle it properly. PiperOrigin-RevId: 171906091
* Expose ActionLogBufferPathGenerator in SkyframeExecutor.Gravatar janakr2017-10-12
| | | | PiperOrigin-RevId: 171906076
* Remove synchronization from FileSystem implementations.Gravatar tomlu2017-10-12
| | | | PiperOrigin-RevId: 171905267
* Add some debugging in TestResultAnalyzer: make crash message more ↵Gravatar janakr2017-10-12
| | | | | | informative if the number of summaries and the number of test targets don't agree. My guess is somehow we have duplicate configured targets? PiperOrigin-RevId: 171904831
* Add follow-symlinks parameter to FileSystemUtils#copyTreesBelow, so that all ↵Gravatar janakr2017-10-12
| | | | | | the tool setup we do in tests doesn't necessarily have to be copied if we copy a workspace over. PiperOrigin-RevId: 171864170
* Update Appengine Rules LabelGravatar Tyler Rockwood2017-10-12
| | | | | | | | Minor change, but the Rules AppEngine now supports Python with Google App Engine, so it's more than just Java. Closes #3837. PiperOrigin-RevId: 171843168
* Replace all tool getters in CppConfiguration with corresponding calls toGravatar cpeyser2017-10-12
| | | | | | CcToolchainProvider#getToolPathFragment. PiperOrigin-RevId: 171837541
* Check the implicit requirement of fdo_instrument and lipo_context.Gravatar ccalvarin2017-10-11
| | | | | | | The semantics of implicit requirements will soon change to adding the requirements in-place in the command line, so they will be slightly more likely to get overwritten. Explicitely check that the requirement is set, and warn appropriately if the user is sending mixed signals. RELNOTES: None. PiperOrigin-RevId: 171824297
* Migrate usage of CppConfiguration#getToolPathFragment andGravatar cpeyser2017-10-11
| | | | | | CppConfiguration#getLdExecutable to CcToolchainProvider. PiperOrigin-RevId: 171818406
* Remove support for --javabase=<absolute path>.Gravatar lberki2017-10-11
| | | | | | | | | | | | | | | | | | | | | | If an absolute javabase is desired, the following set of rules can be used: java_runtime_suite(name="suite", default=":runtime") java_runtime(name="runtime", java_home=<path to the JDK>) Then --javabase can be pointed to the java_runtime_suite() rule. Alternatively, the java_runtime rule can reference a Make variable: java_runtime(name="runtime", java_home="$(ABSOLUTE_JAVABASE)") Then the Javabase can be specified on the command line like this: --javabase=<your package>:suite --define=ABSOLUTE_JAVABASE=<path to the JDK> RELNOTES[INC]: --javabase=<absolute path> and --host_javabase=<absolute path> are not supported anymore. If you need this functionality java_runtime_suite(name="suite", default=":runtime") java_runtime(name="runtime", java_home=<path to the JDK>) is an alternative. PiperOrigin-RevId: 171798416
* Properly escape GitHub repository download URL for git_repository w/ sha256Gravatar Akira Baruah2017-10-11
| | | | | | | | Addresses #3661 Closes #3770. PiperOrigin-RevId: 171797773
* SplitTransitionProvider no longer requires the attributes it uses are "Non ↵Gravatar cparsons2017-10-11
| | | | | | | Configurable" RELNOTES: None. PiperOrigin-RevId: 171751391
* Refactor ConfiguredAttributeMapper to lib/packages from lib/analysis.Gravatar cparsons2017-10-11
| | | | | | | | | This requires moving the convenience constructor using RuleConfiguredTarget to be owned by RuleConfiguredTarget. This refactoring is required by later work to allow SplitTransitionProvider to use configurable attributes. This would require packages/Attribute.java -> analysis/ConfiguredAttributeMapper.java, where in general, the 'analysis' package depends on the 'packages' package. This is the easiest way to prevent a circular dependency. RELNOTES: None. PiperOrigin-RevId: 171741620
* Small refactoring of AnalysisTestCase to allow alternate SkyframeExecutor ↵Gravatar janakr2017-10-11
| | | | | | implementations. PiperOrigin-RevId: 171730718
* Remove unused MANDATORY_LINK_TARGET_TYPESGravatar George Gensure2017-10-11
| | | | | | | | | MANDATORY_LINK_TARGET_TYPES has not been in use since d83d9bf1 was released. Closes #3869. PiperOrigin-RevId: 171688095