aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
Commit message (Collapse)AuthorAge
* Expose an actions provider on RuleConfiguredTarget instances.Gravatar cparsons2018-03-06
| | | | | | | | | Given a target (for example from a skylark aspect), one will be able to access a list of actions that the target generated using "target.actions". This is without additional memory footprint. Actions themselves are not fully exposed to skylark (and thus there isn't much meaning to gather from them in skylark yet). Access methods will follow soon. RELNOTES: None. PiperOrigin-RevId: 188098079
* Adding async proto or text logging utility class.Gravatar olaola2018-03-06
| | | | | | | WANT_LGTM=buchgr TESTED=unit tests, 500 runs per test RELNOTES: None PiperOrigin-RevId: 188093043
* @AutoCodec File{State}Value.Gravatar janakr2018-03-06
| | | | PiperOrigin-RevId: 188085895
* Use new android_tools_defaults_jar in tests.Gravatar Adam Michael2018-03-06
| | | | | | | | | | | | | | //tools/defaults:android_jar is a synthetic target that is being replaced by the regular target @bazel_tools//tools/android:android_jar in Bazel 0.11 and later. See cf097e4. Change-Id: I2cfc38a0dcd25f43985e75b386f9f1cadec86320 RELNOTES: None Closes #4785. Change-Id: I2cfc38a0dcd25f43985e75b386f9f1cadec86320 PiperOrigin-RevId: 188080503
* Make the builtins registry thread-safeGravatar brandjon2018-03-06
| | | | | | | | | | | | | | It was previously assumed that safety wasn't needed because 1) all builtins should be registered in static initializer blocks, and 2) all retrievals should occur during Skylark evaluation, after static initialization completes. It turns out these assumptions aren't actually true (Who would've thunk it!). SkylarkActionFactory has been observed to be initialized as late as analysis time, and retrievals occur as early as constructing a PackageFactory (when scanning the native module). The failure mode is particularly ugly: Random Skylark method lookups will fail non-deterministically. This change guards against this by making the builtins registry implement a form of freezing. Before freezing, reads and writes are allowed and are synchronized. After freezing, only reads are allowed and they are unsynchronized for performance. BlazeRuntime is responsible for flipping the bit, and for ensuring classes like SkylarkActionFactory run their initialization by that point. Unit tests don't need to worry, since they just stay unfrozen and synchronized throughout. RELNOTES: None PiperOrigin-RevId: 188080136
* Don't display remote exec failed message on interrupt. Fixes #4783Gravatar olaola2018-03-06
| | | | | | TESTED=manually RELNOTES: None PiperOrigin-RevId: 188079436
* Add proper serialization constructor and equals/hashCode for EnvironmentLabels.Gravatar janakr2018-03-06
| | | | PiperOrigin-RevId: 188078054
* @AutoCodec TransitiveTraversalValue, DirectoryListingStateValue.Gravatar janakr2018-03-06
| | | | PiperOrigin-RevId: 188077900
* Do not expose platform-related providers to Skylark.Gravatar John Cater2018-03-06
| | | | | | | | | | | | This prevents both creation and access to platform providers from Skylark. This is needed so we can load platforms directly from platform-rule targets without needing a full configured target, and to effiently distinguish platform providers from non-platform providers. Change-Id: I6b61f9ee7518d5e9311232908a922596e18fe32f PiperOrigin-RevId: 188070457
* Add documentation for JavaInfo constructor.Gravatar dbabkin2018-03-06
| | | | | RELNOTES:none PiperOrigin-RevId: 188066111
* Convert a bunch of non-AutoCodec classes to use @AutoCodec: ↵Gravatar janakr2018-03-06
| | | | | | BuildConfiguration, BuildOptions, CollectTargetsUnderDirectoryValue. PiperOrigin-RevId: 188059815
* Fix incomplete documentation changeGravatar brandjon2018-03-06
| | | | | | | | | This finishes a partial change erroneously submitted as part of https://github.com/bazelbuild/bazel/commit/864ac520951821bd197a02490d2b04f6246be7fa. The full outputs map behavior is still not fully described because its implementation is too complex. That requires a separate discussion. RELNOTES: None PiperOrigin-RevId: 188049028
* Automated rollback of commit f43df1e29765f75e02838e4139417e914b3ee812.Gravatar cparsons2018-03-06
| | | | | | | | | | | | | *** Reason for rollback *** Breaks external cc_proto_library. See https://github.com/bazelbuild/bazel/issues/4780 RELNOTES: None. *** Original change description *** Fixing issue with external j2objc protos PiperOrigin-RevId: 188041921
* Add a command line option to disallow vardef()s with three arguments.Gravatar lberki2018-03-06
| | | | | RELNOTES: None. PiperOrigin-RevId: 188038131
* Add wildcard support to AutoCodec.Gravatar mjhalupka2018-03-06
| | | | PiperOrigin-RevId: 188034513
* Implement support for sourceFiles parameter in JavaInfo constructor.Gravatar dbabkin2018-03-06
| | | | | RELNOTES:none PiperOrigin-RevId: 188026038
* Replace instances of XCode with Xcode which is the proper casing for the name.Gravatar Sergio Campama2018-03-06
| | | | | | Closes #4640. PiperOrigin-RevId: 188022228
* Split up action graph cache into multiple classes for cleaner code.Gravatar twerth2018-03-06
| | | | | RELNOTES: None PiperOrigin-RevId: 187997144
* Remove cc_inc_library from bazelGravatar hlopko2018-03-06
| | | | | | | | | | | | | It shouldn't be open sourced at all, since it solves a very specific internal use case, and for external use cc_library with its includes, include_prefix, and strip_include_prefix attributes can be used to perfectly replace cc_inc_library. RELNOTES: Removed cc_inc_library, please use cc_library instead Use includes, include_prefix, and strip_include_prefix attributes of cc_library to replace the behavior of cc_inc_library with cc_library. PiperOrigin-RevId: 187991313
* Re-evaluate workspace status when clientEnv changesGravatar Justin Santa Barbara2018-03-06
| | | | | | | | | | | | We pass the clientEnv to the workspace status command, and it may use environment variables to influence status. We must therefore reevaluate the workspace status command whenever the clientEnv changes. Fixes #4222 Closes #4705. PiperOrigin-RevId: 187988847
* Also get build-runfiles as an ActionInput for the symlink tree spawnGravatar ulfjack2018-03-06
| | | | | | | This isn't strictly necessary since we disable caching and require local execution. PiperOrigin-RevId: 187985476
* Remove references to the "message_log" from Bazel.Gravatar ruperts2018-03-05
| | | | | RELNOTES: None. PiperOrigin-RevId: 187974423
* @AutoCodec RepositoryName.Gravatar janakr2018-03-05
| | | | PiperOrigin-RevId: 187956593
* Serialize Path using AutoCodec.Gravatar janakr2018-03-05
| | | | PiperOrigin-RevId: 187945746
* 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