aboutsummaryrefslogtreecommitdiffhomepage
Commit message (Collapse)AuthorAge
* Make the FileArtifactvalue of generated targets available via the ↵Gravatar kush2018-07-11
| | | | | | | | | | | | | | FilesetOutputSymlink whenever available. In this change I'm simply plumbing the FileArtifactValue we requested within RecursiveFilesystemTraversalFunction to the FilesetOutputSymlink. This does not work when the targets are output directories (or symlink to output dirs). The main scenarios this happens is when: 1. Fileset depends on the output dir created by a genrule. 2. Fileset depends on a GoAppengineBinary which creates an output dir. 3. Fileset depends on another Fileset in the non-recommended way (Fileset.entry.files = [<another_fileset>]) instead of the recommended way (FilesetEntry.srcdir = <another_fileset>). RELNOTES: None PiperOrigin-RevId: 204209612
* site: udpate remote caching docs. Fixes #5488Gravatar buchgr2018-07-11
| | | | | RELNOTES: None PiperOrigin-RevId: 204181375
* Fixed some typos in the Android NDK documentationGravatar jingwen2018-07-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 204173447
* Cleanup Optional usageGravatar corysmith2018-07-11
| | | | | RELNOTES:None PiperOrigin-RevId: 204170706
* Omit parts of BEP events (like stdout, stderr) when the associated artifact ↵Gravatar tomlu2018-07-11
| | | | | | | uploader cannot upload a particular file. RELNOTES: None PiperOrigin-RevId: 204167372
* Documentation for Android NDK support with BazelGravatar jingwen2018-07-11
| | | | | | | Example workspace: https://github.com/bazelbuild/examples/pull/66/files RELNOTES: None. PiperOrigin-RevId: 204162234
* Change some core semantics of skydoc.Gravatar cparsons2018-07-11
| | | | | | | | - Change Skydoc to only document exported symbols in the target file, instead of all exported symbols in the transitive dependencies of the target file. This circumvents a prior error scenario where main.bzl could depend on dep.bzl, and both export a rule named ?my_rule?, which would result in a conflict. - Offer the option to specify whitelisted symbols for which to output documentation, allowing a user to only request documentation for a subset of rules defined in a given file. This allows more granular control of documentation layout. RELNOTES: None. PiperOrigin-RevId: 204161197
* Fix closing bracket for URLGravatar Googler2018-07-11
| | | | PiperOrigin-RevId: 204160729
* Move caching to BuildOptions instead of BuildConfigurationValue.Key.Gravatar mjhalupka2018-07-11
| | | | PiperOrigin-RevId: 204154609
* Pass options to BuildEventArtifactUploaderFactory.Gravatar tomlu2018-07-11
| | | | | | | The artifact uploaders may need command-level options. RELNOTES: None PiperOrigin-RevId: 204151808
* Refactor handling of API generation in JavaPluginInfoProviderGravatar cushon2018-07-11
| | | | | | | | | | | | Instead of keeping two copies of state for the API-generating and non-API-generating cases, create a 'JavaPluginInfo' abstraction to contain all state for each case, and then keep two copies in the top-level JavaPluginInfoProvider provider. This will make it easier and less error-prone to add additional state to the provider. PiperOrigin-RevId: 204151605
* Add attribute information to skydoc outputGravatar cparsons2018-07-11
| | | | | RELNOTES: None. PiperOrigin-RevId: 204147228
* Simplify dSYM handlingGravatar Googler2018-07-11
| | | | | | | | | | | | | | - Previously we would zip the output of dsymutil and then proceed to unzip it. Due to the size of dSYM files, this could add a few seconds to all builds with dSYMs. - There's no need to have a DsymOutputType or even Info.plist as all we need is the DWARF symbol file; the dSYM is repackaged later on by the bundler. This change is synchronized with the CROSSTOOL and wrapped_clang via the `no_dsym_create_zip` feature, which Bazel sets on the CROSSTOOL to inform wrapped_clang that no zip file should be created for the dSYM. PiperOrigin-RevId: 204134986
* Deprecate py_extension "outs" attribute.Gravatar Googler2018-07-11
| | | | | RELNOTES: PiperOrigin-RevId: 204126150
* Deletes Multimap marshaller. Superceded by MultimapCodec.Gravatar shahan2018-07-11
| | | | PiperOrigin-RevId: 204121958
* Remove the "slow read" warning when using multi-threaded digesting.Gravatar philwo2018-07-11
| | | | | | | | | | Calculating the throughput of a digest operation and using it to assess whether I/O is slow or not only makes sense when we're doing sequential I/O. With parallel hashing, it's expected that individual operations are slow due to how the scheduler works, but it doesn't mean that the overall progress is slow. RELNOTES: None. PiperOrigin-RevId: 204115311
* Skip fingerprinting stuff into a CppCompileAction's key that can only affectGravatar Googler2018-07-11
| | | | | | | | | the result of include validation if dotd file scanning (and in turn input validation) is disabled. Fingerprinting these data structures is costly as they are large NestedSets. RELNOTES: None. PiperOrigin-RevId: 204112075
* remote: unix socket support for remote http cachingGravatar buchgr2018-07-11
| | | | | | | | | | | This adds support for Unix sockets to Bazel for the remote http cache. See corresponding issue #5098 for discussion. RELNOTES: Introduce the --remote_cache_proxy flag, which allows for remote http caching to connect via a unix domain socket. PiperOrigin-RevId: 204111667
* Remove the experimental section on the website.Gravatar laurentlb2018-07-11
| | | | | | | | The page https://docs.bazel.build/versions/master/experimental.html is not useful. The only link is also available via the `Bazel and Apple` section. RELNOTES: None. PiperOrigin-RevId: 204110632
* [Skylint] Fix a crash on analyzing augmented assignment to IndexExpression.Gravatar Taras Tsugrii2018-07-11
| | | | | | | | | | | | | | | | | | Fixes #5534. Skylint was operating under assumption that all lvalues have a single bound identifier, which is not true for `IndexExpression`s like ``` d["foo"] += "bar" ``` As a result, Skylint would crash. This change makes it handle cases without bound identifiers gracefully. Ideally `IndexExpression` assigments should be analyzed too, but it's a more involved change. Closes #5535. PiperOrigin-RevId: 204109060
* Use default shell env for Python sha256 toolGravatar Clint Harrison2018-07-11
| | | | | | | | Until we have more complete support for Python runtime/toolchain configurations, it's useful for the hash tool to support `--action_env`, so the user's PATH can optionally be searched by the `py_binary` wrapper. Closes #5451. PiperOrigin-RevId: 204108228
* Fix obvious bug. I am not going to write a test as this function doesn't evenGravatar Googler2018-07-11
| | | | | | | seem to be used. RELNOTES: None. PiperOrigin-RevId: 204084726
* Automated rollback of commit 3ea6c18a623d6495a81f12baace40d3bc8a72bbe.Gravatar lberki2018-07-11
| | | | | | | | | | | | | | | *** Reason for rollback *** Breaks non-Rabbit builds, see b/111275650. *** Original change description *** Avoid long, duplicated directory structures. In the common case, generated 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: 204084475
* [singlejar] Various portability fixes for MSVCGravatar Loo Rong Jie2018-07-10
| | | | | | | | | | | | | | | - MSVC does not have `errx` functions, so use `diag_errx` etc. instead. - Fix format when trying to print `size_t`, use `%zu` so that the function will handle 32/64-bit `size_t` according to target system automatically. - Adding/guarding a few includes for MSVC. - MSVC does not have `ssize_t`, so replace it with `ptrdiff_t` #2241 /cc @laszlocsomor Closes #5499. PiperOrigin-RevId: 204074420
* Retry ensureInputsPresent/execute/downloadGravatar George Gensure2018-07-10
| | | | | | | | This observably removes any ill effect of CAS transience. Closes #5229. PiperOrigin-RevId: 204010317
* Remove outdated TODOGravatar juliexxia2018-07-10
| | | | | RELNOTES: None. PiperOrigin-RevId: 203977219
* C++: Exposes new parameters of C++ Skylark API.Gravatar plf2018-07-10
| | | | | | | This will be needed by py_wrap_cc in a follow up CL. RELNOTES:none PiperOrigin-RevId: 203964457
* Improve MSVC CrosstoolGravatar Loo Rong Jie2018-07-10
| | | | | | | | | | | | | | | | | | | | - Remove `/D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS`: it disables warnings for deprecated C++ headers (`<stdext/*>`, `<hash_map>` etc.). Only useful for legacy codebase. - Remove `/J`: `char` is signed according to ISO C++. There is no reason to make `char` unsigned by default. - Remove default `/Gy`: moved to feature (`smaller_binary`). - Remove default `/GF`: string pooling, enabled by default with `/O2`. - Remove `/DDEBUG` in `dbg` mode: conflict with macros defined in some OSS projects such as LLVM. User should use standard `NDEBUG` to detect debug mode. Implements a few general `feature` to abstract away details about the compiler: - `treat_warnings_as_errors`: aka `-Werror`. - `frame_pointer`: aka `-fno-omit-frame-pointer'. - `determinism`: redact `__TIME__` macros etc. - `disable_assertions`: allow user to have `assert/DCHECK` back even in `opt` mode. - `smaller_binary`: common optimization enabled in `opt` mode. Still allow user to disable it in `opt` (such as when using ASAN). - `ignore_noisy_warnings`: suppress a bunch of warnings most people don't care. If users want to be pedantic, they can still get those warnings back with `--features=-ignore_noisy_warnings`. Closes #5519. PiperOrigin-RevId: 203959555
* Remove Skylark calls to ctx.fragments.cpp fields that depend on CToolchain. ↵Gravatar juliexxia2018-07-10
| | | | | | | This is an intermediate step in migrating to the new Skylark API for the C++ toolchain. RELNOTES: None. PiperOrigin-RevId: 203955015
* Prepare CROSSTOOL for dSYM simplificationGravatar Googler2018-07-10
| | | | | | | | Currently dSYM information is propagated using a zip file emitted by the linking action which contains a dwarf file and plist. A second action then unzips said file, discards the plist and propagates the dwarf file. This CL is part of a change which makes the link action emit the dwarf file directly. This change adds logic to the CROSSTOOL and wrapped_clang to temporarily support both the old and new approaches using the presence of DSYM_HINT_DSYM_BUNDLE_ZIP as a signal as to which to use. After this change the new (and temporary) CROSSTOOL feature no_dsym_create_zip will allow suppressing DSYM_HINT_DSYM_BUNDLE_ZIP from being passed. Once the migration is complete we will remove both the signal variable and feature. PiperOrigin-RevId: 203954795
* Remove ToolchainContextException and make exception handling more robust.Gravatar John Cater2018-07-10
| | | | | Change-Id: Iefeab0de85541b963c6cc262339e73b79f630f8b PiperOrigin-RevId: 203952823
* When using find_cpp_toolchain, make sure the relevant attribute, ↵Gravatar juliexxia2018-07-10
| | | | | | | '_cc_toolchain' exists on the ctx being passed to this function. (I broke TAP once because I forgot to add the attribute. Perhaps not that helpful this late in the migration but doesn't hurt.) RELNOTES: None. PiperOrigin-RevId: 203947282
* Synchronize on process factory to inhibit ETXTBSYGravatar George Gensure2018-07-10
| | | | | | | | | | | | | | | | | | | | | | | | | | Refocus synchronization mechanism to cope with file descriptor set fork- induced races to more tightly constrain concurrent fork/exec pairs. This problem has been observed in bazel proper repeatedly, exhibiting as the iconic ETXTBSY - Text file busy in wide worker pool builds and tests. Evidence that this was discovered by @buchgr is in the comment and change to the embedded ExecutionService implementation, and the description of the race and the need for the synchronization was lifted from that scope to the JavaSubprocessFactory. This factory is a singleton and represents the gateway to all worker process execution, and serves as the correct lock primitive to ensure that file descriptor sets are not duplicated across forks, which gave rise to this issue. To test this, I demonstrated a reproducer presented at https://bugs.java.com/view_bug.do?bug_id=8068370 with 2.4% of invocations in that pathological case exhibiting the issue. With a functionally equivalent change - synchronizing around a processBuilder.start() call - as the only modification to the reproducer, no further failures of any kind were observed, over several hundred runs. Closes #5556. PiperOrigin-RevId: 203947224
* Document differences between version and version_fileGravatar katre2018-07-10
| | | | | | | | | Add to the documentation that version_file and release_file cannot be used to generate an output with the N-V-R.A naming scheme. Fixes #5522. Closes #5555. PiperOrigin-RevId: 203946762
* Windows,tests: port bazel_build_event_stream_testGravatar Laszlo Csomor2018-07-10
| | | | | | | | | | | | //src/test/shell/bazel:bazel_build_event_stream_test now runs on Windows. See https://github.com/bazelbuild/bazel/issues/4292 Closes #5560. Change-Id: Ica3d59fb6f557c85d2fd646cf005ffd831046119 PiperOrigin-RevId: 203945734
* Remove old implementation for object file pathGravatar pcloudy2018-07-10
| | | | | | RELNOTES: --experimental_shortened_obj_file_path is removed. PiperOrigin-RevId: 203944948
* Track additionallyPrunableIncludes separately from declaredIncludeSrcs (don'tGravatar Googler2018-07-10
| | | | | | | | | | | | | | | | | | compose a nested set encompassing both). The current prunableHeaders were used in various places, at least two of which let to a duplicate iteration through the comparatively large declaredIncludeSrcs: CppCompileAction.computeKey() and CppCompileAction.getAllowedDerivedInputs(). Also do some other minor optimizations: - CcCompileActionBuilder.buildAllInputs() now just returns a NestedSet with the same order as its parameter. As inputsForValidation is almost always empty, this makes this NestedSet pass the underlying one through. - CcCompilationContext.directModuleMaps is just a list of the module maps of direct dependencies. As such, there is no use for keeping them in a NestedSet. RELNOTES: None. PiperOrigin-RevId: 203938011
* Bazel server, VFS: revert to using asByteSourceGravatar laszlocsomor2018-07-10
| | | | | | | | | | | | | | | | | | commit 59f17d6e0550bf63a0b6ef182e2d63474e058ede updated files to use try-with-resources when dealing with streams. The change also got rid of asByteSource, replacing it with throw-away ByteSource instances wrapping a try-with-resources-guarded InputStream. Doing so was unnecessary though, because all ByteSource methods (except for open[Buffered]InputStream) close the stream. Thanks to @jbduncan to point that out and explain in detail [1]. [1] see comment thread on https://github.com/bazelbuild/bazel/commit/59f17d6e0550bf63a0b6ef182e2d63474e058ede under `FilesetManifest.java` RELNOTES: none PiperOrigin-RevId: 203934830
* Only compile a single source file once for a given cc_* rule.Gravatar lberki2018-07-10
| | | | | RELNOTES: None. PiperOrigin-RevId: 203934582
* Bazel server, tools: ensure Writers are closedGravatar laszlocsomor2018-07-10
| | | | | | | | | | | | | | | | | | | | Follow-up to commit 09d20311d982606093ed881d779bb05a5ee70ed3. Use try-with-resources to ensure Writer objects are closed eagerly. Eagerly closing Writers avoids hanging on to file handles until the garbage collector finalizes the object, meaning Bazel on Windows (and other processes) can delete or mutate these files. Hopefully this avoids intermittent file deletion errors that sometimes occur on Windows. See https://github.com/bazelbuild/bazel/issues/5512 RELNOTES: none PiperOrigin-RevId: 203934471
* Use generic classes instead of cquery specific class.Gravatar twerth2018-07-10
| | | | | | | Also introduce NamedThreadSafeOutputFormatterCallback for common code. RELNOTES: None PiperOrigin-RevId: 203932877
* pkg: fix documentation (docker -> archive)Gravatar Klaus Aehlig2018-07-10
| | | | | | | pkg_tar creates an archive, not a docker image. Change-Id: I402bd8fdb67c38cd67a3990b983aa3b6d912da37 PiperOrigin-RevId: 203932291
* buildkite: re-enable determinism test on macOSGravatar buchgr2018-07-10
| | | | | RELNOTES: None PiperOrigin-RevId: 203931666
* Update third_party/protobuf to 3.6.0Gravatar Loo Rong Jie2018-07-10
| | | | | | Fixes #5439. PiperOrigin-RevId: 203917717
* third_party/protobuf: update protobuf in third_party to version 3.6.0Gravatar Jakob Buchgraber2018-07-10
| | | | Split out from https://github.com/bazelbuild/bazel/pull/5439
* Restructure the NestedSet usage in CcCompilationContext. Goals:Gravatar Googler2018-07-10
| | | | | | | | | | | | | | | | | | - Don't use NestedSets of NestedSets. Not sure whether this is a performance improvement or has serialization benefits, but it does make understanding the structure a lot easier. - Use the same large NestedSet for all header information (whether or not they are modular and what pregrepped headers might exist). This speeds up the include scanner calls getLegalGeneratedScannerFileMap and getModularHeaders because they now iterate over just a single NestedSet and the second evaluation of a NestedSet is much cheaper. In a subsequent change, we can likely fold all three iterations over this NestedSet into one (in getLegalGeneratedScannerFileMap, getModularHeaders and getUsedModules). Measurements show a small reduction in heap usage. RELNOTES: None. PiperOrigin-RevId: 203909308
* third_party/googleapis: sync error_details.protoGravatar Jakob Buchgraber2018-07-10
|
* Set INCLUDE and LIB env var for actions that actually need themGravatar Loo Rong Jie2018-07-10
| | | | | | | | | | This makes console output of `bazel build -s` shorter when debugging `CROSSTOOL`. /cc @meteorcloudy Closes #5539. PiperOrigin-RevId: 203899866
* Automatic code cleanup.Gravatar gregce2018-07-09
| | | | PiperOrigin-RevId: 203841642
* Pull up calls to ToolchainContext.resolvedToolchainLabels and finishGravatar John Cater2018-07-09
| | | | | | | ToolchainContext configuration earlier. Change-Id: I034f56a8a181aac19ecb38e51558ccdc6c0c7a6a PiperOrigin-RevId: 203835978