aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
Commit message (Collapse)AuthorAge
* 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
* Make java_common.compile's javacopt handling consistent with native Java rulesGravatar cushon2018-04-25
| | | | | | | | | | | Compilations performed by java_common.compile now use the javacopts in the java_toolchain by default, instead of requiring them to be explicitly retrived using java_common.default_javac_opts, for consistency with the native rules. java_common.compile(javac_opts=...) can still be used to pass additional javacopts. RELNOTES: Make java_common.compile now uses java_toolchain javacopts by default; explicitly retrieving them using java_common.default_javac_opts is unnecessary. PiperOrigin-RevId: 194254098
* Prevent Skylark actions from setting arbitrary execution infoGravatar ulfjack2018-04-25
| | | | PiperOrigin-RevId: 194236287
* Document that getuid/getgid/getpid can throw exceptions.Gravatar philwo2018-04-25
| | | | | RELNOTES: None. PiperOrigin-RevId: 194236052
* Serialize singleton NestedSets directly in NestedSetCodecWithStore.Gravatar cpeyser2018-04-25
| | | | PiperOrigin-RevId: 194232982
* Add an extra argument to CcCompilationHelper#fromCommon() that contains ↵Gravatar lberki2018-04-25
| | | | | | | additional compiler options. RELNOTES: None. PiperOrigin-RevId: 194232650
* sandbox: Generate actually unique sandbox paths.Gravatar philwo2018-04-25
| | | | | | | | | | | | | Turns out the "unique" id returned by SpawnExecutionContext is only unique within one SpawnRunner, but not across multiple SpawnRunner classes. We have to prefix the generated path with the name of the current strategy in order to not run into conflicts when a build happens to use multiple different sandbox strategies. RELNOTES: None. PiperOrigin-RevId: 194230475
* Make output name case-insensitive while calculating output names for object ↵Gravatar pcloudy2018-04-25
| | | | | | | | | files This change is due to Windows and macOS, where file paths are case-insensitive RELNOTES: PiperOrigin-RevId: 194223755
* Replace usage of proto class CToolchain.WithFeatureSet with equivalent ↵Gravatar Googler2018-04-25
| | | | | | | WithFeatureSet class RELNOTES: None. PiperOrigin-RevId: 194218956
* Refactor generated objc sources compilation in ProtobufSupport.javaGravatar pcloudy2018-04-25
| | | | | | | Moving CompilationSupport out of for loop. All generated object-c files will be compiled in one CompilationHelper, which avoids object file path conflicts. RELNOTES: None PiperOrigin-RevId: 194215804
* Change action construction to use built-in param file support.Gravatar tomlu2018-04-25
| | | | | | | | | | | We want to be able to control how and when param files are used, and manual construction of param files prevents this. It should also be less code overall. For this CL, when param files are used is unchanged, their format and encoding is unchanged. The flag name is also unchanged, except in some cases it was changed from (eg.) "--flagfile foo" to "--flagfile=foo". However, the name of the param file is now derived from the primary output of the action (instead of manually controlled). RELNOTES: None PiperOrigin-RevId: 194209601
* Change action construction to use built-in param file support.Gravatar tomlu2018-04-25
| | | | | | | | | | | We want to be able to control how and when param files are used, and manual construction of param files prevents this. It should also be less code overall. For this CL, when param files are used is unchanged, their format and encoding is unchanged. The flag name is also unchanged, except in some cases it was changed from (eg.) "--flagfile foo" to "--flagfile=foo". However, the name of the param file is now derived from the primary output of the action (instead of manually controlled). RELNOTES: None PiperOrigin-RevId: 194208049
* ExperimentalEventHandler: properly complete buildGravatar Klaus Aehlig2018-04-25
| | | | | | | | | | | | When completing the build and doing the final flush of the incomplete stdout/stderr lines, remove any existing progress bar first (and redraw afterwards) to avoid interference. Also, upon receiving the AfterCommandEvent, just call completeBuild instead of trying to do the same manually again. Change-Id: If375be798a5e66558676f0ffb845fb64279584f8 PiperOrigin-RevId: 194203925
* Remove no-op check from AndroidCommon, add missing rule validation to aar_importGravatar kmb2018-04-24
| | | | PiperOrigin-RevId: 194191933
* Pass environment to Skylark provider constructors.Gravatar tomlu2018-04-24
| | | | | | | This is needed for constructors that want to be able to use SkylarkSemantics. RELNOTES: None PiperOrigin-RevId: 194180124
* Make the static_link_cpp_runtimes feature settableGravatar Googler2018-04-24
| | | | | | | | | | | as a normal feature. Prior to this cl, it was always set by examining supports_embedded_runtimes. DELTA_BY_EXTENSION=java=100,py=15 RELNOTES: None PiperOrigin-RevId: 194172053
* Change action construction to use built-in param file support.Gravatar tomlu2018-04-24
| | | | | | | | | | | We want to be able to control how and when param files are used, and manual construction of param files prevents this. It should also be less code overall. For this CL, when param files are used is unchanged, their format and encoding is unchanged. The flag name is also unchanged, except in some cases it was changed from (eg.) "--flagfile foo" to "--flagfile=foo". However, the name of the param file is now derived from the primary output of the action (instead of manually controlled). RELNOTES: None PiperOrigin-RevId: 194171911
* Use JavaRuleOutputJarsProvider to collect non-transitive runtime jarsGravatar cushon2018-04-24
| | | | PiperOrigin-RevId: 194170571
* Fix profiler slow task limitingGravatar michajlo2018-04-24
| | | | | | | | Looks like a typo resulted in getSlowestTasks accumulating way more than it should have and we were missing the test coverage to catch it. RELNOTES: None PiperOrigin-RevId: 194169355
* Automated rollback of commit 77777d1a769e938839b82c65ff320e09b1e7a715.Gravatar Googler2018-04-24
| | | | | | | | | | | | | | | | | | This CL includes the rollback + better fix for issue #4922. https://github.com/bazelbuild/bazel/issues/4922 *** Reason for rollback *** Breaks mobile-install v2 adb port forwarding, b/78432638 *** Original change description *** Fix crash from mobile-install with --device but no --adb_args. Fixes #4922. RELNOTES: None PiperOrigin-RevId: 194155557
* Fix runtime jar collection for legacy mobile-installGravatar cushon2018-04-24
| | | | PiperOrigin-RevId: 194151342
* Make some runtime jar collection non-transitiveGravatar cushon2018-04-24
| | | | PiperOrigin-RevId: 194138150
* Remove JavaConstraintsProvider, allow specifying constraints when ↵Gravatar kmb2018-04-24
| | | | | | constructing JavaInfo providers instead PiperOrigin-RevId: 194123199
* Add new-style JavaInfo provider constructor.Gravatar tomlu2018-04-24
| | | | | | | | | | | | Design: https://docs.google.com/document/d/1ubah6phuvWnugShtVgSQnaopQ1BtKtNxQASVwGZA7k0/ * Moves action construction out into java_common.run_ijar, java_common.pack_sources * Deprecates corresponding arguments in JavaInfo An incompatible flag will be added in another CL since it is not possible to add incompatible flags at the same time as new functionality is added. RELNOTES: Adds new-style JavaInfo provider constructor. PiperOrigin-RevId: 194111925
* Add hook to inform SkyframeExecutor that build is finished.Gravatar janakr2018-04-24
| | | | PiperOrigin-RevId: 194099006
* sandbox: Create base class for sandbox building strategies.Gravatar philwo2018-04-24
| | | | | | | | | The CopyingSandboxedSpawn will be used by the upcoming Docker sandbox. This is otherwise a no-op change. RELNOTES: None. PiperOrigin-RevId: 194096413
* Ensure make variables from the CcToolchainProvider end up in theGravatar jcater2018-04-24
| | | | | | TemplateVariableInfo. PiperOrigin-RevId: 194088329
* Introduce @SkylarkCallable.selfCall, to signify the containing class should ↵Gravatar cparsons2018-04-24
| | | | | | | | | | | | be treated as a callable skylark object. This will allow Skylark Provider objects to be better specified. For example, "JavaInfo" can have a fully-documented, fully-specified @SkylarkCallable method with selfCall=true to represent the method JavaInfo(), instead of being a subclass of BaseFunction and requiring a @SkylarkSignature annotation. There are no usages of this pattern introduced in this CL, and also no updates to docgen to support the new pattern. These will be introduced in another CL. RELNOTES: None. PiperOrigin-RevId: 194088227
* SourceArtifacts are interned on deserialization using an ArtifactFactory. ↵Gravatar cpeyser2018-04-24
| | | | | | This should reduce memory consumption in NestedSet deserialization, which currently does not recycle Artifact instances. PiperOrigin-RevId: 194083901
* Make the constructor of TemplateVariableInfo available in Skylark.Gravatar lberki2018-04-24
| | | | | | RELNOTES[NEW]: TemplateVariableInfo can now be constructed from Skylark. PiperOrigin-RevId: 194072452
* Properly report completion of shared actions with input discoveryGravatar hlopko2018-04-24
| | | | | | | | | | | | | | Currently we report "Analyzing" when include scanning runs. But since we can have shared C++ compile actions, only one of the group will be executed and only one will be reported completed. Remaining shared actions currently stay with "analyzing" forever. This cl makes sure that these actions are properly handled when finished. This is an encore of https://github.com/bazelbuild/bazel/commit/24f19ec2679dd93b1ac5b06e46f3b35807d6e217. In this incarnation I make sure that all actions that discover inputs are consistent in reporting their Analyzing status. Originally only CppCompileAction was doing that. Apparently we have more actions that discover inputs (e.g. LtoBackendAction) but these were not reporting Analyzing and therefore crashing on preconditions. This cl makes sure that all actions discovering inputs report their analyzing status. RELNOTES: None PiperOrigin-RevId: 194066513
* Friendlier error messages on remote failures. Moving the error to the top. ↵Gravatar olaola2018-04-24
| | | | | | | Removing stack trace unless verbose failures is on. TESTED=unit test PiperOrigin-RevId: 194060440
* Allow feature configuration to be created from skylarkGravatar hlopko2018-04-24
| | | | | | | Working towards #4571. RELNOTES: CppRules: Feature configuration can be created from Skylark PiperOrigin-RevId: 194048906
* Add getters to JavaCompilationArgsProviderGravatar cushon2018-04-24
| | | | | | | | | | for direct, transitive, and full compile-time jars; runtime jars; and instrumentation metadata. These are trivial wrappers around the corresponding getters on the recursive and non-recursive JavaCompilationArgs objects. This is a no-op refactoring in preparation for flatting JavaCompilationArgs into JavaCompilationArgsProvider. PiperOrigin-RevId: 194047064
* Cleanup LibraryToLinkCollector to properly distinguish C++ runtimes from ↵Gravatar hlopko2018-04-24
| | | | | | | | | | | | | | | | dynamic libraries Term runtime input had 2 meanings in CppLinkAction: 1) input needed at runtime - dynamic library 2) input corresponding to the C++ runtime (libstdc++ or libc++) This confused me and therefore the code :) This cl cleans this up to some extent by: * renaming runtimeInput to runtimesInput, to at least give the reader a chance to catch the difference :) * treating runtimesInputs as normal linker inputs, also downstream in CppLinkAction and LinkCommandLine * Simplifying LibrariesToLinkCollector by removing explicit runtimesHandling. RELNOTES: None PiperOrigin-RevId: 194046439
* Accept included headers which are provided by tree artifacts.Gravatar carmi2018-04-23
| | | | | | | This allows a C++ file to include headers from a tree artifact, and pass header inclusion checks. RELNOTES: None. PiperOrigin-RevId: 193967617
* Add the additional options to support manual trimming of feature flags.Gravatar mstaib2018-04-23
| | | | | | | | | | | | | | | | | | | There are effectively three different states a flag's value could be in: 1. Value is known to be non-default 2. Value is known to be default 3. Value is unknown (has been trimmed) In addition to flagValues (which covers the first state), there are now two additional sets covering the other two states. Neither of these sets are used when manual trimming is disabled or when the entire set of flags is known, in which case state 1 is represented by labels in the map, state 2 is represented by labels not in the map, and state 3 doesn't exist. This also adds the flag which controls whether manual trimming is active, but it currently has no effect. RELNOTES: None. PiperOrigin-RevId: 193964624
* Start refactoring elements of the Skylark Build API into their own package.Gravatar cparsons2018-04-23
| | | | | RELNOTES: None. PiperOrigin-RevId: 193962460
* Add a new "STRICT_ERROR" for the flag "--experimental_import_deps_checking" ↵Gravatar cnsun2018-04-23
| | | | | | | | | to check the direct dependencies for aar_import targets. Currently the default value of this flag is not changed. And it will be enabled in a separate cl. RELNOTES: None PiperOrigin-RevId: 193959866
* Automated rollback of commit 24f19ec2679dd93b1ac5b06e46f3b35807d6e217.Gravatar ruperts2018-04-23
| | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** See: http://b/78455900 *** Original change description *** Properly report completion of shared actions with input discovery Currently we report "Analyzing" when include scanning runs. But since we can have shared C++ compile actions, only one of the group will be executed and only one will be reported completed. Remaining shared actions currently stay with "analyzing" forever. This cl makes sure that these actions are properly handled when finished. RELNOTES: None PiperOrigin-RevId: 193955856
* This change adds timestamps (call start and end time) to the remote grpc log.Gravatar Googler2018-04-23
| | | | PiperOrigin-RevId: 193937177
* C++: Expose functionality needed for cc_embed_data Skylark implementationGravatar plf2018-04-23
| | | | | RELNOTES:none PiperOrigin-RevId: 193919970
* HttpDownloader: also cache files downloaded without provided hashGravatar Klaus Aehlig2018-04-23
| | | | | | | | | | | | | | | | | Even if downloading a file without a predicted hash, add it to the cache. This step is necessary to avoid redownloading when we switch to resolved WORKSPACES. Starting from a plain URL, the file is downloaded and the hash is added to the resolved version of the rule. Then we still want the resolved form of the rule (which still has different arguments) to download the same file again. Even before the design of resolved WORKSPACES is implemented, this caching is useful for the manual workflow: take the hash that is printed for every file downloaded without predicted hash and manually add it to the parameters of the rule. Then we prefer not to redownload the file again. Change-Id: I90eefa9efed7c47514cc481dc09d9e938efa5a39 PiperOrigin-RevId: 193907109
* Repository cache: add a put method determining the key itselfGravatar Klaus Aehlig2018-04-23
| | | | | | | | | | Add a new put method to the repository cache, that computes the cache key itself. The key is returned, so it can be reused without having to recompute it. This is a convenient interface for caching a file that was downloaded without prior knowledge of its hash. Change-Id: I6ac844f4166bf64498b87e483896d155df35475e PiperOrigin-RevId: 193889444
* SpawnAction.setShellCommand: expect shell pathGravatar laszlocsomor2018-04-23
| | | | | | | | | | | | | | | | | | | | | | | SpawnAction.setShellCommand(String) now expects the shell interpreter's path as an argument. This change enables two things: - rules can report an error if the shell is missing - SpawnAction no longer has to know about a default shell The new ShToolchain class will later also be responsible for retrieving the active shell toolchain (added in https://github.com/bazelbuild/bazel/commit/81ed3add408adb20bddbc3ba1818c65806738dc5). This change brings Bazel closer to not depend on the shell unless it has to (e.g. to run shell scripts). See https://github.com/bazelbuild/bazel/issues/4319 RELNOTES: none PiperOrigin-RevId: 193885943
* Add BazelCrashUtils to make it easier to crash the JVM when uncaught ↵Gravatar janakr2018-04-20
| | | | | | exceptions are detected in async worker threads. PiperOrigin-RevId: 193725871
* aar_import doesn't export AndroidSkylarkApiProviderGravatar asteinb2018-04-20
| | | | | | | | aar_import probably should give IDEs the same information as other rules, but it doesn't at the moment. Stop exporting the corresponding provider. RELNOTES: none PiperOrigin-RevId: 193701950
* Fix asset processing bugGravatar asteinb2018-04-20
| | | | | | | | | | We need to pass primary asset and resource artifacts to processing, not just resources. This was introduced as part of my recent migration. In my defense, this migration was needed exactly to avoid situations like this (ResourceContainer.getArtifacts does not just return resource artifacts like you might expect it to). RELNOTES: none PiperOrigin-RevId: 193693868
* Expose new methods in CcToolchainProvider to eventually replace skylark ↵Gravatar juliexxia2018-04-20
| | | | | | callables that depend on CToolchain in CppConfiguration. PiperOrigin-RevId: 193690345
* Blaze: add --high_priority_workers flag.Gravatar Googler2018-04-20
| | | | | | | | | | | When two or more instances of high priority workers are running, no other worker execution may start. Tweak WorkerSpawnRunner. Only reserve resources for a worker after it has been obtained from the pool. This allows us to block waiting for high priority workers to have finished before resources are reserved. RELNOTES: Add --high_priority_workers flag. PiperOrigin-RevId: 193672343