aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib
Commit message (Collapse)AuthorAge
* Provide parallel implementations of bounded allrdeps and rdeps.Gravatar nharmata2018-04-12
| | | | | RELNOTES: None PiperOrigin-RevId: 192681579
* Prefix-compress strings during memoizing serialization.Gravatar janakr2018-04-12
| | | | PiperOrigin-RevId: 192662977
* Make resource merging action builder able to take just resourcesGravatar asteinb2018-04-12
| | | | | | | | | | | | In the next review, this will be used to merge resources (without assets) To support this, we need to pass around a stamped manifest with the parsed resources (since manifests cannot be decoupled fully from resource processing - aar_import means that stamped manifests are the only guaranteed way to get package information). RELNOTES: none PiperOrigin-RevId: 192649272
* Make statically linking cpp-runtimes as a crosstool feature.Gravatar Googler2018-04-12
| | | | | | | | | This cl should result in no user-visible change. It simply sets the feature based on the field in the crosstool proto. A subsequent cl will expose this feature for people to actually use. PiperOrigin-RevId: 192641438
* Plumbs ActionExecutionContext through CppLinkAction.Gravatar shahan2018-04-12
| | | | PiperOrigin-RevId: 192639719
* Document the new ctx.actions.args() APIGravatar brandjon2018-04-12
| | | | | | RELNOTES: Args objects (ctx.actions.args()) have new methods add_all() and add_joined() for building command lines using depsets. RELNOTES[INC]: Added flag --incompatible_disallow_old_style_args_add to help migrate from args.add() to args.add_all() / args.add_joined() where appropriate. PiperOrigin-RevId: 192633763
* Remove vestigial 'deps' and 'data' attributes from proto_lang_toolchainGravatar cushon2018-04-12
| | | | | RELNOTES: Remove vestigial 'deps' and 'data' attributes from proto_lang_toolchain PiperOrigin-RevId: 192630723
* Plumbs ActionExecutionContext into AbstractAction.checkOutputsForDirectories.Gravatar shahan2018-04-12
| | | | PiperOrigin-RevId: 192628723
* Remove cc_inc_library in BazelCppRuleClassesGravatar Loo Rong Jie2018-04-12
| | | | | | | | | | | | | Split from https://bazel-review.googlesource.com/c/bazel/+/50050 /cc @mhlopko Change-Id: Ie8a6d9256f65ed81b2b7006a9d19065eaf199f32 Closes #4998. Change-Id: Ie8a6d9256f65ed81b2b7006a9d19065eaf199f32 PiperOrigin-RevId: 192624031
* Remove flag `incompatible_disallow_toplevel_if_statement`.Gravatar laurentlb2018-04-12
| | | | | | RELNOTES: Removed flag `--incompatible_disallow_toplevel_if_statement`. PiperOrigin-RevId: 192621765
* Deletes PopulateTreeArtifactAction (which seems to be dead code).Gravatar shahan2018-04-12
| | | | PiperOrigin-RevId: 192621318
* Fix error handling for target pattern expansionGravatar John Cater2018-04-12
| | | | | | | | | | | | ... in register_toolchains and register_execution_platforms. Fixes #5000. Change-Id: Iac06b3cb79746ea720de8835b7bd1abb19149526 Closes #5001. PiperOrigin-RevId: 192615586
* CommandBuilder: remove useShell and setWorkingDirGravatar Laszlo Csomor2018-04-12
| | | | | | | | | | | | | | | | | | | | | Remove the .useShell method, expect callers to just pass the shell interpreter if they need it. This removes the argument vector transformation heuristic, and stops shelling out to cmd.exe on Windows. Also remove the .setWorkingDir method because callers always had to set the working directory. Instead, the CommandBuilder constructor takes the working directory. Closes #2190. (Test code still shells out to cmd.exe though.) Closes #5007. Change-Id: I545e01c811daaf34913cb585492923da81aa02ee PiperOrigin-RevId: 192611370
* Make FileSystemUtils.moveFile always preserve symlinks and use it in ↵Gravatar Benjamin Peterson2018-04-12
| | | | | | | | | | | | | | | | | | | | | | | SandboxedSpawn.copyOutputs. Previously, if moveFile fell back to copying from a true rename (e.g., if the move is across file systems), it would fully dereference the source and produce a regular file at the output location. This CL fixes moveFile to properly copy symlinks. Note we don't preserve metadata in the symlink case mostly because the Bazel VFS has no API to write metadata without dereferencing symlinks. (But, also, it's not important for the current use cases.) This breaks the backward-compatibility of FileSystemUtils.moveFile and FileSystemUtils.moveTreeBelow. This seems okay because the new behavior makes more sense, and sandbox is the only consumer of these APIs. Switching SandboxedSpawn.copyOutputs to use FileSystemUtils.moveFile rather than Guava's Files.move fixes https://github.com/bazelbuild/bazel/issues/4987. Closes #4989. Change-Id: I0283e8aa11fadff5b0afd7bdfd0490aca12a1f6b PiperOrigin-RevId: 192611227
* Add document about alwayslink with VS 2017.Gravatar pcloudy2018-04-12
| | | | | RELNOTES: None PiperOrigin-RevId: 192606955
* Plumbs ActionExecutionContext to SymlinkTraversal.addSymlinks.Gravatar shahan2018-04-12
| | | | PiperOrigin-RevId: 192603578
* Make build_event_stream_java_proto public so it can be used by the IntelliJ ↵Gravatar Googler2018-04-12
| | | | | | | plugin. RELNOTES: None PiperOrigin-RevId: 192592698
* Don't warn about /dev/null having been modifiedGravatar Mike Morearty2018-04-12
| | | | | | | | Fixes #4647 Closes #5003. PiperOrigin-RevId: 192576694
* Remove WorkerTestStrategy and with it, ↵Gravatar lberki2018-04-12
| | | | | | | | | BuildConfiguration.Fragment#compatibleWithStrategy(). The experiment did not work out. RELNOTES: None. PiperOrigin-RevId: 192567832
* Remove all callers of ArtifactRoot.asSourcePath from production code besides ↵Gravatar janakr2018-04-11
| | | | | | | | the ones in SkyframeExecutor, called once for each Root in the package path list. This ensures there is a single canonical ArtifactRoot for each source root. It is still the case that every Package loaded has its own Root (https://source.bazel.build/bazel/+/master:src/main/java/com/google/devtools/build/lib/packages/Package.java;l=287?q=Package.java), which is a waste of memory, but because of the map inside ArtifactFactory introduced in this change, all Artifacts with the same logical source root share a single ArtifactRoot instance. PiperOrigin-RevId: 192513819
* Add skipped manifest processing methodsGravatar asteinb2018-04-11
| | | | | | | | | | | Add some required manifest support I didn't previously implement: - Support for exports_manifest field - Get properly processed manifest from AndroidSemantics - Correctly represent the current relationship between manifest and resource processing - resource processing uses the stamped manifest. RELNOTES: none PiperOrigin-RevId: 192508962
* Migrate StringModule methods to SkylarkCallable from SkylarkSignature.Gravatar cparsons2018-04-11
| | | | | | | StringModule is a special case in a number of places because it represents effectively methods which should be annotated on String.class. However, String may not be subclassed in Java. StringModule thus serves as a proxy module for String. RELNOTES: None. PiperOrigin-RevId: 192508607
* Starts threading ActionExecutionContext to sites calling getPath() only withinGravatar shahan2018-04-11
| | | | | | Action execution. PiperOrigin-RevId: 192488641
* Add a toString method to BuildOptions and BuildConfigurationValue.KeyGravatar mjhalupka2018-04-11
| | | | PiperOrigin-RevId: 192479952
* Expose "mnemonic" and "env" on skylark "Action" objects.Gravatar cparsons2018-04-11
| | | | | RELNOTES: Exposed "mnemonic" and "env" fields on skylark "Action" objects. PiperOrigin-RevId: 192479783
* Update ctx.action.args() docs.Gravatar tomlu2018-04-11
| | | | | RELNOTES: None PiperOrigin-RevId: 192479130
* Introduce Param.legacyNamed() to handle migration from @SkylarkSignature to ↵Gravatar cparsons2018-04-11
| | | | | | | | | | @SkylarkCallable. @SkylarkSignature.parameters() treat named()=true for parameters regardless of whether named() was actually set to true, and thus for ease of migration we mark migrated parameters as legacyNamed() = true, which is currently semantically equivalent to named() = true. We make a distinction so that it's easier to bulk fix these later. RELNOTES: None. PiperOrigin-RevId: 192477405
* Create a new proto output formatter for cquery. Also add flag ↵Gravatar juliexxia2018-04-11
| | | | | | --[no]proto:include_configurations which when used, makes cquery proto output appear exactly like query proto output so tools that are already using this can seamlessly transition. PiperOrigin-RevId: 192470626
* Fix NPE in action graph dump.Gravatar twerth2018-04-11
| | | | | RELNOTES: None PiperOrigin-RevId: 192445971
* Make --fdo_optimize paths be PathFragment instead of Path, and remove the ↵Gravatar Googler2018-04-11
| | | | | | now unused ConfigurationEnvironment#getBlazeDirectories() PiperOrigin-RevId: 192443323
* Add CommandLinesAndParamFiles class.Gravatar tomlu2018-04-11
| | | | | | | | | | | This class is currently unused. In order to keep CL sizes down we introduce this class prior to using it in the spawn runners. This class can manage an action's list of command lines and param files. For instance, SpawnAction will contain one of these instances (instead of keeping a single command line object and adding param file write actions to the action graph). At spawn execution time, the spawn runners will use this class to resolve the list of command lines and param files into a master argument list + some number of param files that need to be written. The local spawn runners can simply write the param files using a helper. In the distributed cases the param files are ready-made VirtualActionInputs that can be added to the Spawn's other inputs. RELNOTES: None PiperOrigin-RevId: 192439501
* Automated rollback of commit 3ab52e63079f1e43cb2c973425f615836a334082.Gravatar hlopko2018-04-11
| | | | | | | | | | | | | | *** Reason for rollback *** Breaks exoblaze, and there's a better way how to move forward with this. *** Original change description *** Flip default value of --experimental_shortened_obj_file_path to true RELNOTES: Flip default value of --experimental_shortened_obj_file_path to true, Bazel now generates short object file path by default. PiperOrigin-RevId: 192437958
* Introduce `--incompatible_disallow_slash_operator` to disable `/` operator.Gravatar laurentlb2018-04-11
| | | | | | | | RELNOTES: The `/` operator is deprecated in favor of `//` (floor integer division). Try the `--incompatible_disallow_slash_operator` flag to ensure your code is forward-compatible. PiperOrigin-RevId: 192430310
* analyze-profile: prevent bazel from crashing outside a workspaceGravatar Shmuel H2018-04-11
| | | | | | | | This commit closes #3256. Closes #4971. PiperOrigin-RevId: 192429422
* Deprecate BuildConfiguration.Fragment#getArtifactOwnerTransition().Gravatar lberki2018-04-11
| | | | | | | Not a lot of chance that this will accidentally get used for something, but let's keep our house tidy. RELNOTES: None. PiperOrigin-RevId: 192426276
* Fix typo in error message (incompatible_package_name_is_a_function).Gravatar laurentlb2018-04-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 192425838
* Also prefetch label lists for repository rulesGravatar Klaus Aehlig2018-04-11
| | | | | | | | | | | ...so that a repository rule can access them in any order without being restarted. Restarting a repository rule can be expensive, if it already accessed the network or executed expensive commands. Improves on #4533. Change-Id: I618c25322511dab42a80c1dddb0798fc9aea3106 PiperOrigin-RevId: 192420257
* Remove BuildConfiguration.Fragment#setupActionEnvironment().Gravatar lberki2018-04-11
| | | | | | | This is accomplished by moving it to ConfiguredRuleClassProvider. This also suggests a neat way to get rid of logic in ShellConfiguration.Loader() by moving the determination of the shell executable, there, too, but not in this change. RELNOTES: None. PiperOrigin-RevId: 192411609
* Automated rollback of commit ca598fb9445627e9734c2900bc6b11430250d453.Gravatar dannark2018-04-10
| | | | | | | | | | | | | *** Reason for rollback *** breaks guitar tests *** Original change description *** Disallow labels of the form ////foo. RELNOTES: Labels of the form ////foo are disallowed. PiperOrigin-RevId: 192393660
* Add value constants to ObjectCodecRegistry. Value constants are to be used ↵Gravatar janakr2018-04-10
| | | | | | when there may not be a canonical instance of the object we want (or the canonical instance isn't available at registry construction time), but we can reasonably cheaply do value equality comparisons. Strings are a good example. PiperOrigin-RevId: 192354865
* Migrate apple_common.new_objc_provider to use @SkylarkCallableGravatar cparsons2018-04-10
| | | | | RELNOTES: None. PiperOrigin-RevId: 192350172
* Make the skyframe-native flag a no-op.Gravatar kush2018-04-10
| | | | | RELNOTES: None PiperOrigin-RevId: 192349971
* Add support for sandboxfs-based sandboxing to Linux.Gravatar jmmv2018-04-10
| | | | | | | This is essentially the same as https://github.com/bazelbuild/bazel/commit/3a7b8bc2abeaf8b8647c037bed1dd5fd73b8392b. RELNOTES: none. PiperOrigin-RevId: 192342039
* Migrate Info's skylark methods to @SkylarkCallableGravatar cparsons2018-04-10
| | | | | RELNOTES: None PiperOrigin-RevId: 192337555
* Simplify AbstractSkyFunctionEnvironment to more directly call ↵Gravatar shreyax2018-04-10
| | | | | | getValueOrUntypedExceptions. PiperOrigin-RevId: 192329649
* Disallow labels of the form ////foo.Gravatar carmi2018-04-10
| | | | | RELNOTES: Labels of the form ////foo are disallowed. PiperOrigin-RevId: 192329081
* Fix bug in SkyQuery's parallel allrdeps with --nohost_deps.Gravatar nharmata2018-04-10
| | | | | | | | | The was that the presence of invalid dependency edges would incorrectly cause 'allrdeps' to not visit targets. Concrete example: if --nohost_deps was set and T1 depended on T via a host edge and T2 depended on T via a non-host edge then 'allrdeps(T)' might incorrectly not contain T2. Along with fixing the bug, refactor ParallelVisitor's deduping logic: instead of deduping visitations inside #getVisitResult, dedupe them before adding them to #processingQueue. This should be a strict, small, performance win, especially for trivial visitations (e.g. RBuildFilesVisitor). RELNOTES: None PiperOrigin-RevId: 192327607
* Make some objects frequently encountered during serialization into ↵Gravatar janakr2018-04-10
| | | | | | | | constants. A lot of care is needed here because we're using reference equality. I plan to add value-equality constants in a follow-up. Add ImmutableSortedSet marshaller because I think it might have been needed, and hey, why not. PiperOrigin-RevId: 192326359
* Makes BlazeDirectories a serialization constant.Gravatar shahan2018-04-10
| | | | PiperOrigin-RevId: 192325937
* Fix handling of relative symlinks within sandboxfs.Gravatar jmmv2018-04-10
| | | | | | | | | | | | | | | | | | If an action expresses a symlink as an input, the target of the symlink does not necessarily appear as a file to map within the sandbox. This is a problem when the target of the symlink is relative because sandboxfs would expose the link verbatim and the target would be missing later on during resolution. To fix this, special-case the handling of symlinks: when trying to expose them via a sandboxfs mount point, resolve their final target instead of respecting the original contents. This loses the fact that the file was a symlink when running within the sandboxfs sandbox, but is easier to implement and slightly faster at runtime. We can reconsider this choice if this causes problems. RELNOTES: None. PiperOrigin-RevId: 192325932