aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/skyframe
Commit message (Collapse)AuthorAge
...
* Change ValueVisitor to use delegationGravatar Mark Schaller2015-11-02
| | | | | | | | This simplifies a future change that introduces new variance to ValueVisitor's use of AbstractQueueVisitor. -- MOS_MIGRATED_REVID=106846210
* Introduce ErrorClassifierGravatar Mark Schaller2015-11-02
| | | | | | | | | | Changes the AbstractQueueVisitor strategy for varying its response to unhandled exceptions from inheritance to composition. This will help with a forthcoming switch from inheritance to delegation for ValueVisitor's use of AbstractQueueVisitor. -- MOS_MIGRATED_REVID=106730708
* Introduce QuiescingExecutorGravatar Mark Schaller2015-11-02
| | | | | | | | | | | | This interface (mostly) encapsulates what the ValueVisitor expects from the AbstractQueueVisitor class it currently inherits from. This makes it easier for a future CL to change ValueVisitor's strategy of code reuse from inheritance to composition. RELNOTES: -- MOS_MIGRATED_REVID=106728863
* Split off more BUILD files.Gravatar Han-Wen Nienhuys2015-10-28
| | | | | -- MOS_MIGRATED_REVID=106493557
* Share SkyKey interning between evaluation and deserialization.Gravatar Eric Fellheimer2015-10-27
| | | | | -- MOS_MIGRATED_REVID=106323413
* Avoid the usage of Maps.transformValues since it is lazy and keeps a ↵Gravatar Miguel Alcon Pinto2015-10-23
| | | | | | | reference to the original map. This made us to keep a reference to the whole node but we are only interested on the rdeps. -- MOS_MIGRATED_REVID=106098938
* Increase visibility of BuildingState methodGravatar Mark Schaller2015-10-22
| | | | | -- MOS_MIGRATED_REVID=106004898
* Singleton-ify ErrorTransienceValueGravatar Michajlo Matijkiw2015-10-22
| | | | | | | | | | | | | | We rely on ErrorTransienceValue being different across evaluations by way of java reference inequality, instead make it a singleton and make it so that ErrorTransienceValue compares equal to nothing, including itself. Alternatively we could attach the corresponding Version to ErrorTransienceValue and use that to force inequality across evaluations. However this gets into the different possible Version implementations and their varying semantics, so go with the simplest approach first and see how it works out. -- MOS_MIGRATED_REVID=106001826
* Remove wildcard of SkyFunctionName, as it is finalGravatar Mark Schaller2015-10-22
| | | | | | | Nothing can extend SkyFunctionName. It's final. -- MOS_MIGRATED_REVID=105989976
* In SkyQueryEnvironment, check TransitiveTraversalValues for errorsGravatar Mark Schaller2015-10-22
| | | | | | | | | | | | | | | In SkyQueryEnvironment, the buildTransitiveClosure method ignored the error messages in successfully evaluated TransitiveTraversalValues, under the belief that any such error messages are also obtainable by calling getMissingAndExceptions. This happens to be true right now, but may not be true in the future. If, in particular, the TransitiveTraversal skyfunction inlines its call to the TargetMarker skyfunction, those error messages won't be available through getMissingAndExceptions. -- MOS_MIGRATED_REVID=105980430
* Keep track of any RuntimeExceptions thrown during evaluation. Previously, ↵Gravatar Janak Ramakrishnan2015-10-21
| | | | | | | RuntimeExceptions that were thrown after an InterruptedException was thrown would be swallowed. -- MOS_MIGRATED_REVID=105902192
* Use a thin graph when querying reverse deps (or others that don't need the ↵Gravatar Miguel Alcon Pinto2015-10-21
| | | | | | | values). -- MOS_MIGRATED_REVID=105893837
* Make EmptySkyValue not serializableGravatar Michajlo Matijkiw2015-10-21
| | | | | | | | Should be a singleton, should never be serialized or deserialized, but add equals and hash code as well for good measure. -- MOS_MIGRATED_REVID=105888511
* Don't log SchedulerExceptions.Gravatar Nathan Harmata2015-10-20
| | | | | | | RELNOTES: None -- MOS_MIGRATED_REVID=105787681
* Move to using "well-known" SkyFunctionNames in tests exercising graphGravatar Michajlo Matijkiw2015-10-16
| | | | | -- MOS_MIGRATED_REVID=105539869
* Allow other ExecutorService implementations in AbstractQueueVisitorGravatar Mark Schaller2015-10-13
| | | | | | | Previously, only ThreadPoolExecutor implementations were allowed. -- MOS_MIGRATED_REVID=105340237
* Refactor cycle related skyvalues to use shared empty valueGravatar Michajlo Matijkiw2015-10-13
| | | | | | | | | | | Previously the cycle values (were supposed to) share a common abstract base class, however usage was inconsistent. Instead refactor to eliminate the specialized value classes, remove the abstract class, and share a common empty placeholder value, which should be useful for future/other current empty values. -- MOS_MIGRATED_REVID=105217399
* Don't iterate over children when building events if events won't be stored ↵Gravatar Janak Ramakrishnan2015-10-12
| | | | | | | anyway. Also batch retrievals of children when building events. -- MOS_MIGRATED_REVID=105174435
* Clear interrupt bit before processing any error thrown by SkyFunction during ↵Gravatar Janak Ramakrishnan2015-10-12
| | | | | | | error bubbling. -- MOS_MIGRATED_REVID=105102597
* Delay additions as well as removals of reverse deps. Now that removals are ↵Gravatar Janak Ramakrishnan2015-10-12
| | | | | | | | | | | not all done during invalidation, repeated adding/removing means that we are consolidating more often, negating the benefit of delayed removals. To work around this, delay adds as well until we consolidate and verify the integrity of our data. Since there is no well-defined point that a consolidation should trigger for a done node, we delay until our pending list is as large as the done list. We can tweak this if necessary for a memory/performance tradeoff. The alternative to this that I could think of is giving up our strong integrity checks, which I'm not a fan of. -- MOS_MIGRATED_REVID=105095886
* Be more specific about InMemoryNodeEntry.getGroupedDirectDepsGravatar Mark Schaller2015-10-09
| | | | | -- MOS_MIGRATED_REVID=104983790
* Increase visibility of an InMemoryNodeEntry methodGravatar Mark Schaller2015-10-08
| | | | | | | | | | For use in alternate graph implementations. Also adds some user-friendly methods to StringValue, a SkyValue implementation used in tests. -- MOS_MIGRATED_REVID=104899226
* Remove vestigial serialization bits from ErrorInfoGravatar Michajlo Matijkiw2015-10-06
| | | | | | | RELNOTES: -- MOS_MIGRATED_REVID=104674937
* Replace EvaluableGraph#createIfAbsent with the potentially more efficient ↵Gravatar Nathan Harmata2015-10-05
| | | | | | | EvaluableGraph#createIfAbsentBatch. -- MOS_MIGRATED_REVID=104534858
* Pre-populate the SkyFunctionEnvironment with the node's previously declared ↵Gravatar Nathan Harmata2015-10-05
| | | | | | | deps. -- MOS_MIGRATED_REVID=104531377
* ErrorInfo and CycleInfo don't need to be serializableGravatar Michajlo Matijkiw2015-09-30
| | | | | | | RELNOTES: -- MOS_MIGRATED_REVID=104341630
* Add debugging info for crash during maybeMarkRebuilding.Gravatar Janak Ramakrishnan2015-09-30
| | | | | -- MOS_MIGRATED_REVID=104316416
* Visibility tweaks.Gravatar Michajlo Matijkiw2015-09-30
| | | | | | | RELNOTES: -- MOS_MIGRATED_REVID=104262323
* Refactoring: Move ThreadPoolExecutorParams to top-level.Gravatar Eric Fellheimer2015-09-30
| | | | | -- MOS_MIGRATED_REVID=104250152
* Rename PackageManager.getTargetPatternEvaluator to newTargetPatternEval.Gravatar Ulf Adams2015-09-30
| | | | | | | | Also change the semantics to create a new one on every call; inject the offset where we were previously relying on hidden state in the SkyframeExecutor. -- MOS_MIGRATED_REVID=104188580
* Simplify buildingState check in markCleanGravatar Mark Schaller2015-09-30
| | | | | | | The value getting checked was the same as the value it was compared to. -- MOS_MIGRATED_REVID=104144544
* Refactor ErrorInfo creation to share single constructorGravatar Michajlo Matijkiw2015-09-30
| | | | | | | | | | | | Single constructor allows us to enforce/document high-level constraints in a single place. Move previous constructors to static methods which do their custom transformations but ultimately funnel their final calculated fields through the common constructor. Also added some tests to demonstrate expected behavior of static methods. -- MOS_MIGRATED_REVID=104142909
* Rationalize copyright headersGravatar Damien Martin-Guillerez2015-09-25
| | | | | | | | | | | The headers were modified with `find . -type f -exec 'sed' '-Ei' 's|Copyright 201([45]) Google|Copyright 201\1 The Bazel Authors|' '{}' ';'` And manual edit for not Google owned copyright. Because of the nature of ijar, I did not modified the header of file owned by Alan Donovan. The list of authors were extracted from the git log. It is missing older Google contributors that can be added on-demand. -- MOS_MIGRATED_REVID=103938715
* Clarify contract of EvaluationResult -- the same key can never be present in ↵Gravatar Janak Ramakrishnan2015-09-25
| | | | | | | both an "error" and "success" state. -- MOS_MIGRATED_REVID=103897656
* Prefetch and assert done on direct deps. Also print a more informative error ↵Gravatar Janak Ramakrishnan2015-09-25
| | | | | | | message if a previously known direct dep isn't done. -- MOS_MIGRATED_REVID=103880990
* Allow Skylark import lookup values to be computed inline in order to avoid ↵Gravatar Janak Ramakrishnan2015-09-24
| | | | | | | reifying them in the Skyframe graph. -- MOS_MIGRATED_REVID=103758591
* Don't remove reverse deps until node is known to be changed. This helps ↵Gravatar Janak Ramakrishnan2015-09-23
| | | | | | | avoid mutating the deps of nodes that are still going to be deps after evaluation is finished. -- MOS_MIGRATED_REVID=103659429
* Roll back using labels rather than PathFragments for skylark loads.Gravatar Michajlo Matijkiw2015-09-22
| | | | | | | RELNOTES: -- MOS_MIGRATED_REVID=103606693
* Use Labels, rather than PathFragments, to represent Skylark loads ↵Gravatar John Field2015-09-22
| | | | | | | | | | | | | | | | | | | internally. This should be a semantics-preserving change for users. In a subsequent CL, I'll change the Skylark syntax to allow load statements to use labels as well as paths, with the goal of eventually deprecating the latter. Also: - Removed the hack for handling relative loads in the prelude file. - Refactored some redundant functionality in PackageFunction and SkylarkImportLookupFunction for handling loads. - Removed the ability to put the BUILD file for the package containing a Skylark file under a different package root than the Skylark file itself. This functionality isn't currently used and is inconsistent with Blaze's handling of the package path elsewhere. - Added BUILD files to a number of tests that load Skylark files; this is consistent with the requirement that all Skylark files need to be part of some package. - Changed the constants used to set the location of the prelude file from paths to labels. -- MOS_MIGRATED_REVID=103567562
* Mark root causes as transient. Serializing nested sets is annoying, and ↵Gravatar Janak Ramakrishnan2015-09-21
| | | | | | | since ErrorInfo doesn't override equality, there's no issue with preserving equality for now. -- MOS_MIGRATED_REVID=103414237
* Tiny typo fixGravatar Mark Schaller2015-09-21
| | | | | -- MOS_MIGRATED_REVID=103387106
* Fail fast on a crash in an InvalidatingNodeVisitor worker thread, just like ↵Gravatar Nathan Harmata2015-09-15
| | | | | | | we do in ParallelEvaluator. -- MOS_MIGRATED_REVID=103031770
* Fix rbuildfiles query operation for broken packages. We use to assume that ↵Gravatar Miguel Alcon Pinto2015-09-11
| | | | | | | all the packages referenced by subinclude files should be in the graph. But this is not the case when the package is in error (The package is in the graph but as an error value, not as a package value). This produced the crash seen in [1] for a simple query like rbuildfiles(broken/BUILD). -- MOS_MIGRATED_REVID=102869135
* Fix spelling mistake.Gravatar Janak Ramakrishnan2015-09-11
| | | | | | | I'll never get the last half hour of my life back, but at least nobody else will suffer. -- MOS_MIGRATED_REVID=102863680
* Fix Bazel breakageGravatar Damien Martin-Guillerez2015-09-11
| | | | | -- MOS_MIGRATED_REVID=102835622
* Strictly enforce reverse deps removals.Gravatar Janak Ramakrishnan2015-09-11
| | | | | | | Now that we don't clean the graph during catastrophes, we should be crashing hard in these cases. -- MOS_MIGRATED_REVID=102785226
* Delay cleaning of in-flight nodes until the following build. This allows us ↵Gravatar Janak Ramakrishnan2015-09-11
| | | | | | | | | to interrupt evaluation in constant time. Some ParallelEvaluator tests that implicitly relied on cleaning happening before the next evaluation were moved into MemoizingEvaluatorTest as a result. -- MOS_MIGRATED_REVID=102696653
* Add a method to EvaluationProgressReceiver for getting information on ↵Gravatar Nathan Harmata2015-09-03
| | | | | | | SkyFunction#compute calls. -- MOS_MIGRATED_REVID=102268773
* Don't use null as a flag when iterating over dirty direct deps. Whether or ↵Gravatar Janak Ramakrishnan2015-09-03
| | | | | | | | | not the iterator has more elements is a perfectly good signal. Also put the reference hash code into the string representation for use in debugging. -- MOS_MIGRATED_REVID=102264568
* Refactor NodeEntry, create node representation without a valueGravatar Mark Schaller2015-09-02
| | | | | | | | | | | This CL introduces a ThinNodeEntry, which is a NodeEntry without the means of accessing its value. The InvalidatingNodeVisitor does not need to access nodes' values while doing its work, so it is provided with a ThinNodeQueryableGraph, capable of producing only ThinNodeEntries. -- MOS_MIGRATED_REVID=102088111