aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
Commit message (Collapse)AuthorAge
* Always use exactly two components in Xcode version featureHEADmasterGravatar bbaren2018-08-15
| | | | | | | | | | | | | | | | When setting the standard Xcode version feature (see commit eb952d08f76afa907bb34eaf7e1a69899102c523), always use exactly two components for the version number. Grouping all point releases together simplifies writing CROSSTOOLs. Also fix a bug in MockObjcSupport that prevented Xcode version selection in tests from working properly. RELNOTES: The standard `xcode_VERSION` feature now always uses exactly two components in the version, even if you specify `--xcode_version` with more or fewer than two. PiperOrigin-RevId: 208877588
* Clarify docs for ctx.actions.run_shell()'s command/argumentsGravatar brandjon2018-08-15
| | | | | | | | | | | - Clarified incompatibility between giving args and giving list of strings for command. - Added more detail about how $i expansion is done. - Removed incorrect indication that None is allowed for "command". RELNOTES: None PiperOrigin-RevId: 208877037
* Use ConcurrentHashMap instead of Cache where we aren't using any of theGravatar Googler2018-08-15
| | | | | | | | LoadingCache's capabilities. According to profiles, using ConcurrentHashMap is about 3x more efficient. RELNOTES: None PiperOrigin-RevId: 208874176
* Throw an EvalException when run_shell is passed both a command string ↵Gravatar cparsons2018-08-15
| | | | | | | | | | | sequence and arguments. Previously, this resulted in an uncaught UnsupportedOperationException. Closes #5892. RELNOTES: None. PiperOrigin-RevId: 208865301
* PiperOrigin-RevId: 208861891Gravatar shahan2018-08-15
|
* Support tree artifacts in target complete.Gravatar tomlu2018-08-15
| | | | | RELNOTES: None PiperOrigin-RevId: 208861642
* Remove the 3-arg minimum on shell actionsGravatar cparsons2018-08-15
| | | | | RELNOTES: None. PiperOrigin-RevId: 208855272
* Have DigestMap support multiple hash functions.Gravatar tomlu2018-08-15
| | | | | RELNOTES: None PiperOrigin-RevId: 208837641
* Filter out events from analysis when constructing execution-phase values in ↵Gravatar janakr2018-08-14
| | | | | | | | | | Skyframe. This avoids some unnecessary iteration over already-emitted events that can show up in profiles, and allows us to store execution-phase values a bit more compactly, since we don't need to carry around wrapper objects and nested sets everywhere. This crucially depends on the fact that we can't build a target in the execution phase without first having analyzed it in a separate Skyframe call. Skyframe normally propagates all events/posts up the graph because it must be able to emit them if a user requests a node that only transitively depends on the node that emitted an event. However, because we do analysis in a separate Skyframe call, any warnings/posts associated with the analysis nodes will be emitted then, and we don't need to propagate them into execution. PiperOrigin-RevId: 208767078
* Automated rollback of commit 37bd5f665aa614c6dc640c9d19852dd8d5efb0d8.Gravatar felly2018-08-14
| | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Rollforward with fix: Don't use Immutable map builder to agggregate Filesets. We may reach the same one via direct and indirect runfiles, so we need to allow for duplicate entries. *** Original change description *** Automated rollback of commit 3bace1b937934fb2cea6260067ecc1cdbe526847. *** Reason for rollback *** b/112583337 RELNOTES: None *** Original change description *** Track Fileset in artifact expansion. PiperOrigin-RevId: 208748163
* [Skylark] Avoid unnecessary subList invocations.Gravatar Taras Tsugrii2018-08-14
| | | | | | | | | | It's better to not add `self` positional argument if it's not needed, instead of adding it and removing it laster on. `subList` invoaction results in more allocations and CPU overhead when using positional args. Closes #5812. PiperOrigin-RevId: 208687360
* Skip __init__.py in __pycache__ dir.Gravatar Googler2018-08-14
| | | | | RELNOTES: None. PiperOrigin-RevId: 208683453
* Carry Fileset flags over to host configuration.Gravatar felly2018-08-14
| | | | | RELNOTES: None PiperOrigin-RevId: 208676674
* Create new config module that is responsible for creating BuildSetting ↵Gravatar juliexxia2018-08-14
| | | | | | | | | | descriptor objects. Build settings are units of configuration i.e. a key/value pair of a setting (e.g. cpu) and a value (e.g. ppc). A build setting descriptor is used to describe what kind of build setting a skylark rule is (if any at all). The BuildSettingDescriptor implementation of the API describes two facets of the build setting rule: the type of the value and whether or not the setting is settable on the command line. The methods exposed here will eventually be hooked up to a new parameter in the <code> rule() </code> function. Validation for these restrictions will also happen in a later CL attached to the same bug. PiperOrigin-RevId: 208669663
* Automated rollback of commit 3bace1b937934fb2cea6260067ecc1cdbe526847.Gravatar felly2018-08-14
| | | | | | | | | | | | | *** Reason for rollback *** b/112583337 RELNOTES: None *** Original change description *** Track Fileset in artifact expansion. PiperOrigin-RevId: 208658921
* Export constructors as global symbols.Gravatar Googler2018-08-14
| | | | | | | This CL also includes a fix for constructor names from the "Provider" module. Naming does not include the module's name now. (Provider.AndroidAssetsInfo() -> AndroidAssetsInfo()) RELNOTES: None PiperOrigin-RevId: 208658905
* test-wrapper: add empty impl + Bazel flagGravatar Laszlo Csomor2018-08-14
| | | | | | | | | | | | | | | | | | | | | | | This commit adds: - the skeleton implementation of the Windows native test wrapper - a depenency on the native test wrapper from test rules, through the new $test_wrapper rule attribute - the --windows_native_test_wrapper Bazel flag, which is currently a no-op See https://github.com/bazelbuild/bazel/issues/5508 Change-Id: I8df95c8ce8bab53c51c257698ec95416065a836e Closes #5854. Change-Id: I2ffc78bceec5dd867af775b5878f105fa87c3dba PiperOrigin-RevId: 208650699
* Add experimental option to do add local cpu usage values to the JSON profile.Gravatar twerth2018-08-14
| | | | | RELNOTES: None PiperOrigin-RevId: 208646319
* Explicitly cast ByteBuffer in clear() call to Buffer.Gravatar Tobias Werth2018-08-14
| | | | | | | | | | | | | This works around the following error: java.lang.NoSuchMethodError: java.nio.ByteBuffer.clear()Ljava/nio/ByteBuffer; at com.google.devtools.build.lib.profiler.Profiler$BinaryFormatWriter.run(Profiler.java:949) at java.lang.Thread.run(Thread.java:748) JDK 9 introduced an overloaded methods with covariant return type. Closes #5886. PiperOrigin-RevId: 208642556
* Mark FancyTerminalEventHandler.handle() as synchronized. A previous changeGravatar Googler2018-08-14
| | | | | | | | removed "sychronized" from Reporter.handle() as we want to be able to let EventHandlers care about their own synchronization. RELNOTES: None. PiperOrigin-RevId: 208628638
* Add exports attribute to proto_library.Gravatar twerth2018-08-14
| | | | | | | Note that it is currently only used by the java_proto_library family of rules (if enabled per flag). RELNOTES: None PiperOrigin-RevId: 208601730
* Fixes broken javadoc FilesetTraversalParams (getNestedTraversal should beGravatar shahan2018-08-13
| | | | | | getNestedArtifact). PiperOrigin-RevId: 208565138
* Order Skyframe evaluations in a priority queue, with all children of a given ↵Gravatar janakr2018-08-13
| | | | | | | | node having the same priority, later enqueueings having higher priority, re-enqueued nodes having highest priority, and new root nodes having lowest priority. Experimentally, this can save significant RAM (1.4G in some builds!) while not affecting speed. Also do a semi-drive-by deleting ExecutorFactory parameter to AbstractQueueVisitor, since it was always AbstractQueueVisitor.EXECUTOR_FACTORY. PiperOrigin-RevId: 208560889
* Fix MultisetSemaphore.Gravatar nharmata2018-08-13
| | | | | | | | | We use a fixed version of the previous algorithm. See the comments for details. Fancier algorithms exist. I thought of a cool one that makes use of BatchKeyedLocker (would give me an excuse to revive it, heh), but fancy algorithms would be overkill. As noted in the initial commit of NaiveMultisetSemaphore, performance isn't critical. RELNOTES: None PiperOrigin-RevId: 208560559
* Don't disable preverificationGravatar cushon2018-08-13
| | | | | | | to ensure output contains valid stack map tables. context: https://github.com/bazelbuild/bazel/issues/5855 PiperOrigin-RevId: 208555048
* Blacklists some classes for serialization.Gravatar shahan2018-08-13
| | | | PiperOrigin-RevId: 208554171
* Add a <code>getSkylarkOptions</code> helper function to all OptionsProviders.Gravatar juliexxia2018-08-13
| | | | | | This is to allow OptionsProviders to access the new skylark options which aren't held in a fragment class like native options and thus can't be accessed with the traditional <code>get</code> method. Currently this function isn't called anywhere and would just return an empty map. But in the future it will return a map of skylark flag names to values. PiperOrigin-RevId: 208552510
* Track Fileset in artifact expansion.Gravatar felly2018-08-13
| | | | PiperOrigin-RevId: 208549418
* Set the default strategy of DexBuilder to use persistent workers.Gravatar jingwen2018-08-13
| | | | | | | | | This brings 1.2x speedup to clean local Android builds. Fixes https://github.com/bazelbuild/bazel/issues/5771 RELNOTES: For Android incremental dexing actions, Bazel now persists its DexBuilder process across individual actions. From our benchmarks, this results in a 1.2x speedup for clean local builds. PiperOrigin-RevId: 208546936
* Add experimental tool to turn Bazel Json profiles into graphs.Gravatar twerth2018-08-13
| | | | | RELNOTES: None PiperOrigin-RevId: 208509424
* Add easy access to MessageDigests in DigestHashFunctionGravatar ccalvarin2018-08-13
| | | | | | | Move the message-digest cloning to DigestHashFunction and out of Fingerprint, to make it possible to configure Fingerprint to use different hash functions. We keep the default MD5 for now, we'd like it to use the global default but want to isolate the configuration change from any change adding potential contention. RELNOTES: None. PiperOrigin-RevId: 208502993
* Fix lock contention in Reporter.startTask/.finishTask by:Gravatar Googler2018-08-13
| | | | | | | | | | | | - Using a thread-safe container to store handlers. - Using a ThreadLocal NumberFormat to produce readable action counts. NumberFormat (or rather the default implementation DecimalFormat) use internal state and locking. - Adding a lock-free fast path for START and FINISH events in ExperimentalEventHandler. RELNOTES: None. PiperOrigin-RevId: 208479896
* Add new class to create cpu usage time series.Gravatar twerth2018-08-13
| | | | | RELNOTES: None PiperOrigin-RevId: 208462186
* bazel: handle proto_src_root when dealing with proto includes, generated ↵Gravatar Googler2018-08-13
| | | | | | | | | | files and C++ headers This change completes the handling of proto_src_root when it comes to inclusion of protos, generating the proto files in the right place and adding the generated headers to the include paths. WANT_LGTM=elenairina RELNOTES: None. PiperOrigin-RevId: 208457740
* ActionAnalysisMetadata exposes whether loose headers are present. ↵Gravatar shahan2018-08-12
| | | | | | TransitiveVersionTable uses futures. PiperOrigin-RevId: 208402465
* Use NestedSets to store topLevelModules and discoveredModules. Also improveGravatar Googler2018-08-11
| | | | | | | | computeTransitivelyUsedModules to return early on missing values instead of starting to create datastructures. RELNOTES: None. PiperOrigin-RevId: 208351193
* Only remember discovered modules for modules. For all other compiles, we won'tGravatar Googler2018-08-11
| | | | | | | need them later. RELNOTES: None. PiperOrigin-RevId: 208345603
* Refactoring of SkyFunctionEnvironment to iterate over events/postables only ↵Gravatar janakr2018-08-10
| | | | | | | | | | | | when they're actually being put into a committed value. The previous behavior submitted deps' events twice, when the dep was added and when the node finished building. The intention is to build on this refactoring to cut off events/postables across the analysis-execution boundary, so that actions are not carrying around nested sets of warnings coming from their configured targets. This will be safe because to execute an action, we must already have analyzed its configured target, so the warning would have been emitted there. As can be seen from the changed test, this is not a pure behavior no-op. We will now emit cached events slightly later, on value committal, rather than on first dep declaration. This should not be an issue: since the events are cached, the user must have already seen them on a prior build, so the delay should not be important. Inversely, we now report events slightly more quickly during bubbling up, since we report them at each stage, as opposed to just at ParallelEvaluator evaluation completion. PiperOrigin-RevId: 208316502
* PiperOrigin-RevId: 208245798Gravatar mjhalupka2018-08-10
|
* Do not crash when attempting to upload a tree artifact.Gravatar tomlu2018-08-10
| | | | | | | These show up as directories. Filter these out and return null from the path converter, which should cause omission of those files from any build events. RELNOTES: None PiperOrigin-RevId: 208244910
* Add more detailed reporting of the differences between startup options.Gravatar skainswo2018-08-10
| | | | | | | This changes the logging logic slightly to support diffing startup options between different runs that have different numbers of args. RELNOTES: Add more detailed reporting of the differences between startup options. PiperOrigin-RevId: 208239665
* Automated rollback of commit 9374ecf94ce44e8bc56e68678cb512abf4cf9ce2.Gravatar felly2018-08-10
| | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Rollforward with deduplication of traversals and regression test. RELNOTES: None *** Original change description *** Automated rollback of commit 39974a43abdd32e3a1acbc7da945b08da9983e4e. *** Reason for rollback *** b/112458627 *** Original change description *** Allow skyframe-aware actions to pass partial results through ActionExecutionContext. Remove FilesetProvider. PiperOrigin-RevId: 208231719
* Adds a flag --experimental_includes_attribute_subpackage_traversal to toggle ↵Gravatar shahan2018-08-10
| | | | | | wildcarding on the presence of an includes attribute. PiperOrigin-RevId: 208225306
* Combine prefix event and payload stdout/stderrGravatar Klaus Aehlig2018-08-10
| | | | | | | | | ...in a single event instead of relying on the synchronisation on the reporter. In this way, it will be possible to focus on output of errors, and also to deduplicate warnings. Change-Id: I9669e8497ca6e22a01f3e285ec9ee42c1ecf3fb5 PiperOrigin-RevId: 208223882
* Persist mappings from original command line patterns to expanded labels in ↵Gravatar Googler2018-08-10
| | | | | | TargetParsingCompleteEvent. PiperOrigin-RevId: 208217102
* Automated rollback of commit 39974a43abdd32e3a1acbc7da945b08da9983e4e.Gravatar felly2018-08-10
| | | | | | | | | | | | | *** Reason for rollback *** b/112458627 *** Original change description *** Allow skyframe-aware actions to pass partial results through ActionExecutionContext. Remove FilesetProvider. PiperOrigin-RevId: 208213955
* Flip defaults value of experimental_enable_tools_defaults_package to off.Gravatar dbabkin2018-08-10
| | | | | | | | | After this changes blaze will not use in-memory //tools/defaults package. Instead of that blaze will read //tools/defaults/BUILD file from file system. Which is empty for bazel. RELNOTES:none PiperOrigin-RevId: 208206605
* Add critical path as fake thread 0 to the JSON profile.Gravatar twerth2018-08-10
| | | | | RELNOTES: None PiperOrigin-RevId: 208195833
* Introduce a retriever for logging handler properties.Gravatar arostovtsev2018-08-10
| | | | | | | | | | | We want a way for Bazel to find a logging handler's current log file without direct dependencies on the exact handler class. We do this with an abstract parent class whose concrete child class (to be used as a singleton) will be given in startup_options, i.e. in the same place as the server logging configuration. RELNOTES: None. PiperOrigin-RevId: 208171084
* Use getDoneValues instead of getGraphMap for dump/stat functions.Gravatar twerth2018-08-09
| | | | | RELNOTES: None PiperOrigin-RevId: 208166562