aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Cache SkylarkLookupImportValues in memory so that we don't recompute them ↵Gravatar shreyax2018-03-05
| | | | | | multiple times. PiperOrigin-RevId: 187941859
* Add --experimental_fix_deps_tool flag to BazelGravatar Googler2018-03-05
| | | | | RELNOTES: None PiperOrigin-RevId: 187936071
* remote: Add interceptor for logging gRPC calls during remote execution/cachingGravatar Googler2018-03-05
| | | | | | | | | | This provides a io.grpc.ClientInterceptor implementation that can be used to log gRPC call information. The interceptor can select a logging handler to use based on the gRPC method being called (Watch, Execute, Write, etc) to build a LogEntry, which can then be logged after the call has finished. Unit tests for the interceptor are included. In this change, the interceptor is never invoked, nor are there any handlers implemented for any gRPC methods. The interceptor also never tries to log any entries. To avoid circular dependency issues (Remote library will depend on logger which depends on remote library for utils), I've factored out the utility classes from the remote library into their own directory/package as part of this change. PiperOrigin-RevId: 187926516
* @AutoCodec for TypeGravatar shahan2018-03-05
| | | | | | Needed for Attribute serialization. PiperOrigin-RevId: 187907727
* Fix missing singlejar on arm and windowsGravatar Pascal Terjan2018-03-05
| | | | | | | | This was broken by the jar being renamed from SingleJar_deploy.jar to bazel-singlejar_deploy.jar in commit 6705b508fe069147c853ca9669363342f3527689 (Fixes #3988) Closes #4642. PiperOrigin-RevId: 187880736
* Fix CppToolchainProvider to get unfiltered compiler flags from theGravatar John Cater2018-03-05
| | | | | | | actual toolchain, not the CppConfiguration. Change-Id: I9cb74a883d3041ee2c31d294c0a1a36df578f738 PiperOrigin-RevId: 187880704
* Automated rollback of commit 96145511b34a2d7be834e3eb05927674e875c813.Gravatar janakr2018-03-05
| | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Fixed issue that led to rollback. RELNOTES: None *** Original change description *** Automated rollback of commit eee53d3a33dde441f7e7adaecde81ef2d3db7c1b. *** Reason for rollback *** breaks Blaze_CorpTest *** Original change description *** @AutoCodec ConfiguredTargetValue. PiperOrigin-RevId: 187869560
* Add log line to show that we're scanning for ObjectCodecs.Gravatar janakr2018-03-05
| | | | PiperOrigin-RevId: 187868296
* Move action graph dump methods into the ActionGraphDump class.Gravatar twerth2018-03-05
| | | | | RELNOTES: None PiperOrigin-RevId: 187865083
* runfiles,C++: create envvar list for subprocessesGravatar Laszlo Csomor2018-03-05
| | | | | | | | | | | | | | | | Implement Runfiles::EnvVars so it's now possible to propagate runfiles to subprocesses via environment variables (RUNFILES_MANIFEST_FILE and RUNFILES_DIR). Subsequent commits will add more feataures: - automatic Runfiles creation based on argv[0] and the envvars of this process See https://github.com/bazelbuild/bazel/issues/4460 Change-Id: If9a37b1be13b9cbacf21a496305d60444fd660b2 PiperOrigin-RevId: 187858830
* Add experimental_drop_fully_static_linking_modeGravatar hlopko2018-03-05
| | | | | | | | | | | | | | | | | | | | | When this option is set to true, then bazel will not scan linkopts for -static and will therefore never set linking mode to fully_static. This option will be used to flip the switch once the world is migrated away from fully static linking mode. RELNOTES: C++: Introduced --experimental_drop_fully_static_linking_mode Fully static linking mode will be removed soon. This option allows you to test if your build will be passing. Strategy for migrating away from fully static linking mode is to define a crosstool feature named `fully_static_link`, enable it from the target (by adding `features = [ "fully_static_link" ]`), and make sure the target is build with `linkstatic = 1`. Buildozer command that will do just that is: buildozer 'remove linkopts -static' 'set linkstatic 1' 'add features fully_static_link' //foo:bar PiperOrigin-RevId: 187856775
* Cleanup linking input computation in CppLinkActionBuilderGravatar hlopko2018-03-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 187855919
* Increase timeout to "long" for:Gravatar twerth2018-03-05
| | | | | | | | | | | //src/test/shell/bazel/android:android_ndk_integration_test and //src/test/shell/bazel:bazel_test_test They're timing out on Kokoro recently. RELNOTES: None PiperOrigin-RevId: 187853786
* Split ActionGraphDump into its own class.Gravatar twerth2018-03-05
| | | | | RELNOTES: None PiperOrigin-RevId: 187852219
* Do not upload link inputs of the linkstamp compile actions to the executorGravatar hlopko2018-03-05
| | | | | | | | | | | | | | | | | Link inputs are there only to invalidate the action, they don't affect the execution of the compile action. This cl optimizes the action execution by not having to collect unnecessary inputs into the sandbox. Since this is CppCompileAction and nothing is easy here, let me elaborate on my assumptions. The goal of this cl is to stop passing unneeded inputs into Spawns. This is implemented by introducing a dispensableInputs field to the CppCompileAction. SpawnGccStrategy then doesn't forward these further. I'm not adding dispensableInputs to the ActionKey. I think it's enough to put them to the inputs and into the updateActionInputs method. RELNOTES: None. PiperOrigin-RevId: 187849482
* Automated rollback of commit eee53d3a33dde441f7e7adaecde81ef2d3db7c1b.Gravatar dannark2018-03-04
| | | | | | | | | | | | *** Reason for rollback *** breaks Blaze_CorpTest *** Original change description *** @AutoCodec ConfiguredTargetValue. PiperOrigin-RevId: 187783702
* Get rid of almost all Skylark codecs. We need to introduce a wrapper to turn ↵Gravatar janakr2018-03-03
| | | | | | | | ObjectCodec into a MEMOIZE_AFTER MemoizingCodec. I think that this is safe, because all the codecs that are being wrapped this way weren't memoizing anything internally that I could see. In order to @AutoCodec the WithValue type, which is generic and can have null elements in lists, add functionality to @AutoCodec to deal with generic type static instantiators, matching generic type arguments (although I'm not sure why that wasn't already working), and null elements in lists. PiperOrigin-RevId: 187740461
* Escape tag in android_local_test documentation.Gravatar dannark2018-03-03
| | | | | RELNOTES: None PiperOrigin-RevId: 187734792
* Allow --classpath_entry to be empy.Gravatar cnsun2018-03-02
| | | | | | RELNOTES:None. PiperOrigin-RevId: 187711775
* Replace LegacySkyKey by AbstractSkyKey or custom SkyKeys. AbstractSkyKey ↵Gravatar janakr2018-03-02
| | | | | | | | doesn't save memory in the 32-bit case, but makes it easier for people to see how many SkyKeys we have. There's some unnecessary interning in tests, but it was easier to copypasta and doesn't harm anything, I think. PiperOrigin-RevId: 187694309
* Fix SkylarkCallableProcessor test source package to appropriately reflect ↵Gravatar cparsons2018-03-02
| | | | | | | the directory RELNOTES: None. PiperOrigin-RevId: 187692669
* Delete F5 JarDexer.Gravatar Googler2018-03-02
| | | | | | | | The only two remaining users are for JAR, so directly call into BazelJavaBuilder rather than through our multiplex tool. This requires opening the visibility of BazelJavaBuilder up to public. PiperOrigin-RevId: 187690855
* BEP: Add a --build_event_publish_all_actions flag to allow all actions to be ↵Gravatar ruperts2018-03-02
| | | | | | | published via the BEP, instead of only publishing failed actions and extra actions. RELNOTES: Add a --build_event_publish_all_actions flag to allow all actions to be published via the BEP. PiperOrigin-RevId: 187683799
* Optimize GC usage of iterating over all elements of GroupedLists when we ↵Gravatar shreyax2018-03-02
| | | | | | don't care about the group structure, and simplify the logic for prefetching old deps. PiperOrigin-RevId: 187681887
* @AutoCodec for ConfigurationTransition subclasses.Gravatar shahan2018-03-02
| | | | | | Needed for Attribute serialization. PiperOrigin-RevId: 187676061
* emulate dynamic dispatch of emulated default interface methodsGravatar kmb2018-03-02
| | | | | | RELNOTES: None. PiperOrigin-RevId: 187671513
* Fix stray ')' in RecursivePkgKey toStringGravatar mschaller2018-03-02
| | | | | RELNOTES: None. PiperOrigin-RevId: 187671277
* Add Android NDK r16 support for Bazel.Gravatar jingwen2018-03-02
| | | | | | | | | | | | | | | | | | | | | | | | Changelog: https://android.googlesource.com/platform/ndk/+/ndk-release-r16/CHANGELOG.md > The deprecated headers have been removed. Unified Headers are now simply The Headers. Support for this was added in r15. > libc++ is out of beta and is now the preferred STL in the NDK. Starting in r17, libc++ is the default STL for CMake and standalone toolchains. If you manually selected a different STL, we strongly encourage you to move to libc++. For more details, see this blog post. We bind the default `//external:android/crosstool` in AndroidNdkRepositoryRule before the repository function is evaluated, so changing the default STL will affect the older NDK revisions too. Until we have a new mechanism to specify the default crosstool, users will need to use `--android_crosstool_top=@androidndk//:toolchain-libcpp` to use `libc++`. > GCC, armeabi, mips, mip64 are deprecated but still buildable/useable. We can remove support for these in the r17 configuration. There are no other actionable differences between r15 and r16, so we can reuse the r15 configuration for r16. RELNOTES: Added Android NDK r16 support. Use --cxxopt='-std=c++11` compile with the C++11 standard, and `--android_crosstool_top=@androidndk//:toolchain-libcpp` to use the `libc++` STL. Fixes https://github.com/bazelbuild/bazel/issues/4068 PiperOrigin-RevId: 187664390
* Add Android NDK r15 support for Bazel.Gravatar jingwen2018-03-02
| | | | | | | | | | | | | | | | | | | | | NDK15 changelog: https://android.googlesource.com/platform/ndk/+/ndk-r15-release/CHANGELOG.md Notable changes for this CL: - Clang has been updated to v5.0.300080. - android-9 is not supported anymore. Anything lower than android-14 will default to android-14. - NDK sysroot has been changed to %ndk%/sysroot - Requires additional compilation flags because the headers are now unified in a single location across archs and API levels Also removed NDK 10 checks in integration tests because it is old and we don't test against that anymore. Fixes https://github.com/bazelbuild/bazel/issues/3137 Paves the way for r16: https://github.com/bazelbuild/bazel/issues/4068 RELNOTES[NEW]: Added Android NDK r15 support, including compatibility with Unified Headers. PiperOrigin-RevId: 187648715
* Revamp docs for ctx.outputsGravatar brandjon2018-03-02
| | | | | | | Explain the deprecation of ctx.outputs.executable. RELNOTES: None PiperOrigin-RevId: 187640408
* Revamp discussion of executable/test rulesGravatar brandjon2018-03-02
| | | | | | | Rewrite that part of rules.md and update rule() docs. Also clarify the Action object's docs to put it in context. RELNOTES: None PiperOrigin-RevId: 187636896
* @AutoCodec ConfiguredTargetValue.Gravatar cpeyser2018-03-02
| | | | PiperOrigin-RevId: 187635570
* Add execution platform information to the action key.Gravatar John Cater2018-03-02
| | | | | | | | | | Needed so that actions are properly invalidated and re-run when the platform's remote execution properties change. Fixes #4756. Closes #4728. Change-Id: Ia227d110c10c9aad2164cefa8a90361cc4359332 PiperOrigin-RevId: 187621349
* Allow cc_toolchain to have inline proto toolchain data, instead of using ↵Gravatar John Cater2018-03-02
| | | | | | | crosstool top. Change-Id: I531034b0c991d18b05818db4b40cbd739535b565 PiperOrigin-RevId: 187617580
* ci,windows: fix "bazel-rules-tests"Gravatar Laszlo Csomor2018-03-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the failing test in //src/test/java/com/google/devtools/build/lib:bazel-rules-tests on Windows. The problem was that the test setup read a resource file and assumed line endings to be "\n", but on Windows this resource file was generated with "\r\n" endings. The test setup code then put those strings into a set. Finally, the test tried to match a string in this set, but because the entries had an invisible "\r" at the end, the matching failed. This commit trims the entries before putting them in the set. Fixes https://github.com/bazelbuild/bazel/issues/4752 Closes #4754. PiperOrigin-RevId: 187608803
* Add option to filter for targets in the action graph dump.Gravatar twerth2018-03-02
| | | | | RELNOTES: Use bazel dump --action_graph=/path/to/action.proto --action_graph:targets://foo:bar,//foo:foo to filter for certain targets in the action graph dump. PiperOrigin-RevId: 187608321
* C++: Exposes to Skylark basic API functionalityGravatar plf2018-03-02
| | | | | RELNOTES:none PiperOrigin-RevId: 187591225
* Improve error message of import_deps_checker.Gravatar cnsun2018-03-01
| | | | | RELNOTES: None. PiperOrigin-RevId: 187571707
* Make JavaCompileAction and friends emit new-style arguments.Gravatar tomlu2018-03-01
| | | | | | | | | Instead of --direct_dependency, --indirect_dependency args we now emit --direct_dependencies. We no longer need to emit any jar owner information since that is baked into the jar by JavaBuilder. This CL also contains the deletion of CustomMultiArgv and the injecting_rule_kind aspect parameter, as the deleted code was the last remaining usage. RELNOTES: None PiperOrigin-RevId: 187558628
* Android desugar config options to exclude methods from interface emulationGravatar kmb2018-03-01
| | | | | | RELNOTES: None. PiperOrigin-RevId: 187551970
* Create --incompatible_disable_objc_provider_resources to disable deprecated ↵Gravatar cparsons2018-03-01
| | | | | | | | | objc provider skylark fields. This flag is not fully implemented -- there should also be a way to disable the provider getters using this flag, but, since @SkylarkCallable does not allow for evaluation of SkylarkSemantics, this is not yet possible. RELNOTES: None. PiperOrigin-RevId: 187542004
* Add target name to android_device boot step action.Gravatar ajmichael2018-03-01
| | | | | RELNOTES: None PiperOrigin-RevId: 187539005
* Migrate a few trivial uses of @SkylarkSignature to use @SkylarkCallable insteadGravatar cparsons2018-03-01
| | | | | RELNOTES: None. PiperOrigin-RevId: 187531006
* Add AndroidDex2OatInfo to Skylark.Gravatar Googler2018-03-01
| | | | | RELNOTES: None PiperOrigin-RevId: 187530224
* Migrate some users of useAst to useLocationGravatar cparsons2018-03-01
| | | | | | | (It's good to avoid passing around more information than one needs, and FuncallExpression is pretty heavy when only a Location is necessary) RELNOTES: None. PiperOrigin-RevId: 187529568
* Remove hacky cast now that Copybara is updated to use GlobalFrameGravatar nharmata2018-03-01
| | | | | | | (https://github.com/google/copybara/commit/77a0e68eb0b044449b412e939ad25d500d2c12d3). RELNOTES: None PiperOrigin-RevId: 187525928
* Introduce a specific action_config for linking nodeps dynamic librariesGravatar hlopko2018-03-01
| | | | | | | | | | | | | With this cl toolchain author can specify different flags for linking shared library produced by cc_library and a shared library produced by cc_binary. This is what is needed to remove linking_mode_flags - MOSTLY_STATIC_LIBRARIES from the crosstool. What this linking mode was used for was to separate when we link transitive shared library from cc_binary and when we link this little-and-not-really-useful-outside-of-bazel nodeps shared library in cc_library. RELNOTES: CcToolchain: Introduced action_config for "c++-link-transitive-dynamic-library" PiperOrigin-RevId: 187523334
* send invocations to emulated interfaces through dispatch helper.Gravatar kmb2018-03-01
| | | | | | | fix logic for implementing emulated interfaces. RELNOTES: None. PiperOrigin-RevId: 187520298
* Make the distinction between "global frame" and "lexical frame" explicit. As ↵Gravatar nharmata2018-03-01
| | | | | | | a nice consequence, this lets us reduce GC churn since we no longer need to create a frame instance for the lexical frame at a callsite of either a function when the environment is frozen or a builtin function (since builtins cannot modify bindings in their lexical frame). RELNOTES: None PiperOrigin-RevId: 187495787
* Fixing issue with external j2objc protosGravatar Mike Lewis2018-03-01
| | | | | | | | | | | | | | | | | | | | | | | The output files are created without a repository, but the expected filenames have them This resolves issues when having a proto_library from an external build file. This seems to be a regression, so maybe should go into the 0.8.0 branch? Note: Work at Square and we have a signed CLA with google Note, without this fix we get errors like ``` ERROR: /private/var/tmp/_bazel_lewis/4a25cfc2b9b758043413ac58525ef6b4/external/AllProtos/BUILD.bazel:27:1: output 'external/AllProtos/squareup/objc/objc.j2objc.pb.m' was not created ERROR: /private/var/tmp/_bazel_lewis/4a25cfc2b9b758043413ac58525ef6b4/external/AllProtos/BUILD.bazel:27:1: output 'external/AllProtos/squareup/objc/objc.j2objc.pb.h' was not created ``` Closes #4058. PiperOrigin-RevId: 187480864