aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe
Commit message (Collapse)AuthorAge
* Removed unused FileFunctionException constructorGravatar Michajlo Matijkiw2015-11-13
| | | | | -- MOS_MIGRATED_REVID=107726105
* When getting package roots for exec paths, don't start with the file, which ↵Gravatar Janak Ramakrishnan2015-11-13
| | | | | | | is guaranteed not to be a package. Instead, start with its parent. This will be faster and take less memory. -- MOS_MIGRATED_REVID=107725767
* Make it easier to reuse empty PrepareDepsOfTargetsUnderDirectoryValue singletonsGravatar Michajlo Matijkiw2015-11-13
| | | | | -- MOS_MIGRATED_REVID=107719658
* Pre-trim build options for all remaining calls to ConfigurationFragment.key. ↵Gravatar Greg Estren2015-11-13
| | | | | | | | | | | | Move the trimming logic into key() itself to: a) eliminate code redundancy b) guarantee all future calls to key() also do this. -- MOS_MIGRATED_REVID=107713353
* Inline SkyframeBuildView.createAspect into its only call-site, to reduce ↵Gravatar Carmi Grushko2015-11-13
| | | | | | | stack depth. -- MOS_MIGRATED_REVID=107688035
* Allow package blacklisting to be done via a file checked into the depot. By ↵Gravatar Eric Fellheimer2015-11-12
| | | | | | | default this is disabled. -- MOS_MIGRATED_REVID=107644420
* When determining a dep's dynamic configuration, apply theGravatar Greg Estren2015-11-12
| | | | | | | | | configuration transition *before* trimming the options. This is because the transition may read fragments that aren't in the dep itself. -- MOS_MIGRATED_REVID=107624186
* When getting the Skyframe key for a ConfigurationFragment, firstGravatar Greg Estren2015-11-12
| | | | | | | | | | | | | | | trim the BuildOptions to only those needed by the fragment. This guarantees that the same fragment only gets instantiated once (for example: we don't want to have two copies of a CppConfiguration because one copy had PythonOptions and the other didn't). This also prevents crashes, e.g. in the Preconditions check in CcLibraryHelper.addDeps. -- MOS_MIGRATED_REVID=107609270
* Include the Globber in the PackageFunction AstAfterPreprocessing cache. ↵Gravatar Nathan Harmata2015-11-12
| | | | | | | Otherwise we have potential correctness and performance problems on a missing Skylark import dep. -- MOS_MIGRATED_REVID=107605200
* Allow FilesystemValueChecker to operate on a WalkableGraph and add TODOs for ↵Gravatar Nathan Harmata2015-11-10
| | | | | | | | | replacing MemoizingEvaluator#getValues et al with WalkableGraph usage. I initially attempted to do this but punted once I realized how much work it would be. Also make DirectoryListingStateValue and FileStateValue public for use in outside callers of FilesystemValueChecker. -- MOS_MIGRATED_REVID=107447425
* Add a Skyframe injected value representing a Blacklist of package patterns. ↵Gravatar Eric Fellheimer2015-11-10
| | | | | | | | | | | | | Any Package name starting with a blacklisted prefix is treated as a deleted package. Note the relation to prior art in Blaze: 1. Deleted packages indicates to Blaze to pretend certain packages do not exist. The deleted packages are passed in as fully resolved package names. This is important because the invalidation logic when these values changes references the exact package names, as opposed to prefix patterns. 2. Negative patterns in target parsing. (eg, "foo/..., -foo/bar/..."). Note that if //foo:biz depends on //foo/bar:bang, we still visit that dependency. In other words, the negative patterns just control the target pattern parsing, but not the later evaluation of those targets. Blacklisting acts like both (1) and (2), but in the form of a Precomputed injected value (so modifying the value would be more expensive than modifying deleted_packages). -- MOS_MIGRATED_REVID=107431993
* Update @Nullable annotations for FilesystemValueChecker related stuff.Gravatar Nathan Harmata2015-11-10
| | | | | -- MOS_MIGRATED_REVID=107420673
* Aspect terminology update.Gravatar Dmitry Lomov2015-11-10
| | | | | | | | Aspect => ConfiguredAspect AspectWithParameters => Aspect -- MOS_MIGRATED_REVID=107375211
* Refactor the loading phase runner creation and remove the test duplication.Gravatar Ulf Adams2015-11-06
| | | | | | | | | The loading phase runner is now always created by the SkyframeExecutor, and the duplicate test is dropped in favor of subclassing and overriding one method. -- MOS_MIGRATED_REVID=107188756
* Add a TODO for a known dynamic configuration problem: hostGravatar Greg Estren2015-11-06
| | | | | | | | | | | | | | configurations get trimmed to the same fragments as target configurations. This isn't correct, because null fragments in the target configuration (which in practice don't exist) shouldn't necessarily be excluded from the host config. In the worst case then can crash fragment loaders, which expect the fragment options to exist even if the fragment ends up being null. -- MOS_MIGRATED_REVID=107173093
* Implement the offset for the new skyframe-based LoadingPhaseRunner.Gravatar Ulf Adams2015-11-05
| | | | | -- MOS_MIGRATED_REVID=107071400
* Increase the concurrency level of the filesystem call caches used in legacy ↵Gravatar Nathan Harmata2015-11-05
| | | | | | | package loading from the LoadingCache default of 4 to value of --legacy_globbing_threads. -- MOS_MIGRATED_REVID=107056166
* Pass AspectWithParameters instead of separately passing AspectParameters and ↵Gravatar Carmi Grushko2015-11-04
| | | | | | | | | aspect-attributes. The former contains both. -- MOS_MIGRATED_REVID=106961145
* Post preliminary events so it doesn't crash outright.Gravatar Ulf Adams2015-11-04
| | | | | | | | This makes the new loading phase runner work for basic builds, but there are still a lot of broken tests if enabled by default. -- MOS_MIGRATED_REVID=106952054
* Add a skyframe-based loading phase runner hidden behind a compile-time const.Gravatar Ulf Adams2015-11-03
| | | | | | | More testing required before we even add a command-line option. -- MOS_MIGRATED_REVID=106922350
* Split the LoadingPhaseRunner into interface and implementation.Gravatar Ulf Adams2015-11-03
| | | | | | | | This is in preparation for adding a Skyframe-based implementation that uses the recently added TargetPatternPhaseFunction. -- MOS_MIGRATED_REVID=106920157
* When creating RuleContext, explicitly pass the set of attributes an attached ↵Gravatar Carmi Grushko2015-11-02
| | | | | | | Aspect provides. -- MOS_MIGRATED_REVID=106882046
* Parametrize aspect definition with AspectParameters.Gravatar Dmitry Lomov2015-11-02
| | | | | -- MOS_MIGRATED_REVID=106848269
* Move LoadingPhaseRunner.Options to top-level class LoadingOptions.Gravatar Ulf Adams2015-11-02
| | | | | -- MOS_MIGRATED_REVID=106836859
* Implement propagation along dependencies for Skylark aspects.Gravatar Dmitry Lomov2015-11-02
| | | | | -- MOS_MIGRATED_REVID=106694515
* Disable --watchfs on OSX in preparation for enabling it by default.Gravatar Ulf Adams2015-10-28
| | | | | | | | There's no timeline right now, but it's unusable on OSX and Oracle has no plans of fixing it. -- MOS_MIGRATED_REVID=106486015
* Visibility adjustmentsGravatar Michajlo Matijkiw2015-10-28
| | | | | -- MOS_MIGRATED_REVID=106444993
* Change default for rule classes that don't explicitlyGravatar Greg Estren2015-10-28
| | | | | | | | | | | | | | | declare required configuration fragments: from *everything* to *nothing*. Now that all builtin rules properly declare their fragments, the "backwards compatibility" concern that inspired the original behavior is no longer needed. This impacts, for example, filegroup rules, which have nothing to declare. -- MOS_MIGRATED_REVID=106433791
* Share SkyKey interning between evaluation and deserialization.Gravatar Eric Fellheimer2015-10-27
| | | | | -- MOS_MIGRATED_REVID=106323413
* Avoid unbounded growth in the GlobFunction cache. The cache is now given a ↵Gravatar Eric Fellheimer2015-10-27
| | | | | | | maximum size, based off a reasonably larged sized benchmark. -- MOS_MIGRATED_REVID=106180595
* Inline TargetMarker in TransitiveTraversalFunctionGravatar Mark Schaller2015-10-23
| | | | | | | | | | Simplifies the runtime graph when TransitiveTraversalFunction is used. Also moves an error reporting method from the base function to the TransitiveTargetFunction, which is the only one that uses it. -- MOS_MIGRATED_REVID=106109745
* Memoize TRANSITIVE_TRAVERSAL nodes to save memory.Gravatar Miguel Alcon Pinto2015-10-22
| | | | | -- MOS_MIGRATED_REVID=105994907
* Introduce an AspectClass: a representation of a class of aspects.Gravatar Dmitry Lomov2015-10-22
| | | | | | | For native aspects, AspectClass is a facade for Class<AspectFactory<...>>. -- MOS_MIGRATED_REVID=105986390
* Retain first error message during transitive traversalGravatar Mark Schaller2015-10-22
| | | | | | | | | | | | | | | | | | | | | | | | | Previously, a TransitiveTraversalFunction computed a value that contained an exception only if the exception resulted from a failure to load the function's immediate target. If the target had transitive dependencies on other targets, those other targets would be loaded, but any errors resulting from loading those targets would not be retained. SkyQueryEnvironment impromperly used a SkyFrame mechanism (which was solely intended to ensure equivalent semantics between keep-going and no-keep-going evaluations) to discover errors in the set of transitive children of TransitiveTraversal nodes. In order to transition SkyQueryEnvironment away from that mechanism, this CL changes TransitiveTraversalFunction to remember the first error message encountered while loading its target and its transitive dependencies. By remembering just the error message as a string, and not the full exception object, this also helps TransitiveTraversalValue have more consistent equality semantics for change-pruning. -- MOS_MIGRATED_REVID=105977182
* Narrow return type of ContainingPackageLookupValue.withContainingPackageGravatar Michajlo Matijkiw2015-10-22
| | | | | -- MOS_MIGRATED_REVID=105969015
* Remove the repository name from PACKAGE_NAME and move it to the new ↵Gravatar Lukacs Berki2015-10-21
| | | | | | | REPOSITORY_NAME symbol. -- MOS_MIGRATED_REVID=105954652
* Change the preprocessor interface to take the byte[] contents of the BUILD ↵Gravatar Nathan Harmata2015-10-21
| | | | | | | | | file rather than a ParserInputSource. This is part of a series of changes with the net result being that we open, read, and parse each BUILD file exactly once. -- MOS_MIGRATED_REVID=105911557
* Introduce Path#isSpecialFile, FileSystem#isSpecialFile, and ↵Gravatar Nathan Harmata2015-10-21
| | | | | | | FileStatus#isSpecialFile to help disambiguate between a regular file and a special file, since the file size of a special file cannot be trusted. -- MOS_MIGRATED_REVID=105903622
* Improve error diagnostics for Skylark aspects.Gravatar Dmitry Lomov2015-10-20
| | | | | -- MOS_MIGRATED_REVID=105851371
* Implement aspect(...) Skylark function.Gravatar Dmitry Lomov2015-10-20
| | | | | -- MOS_MIGRATED_REVID=105844221
* Rollback of commit ac7195025b073948785db8c6975a53fc305c5087.Gravatar Peter Schmitt2015-10-20
| | | | | | | | | | | | | *** Reason for rollback *** Uses tests that don't run on Bazel *** Original change description *** Implement aspect(...) Skylark function. -- MOS_MIGRATED_REVID=105808850
* Use a sorted set for the test suite expansion key to prevent non-determinism.Gravatar Ulf Adams2015-10-20
| | | | | | | | | | | | | | | | | While a normal set is theoretically sufficient, it can cause hard-to-reproduce problems. In particular, the iteration order of the expansion result depends on the iteration order of the requested targets. If there are multiple requests for the same set of targets, but with different orders, the results would depend on which request was made first. If a downstream function also inadvertantly depends on the iteration order, it can be hard to debug why it ended up with a different order than it requested. Alternatively, we could sort the result before returning it. We generally expect the key set to be smaller than the result set, so this should be ever so slightly more efficient. -- MOS_MIGRATED_REVID=105765514
* Fix two uses of generics that are causing errors in Eclipse for me.Gravatar Ulf Adams2015-10-19
| | | | | -- MOS_MIGRATED_REVID=105742091
* Implement the test suite expansion after target pattern evaluation.Gravatar Ulf Adams2015-10-19
| | | | | | | | This is still not hooked up, but it's now passing all the relevant tests that apply directly to the LoadingPhaseRunner; there are still a couple of TODOs. -- MOS_MIGRATED_REVID=105739507
* Make bazel not require a tools/defaults/BUILD file.Gravatar Lukacs Berki2015-10-19
| | | | | -- MOS_MIGRATED_REVID=105734972
* Avoid some Skyframe restarts.Gravatar Nathan Harmata2015-10-19
| | | | | -- MOS_MIGRATED_REVID=105648425
* Brief audit of singleton SkyValuesGravatar Michajlo Matijkiw2015-10-19
| | | | | | | Minimize indirection wrt singletons, turns out we had one that was completely unused. -- MOS_MIGRATED_REVID=105621494
* Implement aspect(...) Skylark function.Gravatar Dmitry Lomov2015-10-16
| | | | | -- MOS_MIGRATED_REVID=105596479
* Stop filtering when returning root causes -- the filter is always true, ↵Gravatar Janak Ramakrishnan2015-10-16
| | | | | | | | | since root causes are associated with top-level targets and labels, and the filter is for all top-level targets and labels. I noticed this when a huge --noanalyze build spent most of its time in filtering here. The passed-in "collection" was a list, which meant that we could have sped it up by using a set, but why not just get rid of it all. -- MOS_MIGRATED_REVID=105536485
* Cache BUILD file AST parsing results instead of preprocessing results (the ↵Gravatar Nathan Harmata2015-10-16
| | | | | | | | | former uses the latter). This way we parse BUILD files exactly once. This is part of a series of changes with the net result being that we open, read, and parse each BUILD file exactly once. -- MOS_MIGRATED_REVID=105528075