aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
Commit message (Collapse)AuthorAge
...
* Windows: Fix link parameter file for dynamic linkingGravatar pcloudy2018-05-23
| | | | | | | | Related issue: https://github.com/bazelbuild/bazel/issues/1013 Fix https://github.com/bazelbuild/bazel/issues/5243 RELNOTES: PiperOrigin-RevId: 197715690
* Add a flag to disallow LIPO to aid in the rollout of the removal of LIPO ↵Gravatar lberki2018-05-23
| | | | | | | support. RELNOTES: None. PiperOrigin-RevId: 197708692
* Rename CcRunfiles fields one more time to be perfectly accurate.Gravatar hlopko2018-05-23
| | | | | RELNOTES: None. PiperOrigin-RevId: 197707463
* Remove some dead AbstractAction constructorsGravatar ulfjack2018-05-23
| | | | | | | | The constructors which don't accept an action environment should not be called, with the exception of subclasses that don't run any subprocesses, and therefore don't need an environment. PiperOrigin-RevId: 197706734
* RepositoryResolvedEvent: only record the explicitly set original attributesGravatar Klaus Aehlig2018-05-23
| | | | | | | | | | Prune down the list of attributes to the explicitly set ones when reporting the original attributes. The attribute list also contains attributes implicitly added from default values, but the original attributes are intended to record the original way the rule was invoked from the WORKSPACE file. Change-Id: I918656159850a52e9afc9f045701b0ea065f4125 PiperOrigin-RevId: 197702283
* Call the AbstractAction constructor that takes an action environmentGravatar ulfjack2018-05-23
| | | | | | | | | | This is in preparation for removing the AbstractAction constructors that do not accept an action environment (with the exception of the first one, which is intended for use by actions which don't need an environment at all, e.g., file write actions). SKIP_CI=Flaky windows test (see #5242) PiperOrigin-RevId: 197701713
* Add events and get rid of ErrorInfoEncoder. Clean up some signatures and ↵Gravatar janakr2018-05-22
| | | | | | visibility in Skyframe classes. PiperOrigin-RevId: 197665817
* Get ConfiguredTargetAndData out of TargetCompleteEvent.Gravatar janakr2018-05-22
| | | | | | Having it in there makes serializing events harder. PiperOrigin-RevId: 197648233
* Get Target out of TargetParsingCompleteEvent.Gravatar janakr2018-05-22
| | | | | | Makes it easier to serialize Events. PiperOrigin-RevId: 197640007
* Stop setting deprecated target_kind and test_size fields in TargetComplete ↵Gravatar janakr2018-05-22
| | | | | | | | message in build_event_stream.proto. This gets in the way of serializing TargetCompleteEvent. PiperOrigin-RevId: 197630444
* Migrate JavaInfo's provider to use the new provider pattern.Gravatar cparsons2018-05-22
| | | | | | | This dramatically improves documentation generation for JavaInfo and it makes it far more maintainable and extensible going forward. RELNOTES: None. PiperOrigin-RevId: 197619040
* Add typo detection when lookups on SkylarkModules fail.Gravatar Googler2018-05-22
| | | | | | Also consolidate code with getattr so getattr now also gets typo detection. PiperOrigin-RevId: 197612666
* Relax the threshold for calling getDigestInExclusiveMode().Gravatar Googler2018-05-22
| | | | | | | If the policy goal is to minimize disk seeks, this should be equally good. RELNOTES: None. PiperOrigin-RevId: 197611813
* Move non-resource busybox actions to BusyBoxActionBuilder and AndroidDataContextGravatar asteinb2018-05-22
| | | | | | | | | | | | | BusyBoxActionBuilder makes much cleaner action builders while making it harder to do Bad Things (like collapsing NestedSets in analysis, or adding an artifact to one of the command line and the inputs but not both). Remaining action builders will be moved in the next change. Add old manifest merger tool to AndroidDataContext. RELNOTES: none PiperOrigin-RevId: 197607155
* Serialize NestedSetStore$NestedSetSize directly as an ordinal instead ofGravatar cpeyser2018-05-22
| | | | | | through SerializationContext, to save a byte. PiperOrigin-RevId: 197597779
* Make the parser look at only one Token at a time.Gravatar laurentlb2018-05-22
| | | | | | | | | Remove all references to `Token` (except one) in the parser. In particular, remove the mechanism to push tokens back. This change will make possible for the lexer to reuse tokens instead of allocating new objects each time. RELNOTES: None. PiperOrigin-RevId: 197585185
* Add additional methods to BusyBoxActionBuilderGravatar asteinb2018-05-22
| | | | | | | | | | | | | Many of the Busybox action building classes rely heavily on RuleContext. While we're migrating them to AndroidDataContext, we may as well also move them to use the BusyBoxAxtionBuilder, which removes a lot of boilerplate and makes bad practices (like collapsing NestedSets) harder to do by accident. The BusyBoxActionBuilder needs some more methods to cover all the behavior seen in various action builders, so update it in one change now rather than scattering these changes across many different reviews. RELNOTES: none PiperOrigin-RevId: 197584157
* Rename staticRunfiles and dynamicRunfiles in CcRunfilesGravatar hlopko2018-05-22
| | | | | | | | New names are dynamicLibrariesForLinkingStatically and dynamicLibrariesForLinkindDynamically respsectively. RELNOTES: None. PiperOrigin-RevId: 197579028
* Create source-only manifests remotely when possible.Gravatar felly2018-05-22
| | | | | RELNOTES: None PiperOrigin-RevId: 197578417
* Skylark: do not eagerly scan the whole fileGravatar laurentlb2018-05-22
| | | | | | | | With this change, the parser explicitly asks the lexer to give the next token. To avoid changing the lexer too much, the tokenize() method populates a queue (it may add multiple tokens at the same time). While this reduces the peak memory usage, further work is needed to actually improve the performance. RELNOTES: None. PiperOrigin-RevId: 197576326
* Pass AndroidDataContext to remaining non-ActionBuilder codeGravatar asteinb2018-05-22
| | | | | | | | | | | | Now that the AndroidDataContext is passed everywhere, we can begin modifying action builders. This includes removing Label information from Proguard artifact paths. getUniqueDirectoryArtifact() already included label earlier in the path, so this information was redundant anyway. RELNOTES: none PiperOrigin-RevId: 197576210
* Split user_link_flags from legacy_link_flagsGravatar hlopko2018-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The difference between them is that user_link_flags will stay after we remove legacy fields from the crosstool. This is an encore of https://github.com/bazelbuild/bazel/commit/2661abb96b1fe51fb726a63eb08698564a82eb20 after mitigating the memory regression. Original cl regressed 12mb (on a big enough internal project :): objsize chg instances space KB class name ------------------------------------------------------ 24 +0 190265 4459 KB com.google.common.collect.ImmutableMapEntry 40 +0 95154 3716 KB com.google.common.collect.RegularImmutableMap 47 -2 95154 2230 KB [Ljava.util.Map$Entry; 44 -1 95154 2230 KB [Lcom.google.common.collect.ImmutableMapEntry; 24 +0 95149 2230 KB com.google.devtools.build.lib.rules.cpp.CcToolchainVariables$MapVariables 16 +0 95149 1486 KB com.google.devtools.build.lib.rules.cpp.CcToolchainVariables$StringSequence 89 +0 3188 176 KB [B 64 -8 0 -743 KB com.google.devtools.build.lib.rules.cpp.LinkCommandLine 76 +0 -1918 -1323 KB [Ljava.lang.Object; 24 +0 -95149 -2230 KB com.google.devtools.build.lib.rules.cpp.CcToolchainVariables$SingleVariables ------------------------------------------------------ The reason was that before legacy_link_flags were the only build variable patched because of thinlto in CppLinkActionBuilder, so it used optimized SingleVariables subclass. With the split, the patched variables instance had 2 variables therefore it received the full blown Variables instance. That accounted for the ~7mb. The fix was to move the patching logic to the initial link variables creation and not to create patched variables at all. Now the regression is ~4.8mb, which is perfectly expected since I introduce another variable and this is the overhead of additional hashmap entry: objsize chg instances space KB class name ------------------------------------------------------ 24 +0 190418 4462 KB com.google.common.collect.ImmutableMapEntry 44 +1 31 1487 KB [Lcom.google.common.collect.ImmutableMapEntry; 16 +0 95149 1486 KB com.google.devtools.build.lib.rules.cpp.CcToolchainVariables$StringSequence 47 +0 31 744 KB [Ljava.util.Map$Entry; 89 +0 5723 315 KB [B 24 +0 5721 134 KB java.lang.String 64 -8 0 -743 KB com.google.devtools.build.lib.rules.cpp.LinkCommandLine 76 +0 -2387 -840 KB [Ljava.lang.Object; 24 +0 -95149 -2230 KB com.google.devtools.build.lib.rules.cpp.CcToolchainVariables$SingleVariables ------------------------------------------------------ I'll pay this dept back once we get rid of legacy crosstool fields (= removal of legacy_link_flags variable). RELNOTES: None. PiperOrigin-RevId: 197574153
* Remove special handling of SpawnActionContext in Executor/ActionExecContextGravatar ulfjack2018-05-22
| | | | | | | | Instead, internally look up the correct context by mnemonic. This simplifies all the callers. We still need a little bit of special casing when constructing the action context map. PiperOrigin-RevId: 197572357
* Pass AndroidDataContext through manifest processing methodsGravatar asteinb2018-05-22
| | | | | | | | | | | | | | | Manifest processing methods are particularly messy for this migration, since the old ApplicationManifest class is still around. Anyway, pass around AndroidDataContext instead of RuleContext everywhere we can. Note that the built-in expander does not seem able to be modified to support decoupling attributes and other information, and thus really can't be done once we get rid of RuleContext. Instead, for Skylark rules, document that expansion must happen outside of the Android data Skylark method calls (for example, for manifest_values and nocompress_extensions). RELNOTES: none PiperOrigin-RevId: 197567541
* Pass through AndroidDataContext in more placesGravatar asteinb2018-05-22
| | | | | | | | As before, actual action builders will be changed in a future CL; this just starts moving AndroidDataContext in so it's available. RELNOTES: none PiperOrigin-RevId: 197561737
* Pass AndroidDataContext through new asset and resource pipelinesGravatar asteinb2018-05-22
| | | | | | | | | | | | | | This is the first step towards using AndroidDataContext in all of Android data processing. This change does not actually modify the asset and resource processing action builders themselves - they will be migrated in an upcoming change. Also, add AndroidSemantics to some rules so they can make an AndroidDataContext. RELNOTES: none PiperOrigin-RevId: 197555938
* CROSSTOOL: Make C++ compiled and linked artifact name pattern configurableGravatar Yun Peng2018-05-22
| | | | | | | | | | | | This change makes Bazel respect artifact name patterns specified in CROSSTOOL. Users cannot specify any arbitrary name pattern, it must ends with allowed extensions. For example, for dynamic library, it can only ends with .so, .dylib or .dll, otherwise Bazel throws an error. Change-Id: I21d9e6fa7c3a282e1a9b8ff29679b00925cddb33 PiperOrigin-RevId: 197553413
* Create AndroidDataContext to wrap context needed when working with Android dataGravatar asteinb2018-05-22
| | | | | | | | | | | | | | | | | | | This new object wraps Label, ActionConstructionContext, and various data-related tools (currently, just the resource Busybox and the Android SDK). All three of these things are required for creating pretty much any action for working with Android assets, resources, and manifests, so it makes sense to pass them around together. Eventually, we'll use this class instead of RuleContext in any code called from the Skylark APIs. For now, though, just have it wrap a RuleContext - the migration away from that will happen in future changes. Change the current Skylark API to take this class, rather than a SkylarkRuleContext. This is the first step towards not passing RuleContext (or SkylarkRuleContext) into the Skylark API. RELNOTES: none PiperOrigin-RevId: 197549155
* Add a helper method to compute timeouts with a default valueGravatar ulfjack2018-05-22
| | | | PiperOrigin-RevId: 197545650
* Make SymlinkTreeAction properly use the configuration's environmentGravatar ulfjack2018-05-22
| | | | | | | | In particular, fix its use of client make variables. Fixes #4750. PiperOrigin-RevId: 197545415
* Rename CcLinkingOutputs.dynamicLibraries and executionDynamicLibrariesGravatar hlopko2018-05-22
| | | | | | | | | New names are dynamicLibrariesForLinking and dynamicLibrariesForRuntime respectively. This is just a cleanup to make the code more understandable. RELNOTES: None. PiperOrigin-RevId: 197535811
* Cache superclass traversal to find proper codec in ObjectCodecRegistry.Gravatar janakr2018-05-21
| | | | PiperOrigin-RevId: 197508159
* Remove comment about legacy package loading.Gravatar dannark2018-05-21
| | | | | RELNOTES: None PiperOrigin-RevId: 197504627
* Remove string prefix optimization. With new UnsafeJdk9StringCodec, it's no ↵Gravatar janakr2018-05-21
| | | | | | longer worth it. PiperOrigin-RevId: 197477783
* Remove ValueConstants. They're not pulling their weight in CPU overhead.Gravatar janakr2018-05-21
| | | | PiperOrigin-RevId: 197465288
* Remove unused StringUtil method.Gravatar felly2018-05-21
| | | | PiperOrigin-RevId: 197461794
* Automated rollback of commit 7a71ce816bc8a67a63c2d147ac953ac451ebd23b.Gravatar jmmv2018-05-21
| | | | | | | | | | *** Reason for rollback *** Targets in the repository are still able to depend on proto_library rules even after the --noemit_proto_java_outputs flag flip. Removal of the Java support from proto_library breaks them. PiperOrigin-RevId: 197442659
* When using JDK9, replace naive StringCodec with an optimized codec that uses ↵Gravatar janakr2018-05-21
| | | | | | the String's underlying raw bytes. This avoids byte copying and UTF interpretation. Experiments show it is approximately 15(!) times faster than the naive StringCodec for serialization and 2 times faster for deserialization (10 times faster for non-ASCII strings). PiperOrigin-RevId: 197441758
* Set up only one link action for JavaBinary launcher with fissionGravatar Googler2018-05-21
| | | | | | | | | | | | | | | This is a fixed version of https://github.com/bazelbuild/bazel/commit/4ba134f008719a52c1f74dc070121017d0b08f44, along with new tests for the issue provoking the rollback. Original description: Change getLauncher to return both a stripped and unstripped launcher binary artifact under fission, instead of invoking getLauncher twice. This was setting up two identical link actions that required later work to filter out the redundant action in filterSharedActionsAndThrowActionConflict. This becomes extremely inefficient under ThinLTO, where each launcher link is actually 1 LTO indexing action, N LTO Backend actions, and 1 native link action. PiperOrigin-RevId: 197391873
* Don't construct directories when using ActionFS - these are implicit.Gravatar felly2018-05-18
| | | | PiperOrigin-RevId: 197211669
* Add BuildEventProtocolOptions; use to enable/disable important_outputsGravatar ulfjack2018-05-18
| | | | | | | The important_outputs field is deprecated, and this adds a flag to disable its generation entirely. PiperOrigin-RevId: 197186530
* Partial rollback of commit 2661abb96b1fe51fb726a63eb08698564a82eb20.Gravatar hlopko2018-05-18
| | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks perf regtest *** Original change description *** Split user_link_flags from legacy_link_flags The difference between them is that user_link_flags will stay after we remove legacy fields from the crosstool. RELNOTES: None. PiperOrigin-RevId: 197180518
* Move various visitor classes into their own classes. ParallelSkyQueryUtils ↵Gravatar shreyax2018-05-18
| | | | | | is currently quite large and hard to navigate. Also, rename AbstractRdepsVisitor to AbstractEdgeVisitor as there is nothing specific about rdeps involved. PiperOrigin-RevId: 197177966
* Fork RuleContext.ErrorReporter to create a Skylark-friendly RuleErrorConsumerGravatar asteinb2018-05-18
| | | | | | | | | | | | | | The new error consumer is simple to create from @SkylarkCallable methods, so we won't need to pass SkylarkRuleContext into those methods for that reason anymore. Create a new abstract class, rather than expand the existing AbstractRuleErrorConsumer class, since the latter is already being extended and used in a variety of tests, and I prefer not to have to migrate all of them as needed. Add Javadoc to make clear that this class should not be used similarly. RELNOTES: none PiperOrigin-RevId: 197148849
* bes: disable best effort upload by default.Gravatar buchgr2018-05-18
| | | | | | | | | | | | Disabling best effort upload means that a build will wait for the BES upload to finish and also that it will fail if the BES upload fails. We are planning on removing/deprecating the best effort upload functionality eventually. RELNOTES: None PiperOrigin-RevId: 197148222
* Skylark debug server: add serialization codeGravatar Googler2018-05-18
| | | | | | | Small self-contained part of the debug server (see unknown commit for the larger picture). PiperOrigin-RevId: 197140094
* Delete Java support from proto_library.Gravatar tomlu2018-05-18
| | | | | RELNOTES: None PiperOrigin-RevId: 197136304
* Move coverageSupport and coverageReportGenerator from BuildConfiguration toGravatar dbabkin2018-05-18
| | | | | | | TestConfiguration. RELNOTES:none PiperOrigin-RevId: 197135911
* C++: Add more parameters to Skylark API needed for match_clifGravatar plf2018-05-18
| | | | | RELNOTES:none PiperOrigin-RevId: 197132493
* Add support of empty target to LateBoundAlias.Gravatar dbabkin2018-05-18
| | | | | RELNOTES:none PiperOrigin-RevId: 197132230