aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
Commit message (Collapse)AuthorAge
...
* Unfork SplitTransition / PatchTransition invocations.Gravatar gregce2018-05-24
| | | | | | Part of https://docs.google.com/document/d/1_UJKmAQ9EE8i3Pl0il3YLTYr-Q9EKYYyLatt2zohfyM/edit# PiperOrigin-RevId: 197890685
* Reject files when the first line is indented.Gravatar laurentlb2018-05-24
| | | | | | | | | | | | A bug in the lexer ignored indentation on the first line of a file. This now causes an error. Also, remove the COMMENT token from the lexer. Comments are now accessed separately. This will allow further optimizations in the lexer. It also aligns the code a bit more with the Go implementation. RELNOTES[INC]: Indentation on the first line of a file was previously ignored. This is now fixed. PiperOrigin-RevId: 197889775
* remote/http: simplify download logicGravatar Jakob Buchgraber2018-05-24
| | | | | | | | Netty's HttpClientCodec always emits a LastHttpContent event and so we don't need to track the received bytes manually to know when we are done reading. The HttpBlobStore compares the hashes of the received bytes to give us confidence that what we received is correct. Closes #5244. PiperOrigin-RevId: 197887877
* Expose FileProvider in skylarkbuildapiGravatar asteinb2018-05-24
| | | | | | | | | | | The Android data Skylark API includes references to FileProvider. To move that API to the skylarkbuildapi, we must first move this provider. For more information about this migration, see https://docs.google.com/document/d/1UDEpjP_qWQRYsPRvx7TOsdB8J4o5khfhzGcWplW7zzI/ RELNOTES: none PiperOrigin-RevId: 197882296
* Delete GlobListGravatar laurentlb2018-05-24
| | | | | RELNOTES: None. PiperOrigin-RevId: 197881012
* Refactor analysis failure reporting, report loading failuresGravatar ulfjack2018-05-24
| | | | | | | | Split the AnalysisFailureEvent into a legacy and a new variant; always post an AnalysisFailureEvent, even if the legacy variant is not posted - this gives us some coverage for loading failures. PiperOrigin-RevId: 197862257
* PiperOrigin-RevId: 197857419Gravatar plf2018-05-24
|
* For compilations with C++ modules, treat private headers (header files inGravatar Googler2018-05-23
| | | | | | | | | | | | | | | 'srcs') as textually included headers. A private header is never exported to a different module and thus cannot be used by a different module. We never need to compile a module just because one of it's private headers is used from somewhere else. There must be a different cc_library (and thus module) that exports the header. At the same time, being compiled into a module doesn't provide benefits for the compilation of that cc_library itself, because a module created for a cc_library A is never used when compiling any of A's srcs. PiperOrigin-RevId: 197846388
* Make BuildOptions$OptionsDiffForReconstruction deterministic in its ↵Gravatar janakr2018-05-23
| | | | | | construction. Also restrict visibility of some test-only OptionsDiff methods, and remove a server-specific part of the ConfiguredTargetKey #toString representation. PiperOrigin-RevId: 197830577
* Make the SplitTransition, PatchTransition interfaces more compatible.Gravatar gregce2018-05-23
| | | | | | Part of https://docs.google.com/document/d/1_UJKmAQ9EE8i3Pl0il3YLTYr-Q9EKYYyLatt2zohfyM/edit# PiperOrigin-RevId: 197800831
* Rename some instances of overloaded skylark-accessible methodsGravatar cparsons2018-05-23
| | | | | RELNOTES: None. PiperOrigin-RevId: 197799961
* Add --batch deprecation warning.Gravatar ccalvarin2018-05-23
| | | | | RELNOTES: --batch is deprecated PiperOrigin-RevId: 197780675
* De-document the Skylark "data" transition.Gravatar gregce2018-05-23
| | | | | | This is going away with the removal of C++ LIPO support. PiperOrigin-RevId: 197779736
* Simplify split transition semantics: noops now return the input build options.Gravatar gregce2018-05-23
| | | | | | This results in less special logic in the implementation and a simpler API. PiperOrigin-RevId: 197772283
* Initial implementation of a Skylark debug server API.Gravatar Googler2018-05-23
| | | | | | | | | | | | | | | | | | I've pulled out the API for separate review. It includes all hooks from blaze/skylark used by the debugger. Debuggable thread contexts are currently declared in 3 places: - BuildFileAST (top-level evaluation of BUILD files) - SkylarkRuleConfiguredTargetUtil (rules) - SkylarkAspectFactory (aspects) The purpose of declaring these contexts is so that the debugger can track currently-active threads (and stop tracking them when the task is completed). Details of the actual debugging server are in unknown commit. PiperOrigin-RevId: 197770547
* Rename PatchTransition.apply to PatchTransiton.patch.Gravatar gregce2018-05-23
| | | | | | | This unclashes with the incoming ConfigurationTransition.apply method described in https://docs.google.com/document/d/1_UJKmAQ9EE8i3Pl0il3YLTYr-Q9EKYYyLatt2zohfyM/edit#heading=h.96gongkwg852. PiperOrigin-RevId: 197769784
* Restrict module usage to C++ actions. Other actions don't support compilingGravatar Googler2018-05-23
| | | | | | | | using C++ modules (yet) and thus we are paying some of the cost such as building transitive modules and a taller critical path without reaping any benefits. PiperOrigin-RevId: 197768129
* Enable test properties to be exported for robolectric tests.Gravatar Googler2018-05-23
| | | | | | | | | With this change, all classes in com.google.testing.junit.runner.util will be loaded from the system classloader for robolectric tests. This fixes a problem where TestPropertyExporter and TestIntegrationsRunnerIntegration in the com.google.testing.junit.runner.util package were being loaded twice: once by the test runner into the system classloader, and again into the robolectric's classloader during test execution. Since there were two separate instances, the test properties exported during robolectric's testing lifecycle were disconnected from the test runner which writes out the properties. RELNOTES: none PiperOrigin-RevId: 197761010
* Rename an AppleToolchain method to prevent overloading a skylark-exposed methodGravatar cparsons2018-05-23
| | | | | RELNOTES: None. PiperOrigin-RevId: 197744356
* Create GlobalBootstrap and the Bootstrap interface to add portions of the ↵Gravatar cparsons2018-05-23
| | | | | | | build API to a global environment. RELNOTES: None. PiperOrigin-RevId: 197742427
* Remove FlagListGravatar hlopko2018-05-23
| | | | | | | This abstraction is not needed anymore. RELNOTES: None. PiperOrigin-RevId: 197739700
* Expose the runtime output jars in the JavaInfo provider to Skylark. This willGravatar Googler2018-05-23
| | | | | | | | | | the mobile-install aspect to pickup and desugar+dex only runtime jars without running a manual filter step (which breaks transitive_runtime_jars depset at every level). NOTE: The method that this one wraps was originially created for the native dex aspect which will eventually be migrated to Skylark too. PiperOrigin-RevId: 197739483
* C++: Expose additional methods for CcCompilationInfo and CcLinkingInfoGravatar plf2018-05-23
| | | | | | | This is needed for re-writing match_clif in Skylark. RELNOTES:none PiperOrigin-RevId: 197738067
* Stop passing RuleContext to all of the Android Data Skylark APIGravatar asteinb2018-05-23
| | | | | RELNOTES: none PiperOrigin-RevId: 197735344
* Remove deprecated method that no longer has any usages.Gravatar dannark2018-05-23
| | | | | RELNOTES: None PiperOrigin-RevId: 197731580
* Move resource busybox actions to BusyBoxActionBuilder and AndroidDataContextGravatar asteinb2018-05-23
| | | | | | | | | | | | | | | | | | | | | | | 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). Also: - In merging, simplify the code somewhat by removing unneeded conditionals - for example, the parsed merging action will always be built given the current code. - In the few builders where we aren't doing so already, parameter files should always be shell quoted and always be used when the OS is Windows. The BusyBox should always support the former and require the latter (although sufficiently large inputs may have masked this by triggering parameter files in Windows anyway). - In the builder for linking (within validation), no longer collapse the NestedSet of transitiveCompiledSymbols when adding them to the inputs. Using the new BusyBoxActionBuilder code, trying to do this would throw an IllegalStateException. RELNOTES: none PiperOrigin-RevId: 197728382
* Rollforward of CL/197136304:Gravatar tomlu2018-05-23
| | | | | | | | | | | | | | Remove java support from proto_library. NEW: Allow java_* rules to depend on proto_libraries via runtime_deps and exports. This should avoid the breakage that caused the original rollback. The edges are no-ops and could be removed. *** 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: 197725926
* Automated rollback of commit 724bdbfa47576c67eeec5c74d594203fe05188c7.Gravatar laszlocsomor2018-05-23
| | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Change introduced flakiness in //src/test/java/com/google/devtools/build/lib:actions_test Verified the culprit commit using: bazel test //src/test/java/com/google/devtools/build/lib:actions_test --runs_per_test=100 --notest_keep_going -t- See https://github.com/bazelbuild/bazel/issues/5242. *** Original change description *** Relax the threshold for calling getDigestInExclusiveMode(). If the policy goal is to minimize disk seeks, this should be equally good. RELNOTES: None. PiperOrigin-RevId: 197720793
* 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