aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
...
* Allow @ in package names.Gravatar twerth2018-06-14
| | | | | | | | | | To disambiguate: - @foo refers to the external dependency @foo//:foo (as before this change). - //@foo refers to the target //@foo:@foo (i.e. in the default workspace). RELNOTES[NEW]: Allow @ in package names. PiperOrigin-RevId: 200541716
* Pull in the right deps into the embedded tools.Gravatar Irina Iancu2018-06-14
| | | | | | | | | | | | | | | | | Fixes #5378. $ find $(bazel-bin/src/bazel info install_base) -type f | wc -l 508 $ stat -c %s bazel-bin/src/bazel 115014201 The number of embedded files is now 508 and the binary size is ~115Mb. RELNOTES: None. Change-Id: I75e43a959e1201cc36718a9acd0af96e9506c7d4 PiperOrigin-RevId: 200539940
* Add a convenience method to ProfilerGravatar ulfjack2018-06-14
| | | | | | This reduces our reliance on ProfilerTask. PiperOrigin-RevId: 200538769
* Remove unnecessary flags from RunCommand command annotationGravatar ulfjack2018-06-14
| | | | | | | These are no longer necessary since we don't pipe the subprocess stdout/stderr through Bazel anymore. PiperOrigin-RevId: 200534552
* Fix link to windows platform bugsGravatar justhecuke2018-06-14
| | | | | | | | | | Link currently finds no issues. This seems to be because the proper tag is "platform:windows" rather than the documented "multi-platform > windows". The fix merely updates the text and link to "platform:windows". Closes #5393. PiperOrigin-RevId: 200533655
* Split BuildView into two classesGravatar ulfjack2018-06-14
| | | | | | | Move the testing class to the tests tree. This is in preparation for dismantling BuildView and merging the relevant parts into AnalysisPhaseRunner. PiperOrigin-RevId: 200532794
* Allow Skylark rules to specify whether targets can add execution platform ↵Gravatar John Cater2018-06-14
| | | | | | | | | constraints. Closes #5341. Change-Id: Ib74e59fec48102469a5039e045e3f3d0e0d86d8c PiperOrigin-RevId: 200526448
* C++: Fixes error reporting for cc_importGravatar plf2018-06-14
| | | | | RELNOTES:none PiperOrigin-RevId: 200525022
* Fix Profiler setup to actually enable the Json formatGravatar ulfjack2018-06-14
| | | | PiperOrigin-RevId: 200518973
* Simplify CommandEnvironment constructor, make fields finalGravatar ulfjack2018-06-14
| | | | PiperOrigin-RevId: 200516863
* Serialize lambdas when they are cast to Serializable.Gravatar janakr2018-06-13
| | | | | | We could conceivably do some monkey-patching at server startup to make all lambdas act Serializable, but one step at a time. PiperOrigin-RevId: 200509321
* @AutoCodec stray usage of AndroidDataConverter. It should always be a static ↵Gravatar janakr2018-06-13
| | | | | | | | | | constant. This allows us to continue using lambdas in its definition. This is a partial rollback of https://github.com/bazelbuild/bazel/commit/ed1e7594b23100f89755491f36e46886b4a51c8d, since the work done to class-ify things there is unnecessary once every instance is @AutoCodec-ed. PiperOrigin-RevId: 200504678
* Add functionality to make certain SkyValues unshareable, meaning they are ↵Gravatar janakr2018-06-13
| | | | | | not serialized. Tag TestCompletionValue and any ActionExecutionValue coming from a NotifyOnActionCacheHit (i.e., tests) like that. To make such values really not shared, request the ActionExecutionValue from TestCompletionFunction as opposed to the ArtifactValue (propagating the unshareable bit up seemed like too much fuss, and I have a dream of getting rid of ArtifactValue anyway). PiperOrigin-RevId: 200504358
* When composing RuleTransitionFactories, return something that respects equality.Gravatar mstaib2018-06-13
| | | | | | | | | | | | If the output from composeTransitions is one of the input PatchTransitions, return it. If it's a composed transition, make sure to wrap it in a class which respects equality. Without this change, running the same RuleTransitionFactory on the same attribute and target twice will produce two non-equal Dependencies which can't be deduplicated by OrderedSetMultimap - no lambda is equal to any other instance of the same lambda. RELNOTES: None. PiperOrigin-RevId: 200472777
* Populate JavaInfo's annotation_processing field in java_common.compileGravatar kmb2018-06-13
| | | | | | RELNOTES: None. PiperOrigin-RevId: 200471197
* Reconvert the lambdas in AndroidDataConverter to anonymous inner classes.Gravatar mjhalupka2018-06-13
| | | | | | | Tag some static members with @AutoCodec. Replace some lambdas with explicit functions or classes. PiperOrigin-RevId: 200467500
* Pass ActionFS paths through to action-level FileOutErr for the Action's ↵Gravatar felly2018-06-13
| | | | | | | stdout/stderr. RELNOTES: None PiperOrigin-RevId: 200459354
* Delete empty comment lines.Gravatar dannark2018-06-13
| | | | | RELNOTES: None PiperOrigin-RevId: 200455297
* Skylark debugger: don't quote or escape strings when serializing.Gravatar brendandouglas2018-06-13
| | | | | | | A minor serialization improvement. I'm planning to refactor this code significantly, but wanted to get this in before I forgot. PiperOrigin-RevId: 200453925
* * Update apple_common.link_multi_arch_binary to return all of its providers ↵Gravatar allevato2018-06-13
| | | | | | | | and output groups. * Make ctx a keyword argument so that we can more easily add more parameters in the future and eventually remove ctx. PiperOrigin-RevId: 200453550
* Fix filterTestsByTarget to filter by label instead of filtering by doingGravatar mjhalupka2018-06-13
| | | | | | package lookups to get Targets. PiperOrigin-RevId: 200452642
* Document troubleshooting Bazel remote execution using the Docker sandbox ↵Gravatar spomorski2018-06-13
| | | | | | feature. PiperOrigin-RevId: 200451804
* Compare using value equality instead of reference equality.Gravatar dannark2018-06-13
| | | | | RELNOTES: None PiperOrigin-RevId: 200446926
* Allow deserialization futures as NestedSet contents, with unrolling blocking ↵Gravatar cpeyser2018-06-13
| | | | | | | | on that future. This allows NestedSet deserialization not to block on storage reads - in-progress deserializations are simply made a member of the NestedSets they produce. PiperOrigin-RevId: 200440131
* Add --experimental_supports_info_crosstool_configuration to support removal ↵Gravatar hlopko2018-06-13
| | | | | | | of bazel info crosstool-configuration RELNOTES: None. PiperOrigin-RevId: 200437121
* Don't rerun the command if it failed.Gravatar thomasvl2018-06-13
| | | | | | | | | | | | | | | | | | | While the original intent was to provide better messaging, the truth is things like ibtool and actool can error because of the state of CoreServices when targeting anything other than macOS. It appears this attempt to validate the sdk argument ends up succeeding in some cases, meaning it doesn't fail quickly, it does a fair mount of work, which we promptly throw away and still return the original error result. Rather then trying to expand this into some even more completely retry logic it seems better to back away from this attempted messaging instead. Looking at at history the better messaging stems from why it was recommended that folks also pass the SDK version along with the Xcode version, but we've gone back to just saying specific the Xcode version, so need for this improved messaging has also been reduced. PiperOrigin-RevId: 200422952
* Save nested set size after initial expand to avoid GC from resizing list ↵Gravatar tomlu2018-06-13
| | | | | | | | | | | when replaying. We stash the size in the same field as the order using bit packing. The small additional cost of masking out the int should be less than the resizing when replaying large nested sets. The upper size bound on nested sets will be 512M objects as a result. If Java had unsigned ints we could push it to 1G. RELNOTES: None PiperOrigin-RevId: 200417105
* Enable per-target execution for genrule, sh_*, and *_test.Gravatar jcater2018-06-13
| | | | PiperOrigin-RevId: 200410988
* Add documentation on platform flags to the user manual.Gravatar jcater2018-06-13
| | | | PiperOrigin-RevId: 200410790
* Disable another testGravatar ulfjack2018-06-13
| | | | | | Onto #5328 PiperOrigin-RevId: 200410170
* Avoid long, duplicated directory structures. In the common case, generatedGravatar Googler2018-06-13
| | | | | | | | files are going to be beneath the target that generates them. In this case, don't duplicated the package's path. RELNOTES: None. PiperOrigin-RevId: 200400464
* Remove supports_lipo field from DefaultCpuToolchainGravatar rosica2018-06-13
| | | | | RELNOTES: None. PiperOrigin-RevId: 200399094
* Windows: fix "corrupt installation" at new yearGravatar Laszlo Csomor2018-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bazel on Windows is now consistent with Bazel on Unixes, by setting the mtimes of embedded binaries to 10 years in the future. Before this change, on Windows, Bazel used to set these mtimes to CURRENT_YEAR + 10, January 1st. This meant that if a user ran Bazel on 2017/12/29, then on Unix Bazel set the mtimes to 2027/12/29 but on Windows it set them to 2027/01/01. If the user then ran Bazel in the same workspace on 2018/01/02, on Unixes it worked fine, but on Windows it detected that the embedded binaries' mtime is older than 2018/01/01, and reported a "corrupt installation" error. Fixes https://github.com/bazelbuild/bazel/issues/4378 Change-Id: I3457bdc360a62a279d1d08c9a69997929f2067dd Closes #5385. Change-Id: I3457bdc360a62a279d1d08c9a69997929f2067dd PiperOrigin-RevId: 200395493
* Move BuildView.Options to a new top-level classGravatar ulfjack2018-06-13
| | | | | | | This is in preparation for dismantling BuildView and merging the relevant parts into AnalysisPhaseRunner. PiperOrigin-RevId: 200391088
* Remove BlazeModule.checkEnvironmentGravatar ulfjack2018-06-13
| | | | | | Do the work in beforeCommand instead. PiperOrigin-RevId: 200391086
* Add "toolchain-identifier" attribute to cc_toolchain ruleGravatar rosica2018-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently the selection of C++ toolchain configuration depends on 2 different things: 1. CROSSTOOL file: a proto text file that contains multiple CrosstoolConfig.CToolchain messages, out of which we want to select the appropriate CToolchain; 2. cc_toolchain_suite rule, specified by --crosstool_top option: this rule contains "toolchains" map attribute. The map's keys are of type <cpu>|<compiler>, or just <cpu>, and the values are labels of cc_toolchain rules (which contain additional C++ information). If there is an entry in cc_toolchain_suite.toolchains that corresponds to the --cpu and --compiler options, we use it, otherwise we loop through all the CToolchains in the CROSSTOOL file, select the one that corresponds to the --cpu and --compiler options, and then get the cc_toolchain label from cc_toolchain_suite.toolchains[toolchain.targetCpu|toolchain.compiler]. In both cases we read the CROSSTOOL file and pass all its information forward, to be used in creation of CppConfiguration and CcToolchainProvider creation. As part of the efforts of rewriting CROSSTOOL in Skylark, we need to make obtaining the cc_toolchain label independent of the CROSSTOOL file and toolchain selection. As a step towards that goal, we add a new "toolchain_identifier" attribute to cc_toolchain, which uniquely identifies a CToolchain in the CROSSTOOL file. Now the process of getting the CToolchain goes as follows: Check for existence of cc_toolchain_suite.toolchains[<cpu>|<compiler>], if --compiler is specified, otherwise check for cc_toolchain_suite.toolchains[<cpu>]. 1. if a value is found, load the cc_toolchain rule and look for the toolchain_identifier attribute. 1.a if the attribute exists, loop through all the CToolchains in CROSSTOOL and select the one with the matching toolchain identifier. 1.b otherwise fall back to selecting the CToolchain from CROSSTOOL by matching the --cpu and --compiler values. 2. If a value is not found, select the CToolchain from CROSSTOOL by matching the --cpu and --compiler values, and construct the key as follows: <toolchain.cpu>|<toolchain.compiler>. In the future we will get rid of 2. by making sure that cc_toolchain_suite.toolchains[<cpu>|<compiler>] and cc_toolchain_suite.toolchains[<cpu>] are always defined. 1.b will be removed by making the cc_toolchain.toolchain_identifier attribute mandatory After this deriving the cc_toolchain label will be independent of the CROSSTOOL file 1.a will ultimately be replaced by an attribute that points to a skylark_crosstool rule, that will contain all the information that CROSSTOOL contains, allowing us to remove CROSSTOOL altogether. Work towards issue #5380 RELNOTES: None. PiperOrigin-RevId: 200388550
* Fix a bad path and remove the reference to the legacy path-based load() syntax.Gravatar lberki2018-06-13
| | | | | RELNOTES: None. PiperOrigin-RevId: 200379060
* Skylark repos: for failed patch command, also report stdoutGravatar Klaus Aehlig2018-06-13
| | | | | | | | | | The patch(1) utility usually gives error messages on stdout. So it is not useful to report only stderr in case a patch failed. Report both. Fixes #5379. Change-Id: Ief198849e29ca989dfdefe2fadf495a0b0949972 PiperOrigin-RevId: 200377306
* Skylark repositories: support additional arguments for the patch toolGravatar Klaus Aehlig2018-06-13
| | | | | | | | | | | | Instead of hard-coding "-p0", allow the arguments for that patch tool to be overridden. In particular, this supports the use case of patches generated with `git format-patch` which are to be read as `-p1`. Improves on #5379. Closes #4974 as superseded. Change-Id: I809fde14beab21d8a755ba4f1706b602bae3c1bb PiperOrigin-RevId: 200373909
* Return Strings from C++ Skylark APIs, not PathFragmentsGravatar hlopko2018-06-13
| | | | | | | | | | PathFragments are not well supported in Skylark, quite the opposite, the Skylark team tries hard to not use path fragments if possible. All existing users I looked into had to convert the PathFragment to string using str() anyway. Because of that this cl should not break anybody. RELNOTES: None. PiperOrigin-RevId: 200372447
* C++: Continues renaming executionDynamicLibraries to dynamicLibrariesForRuntime.Gravatar plf2018-06-13
| | | | | RELNOTES:none PiperOrigin-RevId: 200366616
* Split AnalysisResult into a top-level classGravatar ulfjack2018-06-13
| | | | PiperOrigin-RevId: 200363345
* Change generated DEF file name from <target name>.def to <target name>.gen.defGravatar pcloudy2018-06-13
| | | | | | | | | This helps avoid name conflicts when users want to generate DEF files by themselves. For example, when using a genrule to do that, people naturally name the def file as <target name>.def. Fixed https://github.com/bazelbuild/bazel/issues/5357 RELNOTES: None PiperOrigin-RevId: 200354303
* Fix documentation in bazel_external_repository_test.pyGravatar pcloudy2018-06-13
| | | | | RELNOTES: None. PiperOrigin-RevId: 200351084
* Fix archive decompression with symlink on WindowsGravatar pcloudy2018-06-13
| | | | | | | | | On Windows, extracting file symlink in an archive would be performed as copy. To ensure the copy will be successful, we defer all symlink creation after all regular files are extracted. Fix https://github.com/bazelbuild/bazel/issues/5367 RELNOTES: None. PiperOrigin-RevId: 200345463
* Fix a bug with flush() not flushing on local writes in ActionFS, and add ↵Gravatar felly2018-06-12
| | | | | | | | | unit test coverage for this. Note that ActionFS is not generic enough to make use of FileSystemTest. RELNOTES: None PiperOrigin-RevId: 200304871
* Change the default value of ↵Gravatar dannark2018-06-12
| | | | | | | | --experimental_android_local_test_binary_resources to true. RELNOTES[NEW]: android_local_test now takes advantage of Robolectric's binary resource processing which allows for faster tests. PiperOrigin-RevId: 200296572
* Rename VariableContext to the more general purpose QueryExpressionContext ↵Gravatar shreyax2018-06-12
| | | | | | and thread it through to graph traversal functions. Some other light refactorings as well. PiperOrigin-RevId: 200292556
* Add more data to the exception thrown when putOnlyEntry's verification fails.Gravatar mstaib2018-06-12
| | | | | | | | | If this exception is thrown, performance no longer matters - we're detonating the place and riding the explosion out to stderr. So we might as well just dump everything we know. RELNOTES: None. PiperOrigin-RevId: 200290439
* Add --print_workspace_in_output_paths_if_needed flag.Gravatar mstaib2018-06-12
| | | | | | | | | | | | | | | | When this flag is turned on, and the user's working directory is beneath the workspace (but is not the workspace itself), the workspace's absolute path is printed as a prefix to the convenience symlink. With this flag off, the displayed convenience symlink path is always relative to the user's workspace, even if that isn't the current working directory. (This is the current behavior.) The new (flag-on) behavior will become default soon, and then this flag will be removed. RELNOTES: None. PiperOrigin-RevId: 200278355