aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe
Commit message (Collapse)AuthorAge
* Remove isSkylark and eval from Environment.Gravatar Laurent Le Brun2016-11-29
| | | | | -- MOS_MIGRATED_REVID=140371603
* Provide AspectDescriptor to ConfiguredAspect.Gravatar Dmitry Lomov2016-11-29
| | | | | | | | Also clean up the setting of aspect name in ConfiguredAspect and AspectDefintion - it is now obtained from the AspectClass. -- MOS_MIGRATED_REVID=140357052
* Use BlazeInterner's chosen concurrency level in InternerWithPresenceCheck's ↵Gravatar Nathan Harmata2016-11-28
| | | | | | | internal ConcurrentMap. -- MOS_MIGRATED_REVID=140253038
* Refactor LegacyLoadingPhaseRunner to be more like SkyframeLoadingPhaseRunner.Gravatar Ulf Adams2016-11-22
| | | | | | | | This is in preparation for extracting some common reporting code, and also a step towards interleaving target pattern eval and config creation. -- MOS_MIGRATED_REVID=139890205
* Implement 'output_groups' provider.Gravatar Dmitry Lomov2016-11-21
| | | | | | | | | | This behavior - that 'output_groups' is a provider available on targets and aspects - has been accidental, but people already depend on it. This CL keeps that behavior, while fixing the bug that two aspects could not both provide output groups. -- MOS_MIGRATED_REVID=139578378
* Allow labels in the '--aspects' parameter.Gravatar Dmitry Lomov2016-11-21
| | | | | -- MOS_MIGRATED_REVID=139573590
* Run the analysis phase with as many threads as the user wants. In order to ↵Gravatar Janak Ramakrishnan2016-11-18
| | | | | | | | | avoid memory blow-up intra-configured-target analysis, use a semaphore to ensure that CPU-bound work only occurs on #CPU-many threads. RELNOTES: Use --loading_phase_threads to control the number of threads used during the loading/analysis phase. -- MOS_MIGRATED_REVID=139477645
* Cache all previously computed values in ↵Gravatar Janak Ramakrishnan2016-11-17
| | | | | | | | | SkyQueryEnvironment#beforeEvaluateQuery if possible to save on latency for small queries. This assumes that if the graph is up to date, then the data in SkyQueryEnvironment is also up to date. It also assumes that a ForkJoinPool remains usable until #shutdownNow is called. -- MOS_MIGRATED_REVID=139386363
* Re-use the precomputed universe key in WalkableGraphFactory#prepareAndGet.Gravatar Janak Ramakrishnan2016-11-17
| | | | | -- MOS_MIGRATED_REVID=139357569
* Rollback of commit a3f5f576cd35798140ba3e81d03d919dd4ecb847.Gravatar Alex Humesky2016-11-17
| | | | | | | | | | | | | | *** Reason for rollback *** Breaks targets in the depot: [] *** Original change description *** output_group is not a real Skylark provider for aspects, as well as for rules. -- MOS_MIGRATED_REVID=139354682
* Fixes incomplete support for dynamic split transitions in Bazel'sGravatar Greg Estren2016-11-17
| | | | | | | | | | | | | | | | | | | | | | test infrastructure. The small picture story is that SkyframeExecutor.getDynamicConfigOptions (which gets dynamic BuildOptions for tests) wasn't updated with dynamic split support when that was added to ConfiguredTargetFunction.getDynamicTransitionOptions (which does the same thing for production builds). This change plugs that gap. See 373e3e28274cca5b87f48abe33884edb84016dd3 for the original change. The bigger picture story is that Bazel's configured target creation logic is forked: test code goes down a similar but sadly not-quite-the-same path that results in tons of duplicated logic, spaghetti code mess, and risk of bugs like this one. We'd like to ultimately undo that fork. But unfortunately it's an involved effort that won't happen overnight. In the meantime, this change takes one small step by merging the two methods that caused this bug. -- MOS_MIGRATED_REVID=139342710
* Supports --nodistinct_host_configuration withGravatar Greg Estren2016-11-16
| | | | | | | | | | | --experimental_dynamic_configs=notrim. This is simply a matter of populating the "global" host config from the target config instead of applying the HostTransition patch. -- MOS_MIGRATED_REVID=139222963
* Code cleanup for interleaving target pattern eval and config creation.Gravatar Ulf Adams2016-11-16
| | | | | -- MOS_MIGRATED_REVID=139209942
* Aspects-on-aspects implementation.Gravatar Dmitry Lomov2016-11-15
| | | | | -- MOS_MIGRATED_REVID=139189444
* Make TargetPattern evaluation during query evaluation more parallel-friendly ↵Gravatar Nathan Harmata2016-11-15
| | | | | | | by introducing TargetPattern#parEval, which allows TargetPatterns' evaluations to explicitly have parallel implementations (no need to secretly use a FJP). -- MOS_MIGRATED_REVID=139101922
* Cache PerBuildSyscallCache if concurrency level is unchanged.Gravatar Janak Ramakrishnan2016-11-14
| | | | | -- MOS_MIGRATED_REVID=138893829
* output_group is not a real Skylark provider for aspects, as well as for rules.Gravatar Dmitry Lomov2016-11-11
| | | | | -- MOS_MIGRATED_REVID=138863855
* Do not crash when aspects provide duplicate things.Gravatar Dmitry Lomov2016-11-11
| | | | | -- MOS_MIGRATED_REVID=138860974
* Implement build tag filtering.Gravatar Lukacs Berki2016-11-11
| | | | | | | If the --build_tag_filters option is specified, targets built will be filtered according to their tags (at least one included, none excluded) -- MOS_MIGRATED_REVID=138856195
* Update package lookup to check for files named BUILD.bazel before files namedGravatar John Cater2016-11-11
| | | | | | | | | | | BUILD. Fixes #552. RELNOTES[NEW]: Packages are defined in BUILD.bazel as well as BUILD files. -- MOS_MIGRATED_REVID=138828981
* Add a mechanism for bounding the number of Packages SkyQueryEnvironment's ↵Gravatar Nathan Harmata2016-11-11
| | | | | | | expensive parallel operations can operate on at once. -- MOS_MIGRATED_REVID=138779172
* Add SkylarkAspect to SkylarkRuleContext for aspectsGravatar Dmitry Lomov2016-11-09
| | | | | -- MOS_MIGRATED_REVID=138556910
* Rollback of commit b91fac3b1f0f5142a906aa12280de936f29fb607.Gravatar Luis Fernando Pino Duque2016-11-09
| | | | | | | | | | | | | | | | *** Reason for rollback *** Breaks several tests under //devtools/ide/eclipse/aspects as shown by the nightly []: [] *** Original change description *** Restrict google_glob_information to eclipse_aspect. '--legacy_expose_globs' flag has no effect now. -- MOS_MIGRATED_REVID=138517258
* Restrict google_glob_information to eclipse_aspect.Gravatar Dmitry Lomov2016-11-08
| | | | | | | '--legacy_expose_globs' flag has no effect now. -- MOS_MIGRATED_REVID=138410651
* Add logging to TimestampGranularityMonitor.Gravatar Julio Merino2016-11-02
| | | | | | | | These new log statements help in understanding what files trigger the TimestampGranularityMonitor's wait logic and when the wait is performed. -- MOS_MIGRATED_REVID=137868235
* Do not tickle TimestampGranularityMonitor for CONSTANT_METADATA artifacts.Gravatar Julio Merino2016-11-02
| | | | | | | | | | | | | | | | | | | | "Constant metadata" artifacts represent real files whose changes should be ignored by the build system. However, these artifacts were triggering the timestamp granularity checks in TimestampGranularityMonitor because the fact that they were "constant metadata" was not respected. Avoid this so that their regeneration does not cause the build to unnecessarily stall. One of these artifacts is the volatile workspace status file, which is unconditionally updated on each build. Before this fix, "blaze build" would get stuck for up to a second waiting for file system timestamps to catch up. With this fix, the artifact is ignored and the wait is gone. This problem is magnified on macOS where the default HFS+ file system only has second-level granularity. (This also affects Linux, but because current Linux file systems have milli/nanosecond-level granularity, the wait imposed by TimestampGranularityMonitor is minimal and thus not generally noticeable.) -- MOS_MIGRATED_REVID=137867586
* Add experimental flag to stop requiring all transitive modules as inputs.Gravatar Googler2016-10-31
| | | | | | | | | Requiring all transitive modules to always be available can lead to long critical paths and even unnecessary compiles in combination with the prune_header_modules feature. -- MOS_MIGRATED_REVID=137696794
* Fix uses of LocalRepositoryLookupFunction to work with JDK7.Gravatar John Cater2016-10-26
| | | | | -- MOS_MIGRATED_REVID=137257525
* Add new skyframe function to lookup the repository given a path, and use thatGravatar John Cater2016-10-25
| | | | | | | to report invalid package references. Fixes #1592. -- MOS_MIGRATED_REVID=137164164
* Add a new concept of failure causesGravatar Klaus Aehlig2016-10-25
| | | | | | | | | | | | | | | | | | | | Not all possible reasons for failure are uniquely identified by a label. Therefore, add a new data type describing possible root causes of failures and use it. The new type is added in causes/*.java and coresponds to Haskell's one-line definition data Cause = LabelCause Label | ActionCause Path Label deriving Show With future clean up of other failure causes inadequately described by a label, we expect that type to be extended by new constructors (i.e., new classes implementing Cause). -- Change-Id: I6fec74c78cec6abb9c10e32743b05a792888fead Reviewed-on: https://bazel-review.googlesource.com/#/c/6617 MOS_MIGRATED_REVID=137156390
* Accept valid relative symlinks in TreeArtifacts.Gravatar Rumou Duan2016-10-25
| | | | | -- MOS_MIGRATED_REVID=137072310
* Proper action output checks for TreeArtifacts. Instead of crashing Bazel, we ↵Gravatar Rumou Duan2016-10-19
| | | | | | | now handle failed TreeArtifact output checks gracefully. -- MOS_MIGRATED_REVID=136627086
* Add type arguments for JDK7 build.Gravatar Janak Ramakrishnan2016-10-19
| | | | | -- MOS_MIGRATED_REVID=136575806
* Per action file caching for input TreeArtifact.Gravatar Rumou Duan2016-10-19
| | | | | -- MOS_MIGRATED_REVID=136475556
* Rollback of commit b776d6c12e952eb358c1a036cc9d93d8944c4c77.Gravatar Nathan Harmata2016-10-18
| | | | | | | *** Reason for rollback *** -- MOS_MIGRATED_REVID=136448178
* Don't bother getting the not-real FileStateValue for a path whose parent ↵Gravatar Nathan Harmata2016-10-18
| | | | | | | | | doesn't exist. In addition to saving a filesystem operation, this removes a source of a potential filesystem inconsistency. -- MOS_MIGRATED_REVID=136355008
* Rollback of commit 0c7a42a09d85ddffd9b860bcb31e4c43a00632c1.Gravatar Nathan Harmata2016-10-17
| | | | | | | | | | | | | | | | | | *** Reason for rollback *** [] *** Original change description *** Slight refactor of ExternalFilesHelper: -Make FileType and ExternalFileAction public. -Have producers use ExternalFileAction, rather than a boolean, to specify the desired behavior. And a big change in semantics (doesn't affect Bazel): -Replace ExternalFileAction.ERROR_OUT with ExternalFileAction.ASSUME_NON_EXISTENT_AND_IMMUTABLE, which does what it sounds like. This new action, like the old ERROR_OUT, is _not_ used in Bazel. -- MOS_MIGRATED_REVID=136206810
* Make --watchfs a common command option.Gravatar Ulf Adams2016-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | Adding an options parameter to DiffAwareness#getCurrentView seems like the simplest way to achieve that. Alternatives considered: 1. Making the diff awareness modules stateful. However, I did not want to do so as I've also been working on improving the module API to reduce state, or at least to have a proper lifecycle management for any necessary state. 2. Making the watchFs flag a constructor parameter. However, that would also invalidate any implementations that don't use the flag (of which we have several). 3. Only passing in a single boolean flag instead of an options class provider; however, this is a more principled, futureproof API, which allows other modules / awareness implementations to use their own options. RELNOTES: --watchfs is now a command option; the startup option of the same name is deprecated. I.e., use bazel build --watchfs, not blaze --watchfs build. -- MOS_MIGRATED_REVID=136154395
* Rollback of commit 2891ec527eed27d0c6460d66f51cb66a43373b6a.Gravatar Damien Martin-Guillerez2016-10-14
| | | | | | | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Causes our integration tests on Darwin to time out *** Original change description *** Make --watchfs a common command option. Adding an options parameter to DiffAwareness#getCurrentView seems like the simplest way to achieve that. Alternatives considered: 1. Making the diff awareness modules stateful. However, I did not want to do so as I've also been working on improving the module API to reduce state, or at least to have a proper lifecycle management for any necessary state. 2. Making the watchFs flag a constructor parameter. However, that would also invalidate any implement... *** -- MOS_MIGRATED_REVID=136070807
* Slight refactor of ExternalFilesHelper:Gravatar Nathan Harmata2016-10-14
| | | | | | | | | | | -Make FileType and ExternalFileAction public. -Have producers use ExternalFileAction, rather than a boolean, to specify the desired behavior. And a big change in semantics (doesn't affect Bazel): -Replace ExternalFileAction.ERROR_OUT with ExternalFileAction.ASSUME_NON_EXISTENT_AND_IMMUTABLE, which does what it sounds like. This new action, like the old ERROR_OUT, is _not_ used in Bazel. -- MOS_MIGRATED_REVID=136063159
* Make --watchfs a common command option.Gravatar Ulf Adams2016-10-13
| | | | | | | | | | | | | | | | | | | | | | | | | Adding an options parameter to DiffAwareness#getCurrentView seems like the simplest way to achieve that. Alternatives considered: 1. Making the diff awareness modules stateful. However, I did not want to do so as I've also been working on improving the module API to reduce state, or at least to have a proper lifecycle management for any necessary state. 2. Making the watchFs flag a constructor parameter. However, that would also invalidate any implementations that don't use the flag (of which we have several). 3. Only passing in a single boolean flag instead of an options class provider; however, this is a more principled, futureproof API, which allows other modules / awareness implementations to use their own options. RELNOTES: --watchfs is now a command option; the startup option of the same name is deprecated. I.e., use bazel build --watchfs, not blaze --watchfs build. -- MOS_MIGRATED_REVID=136026835
* Adds an enum to describe how PackageLookupFunction should handle package labelsGravatar John Cater2016-10-13
| | | | | | | which cross into a sub-repository. Part of #1592. -- MOS_MIGRATED_REVID=135931868
* When requesting all transitive traversal values recursively, request ↵Gravatar Janak Ramakrishnan2016-10-12
| | | | | | | | | | | packages/targets in parallel with subdirectories. The previous implementation was vulnerable to incomplete traversal in case of cycles: if a subdirectory had a cycle, the targets in the package would never be requested. Requesting the package first would create a different problem, where the subdirectories would never be requested if the package depended on a cycle. Also stop uniquifying Skylark import cycles when inlining. While uniquification is nice, this was leading to us emitting an error during queries that we weren't actually emitting when not inlining. Putting the cycle into the exception error message should be enough information, and since we emit an error per exception anyway, the number of events will still be lower (although each event might be more verbose). -- MOS_MIGRATED_REVID=135846847
* Minor cleanupGravatar Laurent Le Brun2016-10-11
| | | | | | | | - Load prelude_bazel as a .bzl file (to simplify code paths) - Remove a function in BuildFileAST that was used only in tests -- MOS_MIGRATED_REVID=135785708
* Fix bug(s) with Skylark import cycles: we assumed that a package that failed ↵Gravatar Janak Ramakrishnan2016-10-11
| | | | | | | to load must have failed because of an exception, which is false in the case of cycles; -- MOS_MIGRATED_REVID=135742248
* When inlining imports, avoid visiting Skylark files multiple times that are ↵Gravatar Janak Ramakrishnan2016-10-11
| | | | | | | loaded by a single package. This also fixes a bug in which Skylark code expecting reference equality for an object imported multiple ways were not getting it. -- MOS_MIGRATED_REVID=135738789
* Post the expansion of a target pattern on the event streamGravatar Klaus Aehlig2016-10-10
| | | | | | | | | | | ...by making TargetParsingCompleteEvent an instance of BuildEvent. The main value of this event on the event stream is that it is now know which actual targets to expect. -- Change-Id: I50b16f825d742d28e719692489de701d16195efa Reviewed-on: https://bazel-review.googlesource.com/#/c/6278 MOS_MIGRATED_REVID=135661452
* Add a method in MetadataHandler to retrieve contained artifacts from ↵Gravatar Rumou Duan2016-10-07
| | | | | | | TreeArtifacts. -- MOS_MIGRATED_REVID=135485914
* Add the option --experimental_max_directories_to_eagerly_visit_in_globbing. ↵Gravatar Janak Ramakrishnan2016-10-05
| | | | | | | The first legacy glob that a package requires will, if this option is enabled, cause up to that many directories to be eagerly visited by a glob(['**']). The results are thrown away for memory reasons. -- MOS_MIGRATED_REVID=135148361
* Don't inherit the host configuration's fragments from the target config in ↵Gravatar Greg Estren2016-10-05
| | | | | | | --experimental_dynamic_configs=notrim mode. -- MOS_MIGRATED_REVID=135126724