- 3cb0c39 Tighten the type of NodeEntry#getAllRemainingDirtyDirectDeps since it is always an ImmutableSet. by janakr · 6 years ago
- 0d7c71a Tolerate null dirtyBuildingState when rewinding by mschaller · 6 years ago
- ac6d4fd Meaningfully name a local variable in addReverseDepAndCheckIfDone by mschaller · 6 years ago
- 20eeaad Add Skyframe support for external computations by ulfjack · 6 years ago
- 9beabe0 Move signaledDeps to DirtyBuildingState by ulfjack · 6 years ago
- dd4c47f Tolerate the situation of injecting nodes that already exist into an edgeless graph. This can happen if the previous Bazel command ends after an injection is planned, but before it happens, and the next build is edgeless (the first build could be edgeless too, doesn't matter). by janakr · 6 years ago
- ad1c2e4 Fix theoretical bug pointed out by jhorvitz@, that GroupedList assumes its elements are either raw or Lists, but #appendGroup(Collection) might add a Set or other Collection, which we wouldn't handle correctly. by janakr · 6 years ago
- 7d7beedd Get rid of #signalDep(). The default version argument makes less sense with non-int versions in play: it depends on the fact that IntVersion.of(Long.MAX_VALUE) is a maximal element in the partial order of versions, but that's not explicitly enforced. Better to pass the graph version explicitly, which also gives us more debugging information about the signaling key as a bonus. Care was taken to pass the actual evaluating version in all cases, although, as implied above, any version that's incompatible with the node's current version is enough to trigger a re-evaluation. by janakr · 6 years ago
- 5b4f237 Remove untrue @VisibleForTesting annotation on InMemoryNodeEntry#dirtyBuildingState, incorrect even when it was introduced in unknown commit. by janakr · 6 years ago
- 3e145b3 Internal change by Googler · 6 years ago
- 331796f Automated rollback of commit d6eb5de1fab9f9a83b527e52bc7c3e64c19c209b. by Googler · 6 years ago
- a2d4d3d Allow NodeEntries to prune their deps based on fingerprinting the dep group. This is useful in situations in which the deps themselves are forbidden from value-based pruning because of subtle version bugs. by janakr · 6 years ago
- d6eb5de Increase visibility on node methods for internal use cases. by Googler · 6 years ago
- bf316f7 Mark InMemoryNodeEntry#value and #lastChangedVersion as volatile. Without that, unsynchronized calls to #getVersion and #getValueMaybeWithMetadata can get inconsistent results if done concurrently with #setValue, since the JVM is free to reorder the lines inside #setValue, even though it's synchronized. by janakr · 6 years ago
- f998f4e Automatic code cleanup. by Googler · 6 years ago
- cdb1d12 Fix conflict where a SkyKey could have ShareabilityOfValue.ALWAYS while its SkyValue was an instance of UnshareableValue. by Googler · 6 years ago
- 1c12170 Fix incorrect ChangedValueAtSameVersionException. by Googler · 6 years ago
- 0eedeba When precomputed values change, still use the injected version instead of the evaluating version. by Googler · 6 years ago
- 159a42a Enable ability to selectively omit change pruning. by Googler · 6 years ago
- 44666dc Adds childForDebugging parameter to NodeEntry.signalDep method. by shahan · 6 years ago
- 8d98d92 Change hasChildChanged method name to childCausesReevaluation, to indicate that we may force the parent to re-evaluate even if the child's value hasn't changed. by janakr · 6 years ago
- 5469139 Factor out version assertions in InMemoryNodeEntry, and make those assertions go to logError() so that they can be handled specially by subclasses if desired. by janakr · 6 years ago
- d4a6ca0 Allows subclasses of InMemoryNodeEntry to determine whether a child has actually changed. by shahan · 6 years ago
- 7138b07 Mark nodes to be force-rebuilt during node restarting by mschaller · 6 years ago
- c5a2f81 Remove "synchronized" from InMemoryNodeEntry.getVersion(). References in Java by Googler · 7 years ago
- e54491e Set the version of a computed node to the max of its child versions rather than the graph version when that is feasible. by janakr · 7 years ago
- a8926b7 Convert directDeps to a map of SkyValues by mschaller · 7 years ago
- 29a7e05 Permit marking dirty/changed a node more than once by mschaller · 7 years ago
- 745232b Add hacky method to InMemoryNodeEntry for fast but unsafe iteration over in-progress reverse deps. by janakr · 7 years ago
- 46706ae Allow SkyFunctions to return a sentinel value indicating that all of a node's in-progress data should be forgotten, and its evaluation should be restarted from scratch, as if it were freshly created/dirtied. To guard against this happening unexpectedly, any such events are passed to a GraphInconsistencyReceiver, which can verify that the SkyFunction is behaving properly. by janakr · 7 years ago
- 44eb964 Fix accidental eager expansion of grouped list in in-memory nodes. by felly · 7 years ago
- a6679ae Optimize GC usage of iterating over all elements of GroupedLists when we don't care about the group structure, and simplify the logic for prefetching old deps. by shreyax · 7 years ago
- 19e03d7 Remove synchronization from InMemoryNodeEntry#getValue{,MaybeWithMetadata} and #toValue. I saw significant contention from this method in some experiments, and the synchronization isn't needed, since we only call these methods on done nodes (as determined by #isDone), and a node that is observably done cannot racily change its value. by janakr · 7 years ago
- 5d63436 Add a static method GroupedList#numElements to allow to count the number of deps from a compressed GroupedList without uncompressing it. Also some minor GC improvements. by shreyax · 7 years ago
- 3b5b55b Allow InMemoryNodeEntry subclasses to change which reverse dep operation to store bare. by janakr · 7 years ago
- a155b53 Replace all usages of Blaze's Preconditions class with guava. by tomlu · 7 years ago
- 4f7be0f Push NodeEntry#keepEdges down to InMemoryNodeEntry. It's not needed on the general interface. by janakr · 7 years ago
- 1cde872 Allow NodeEntry implementations to keep just deps, as opposed to all edges or no edges. Also add option to disable checks in MemoizingEvaluatorTest that don't make sense for implementations that don't keep track of dirty nodes. Also extract RecordingDifferencer to an interface. And add a test for the situation that a node changes during a build that it's not requested, and which fails, necessitating cleanup. by janakr · 7 years ago
- 446f0ba Switch from using Iterable to Collection in the return type to be more explicit. by shreyax · 8 years ago
- ab10f47 Remove BuildingState, since it only has one field. Instead, keep the signaledDeps field directly in InMemoryNodeEntry. by Janak Ramakrishnan · 8 years ago
- cb8a97d Stop storing reverse deps to signal in BuildingState. Instead, re-use the reverseDepsToConsolidate field in InMemoryNodeEntry. As part of that, revamp our logic of how we store pending operations: store adds bare on initial evaluations, and checks bare on incremental evaluations and operations on done nodes. by Janak Ramakrishnan · 8 years ago
- 8d2311d Refactor DirtyBuildingState to allow custom implementation on storing the by Googler · 8 years ago
- cc1b9b3 Unsynchronize InMemoryNodeEntry#isDone. The buildingState variable's state changes are visibile to all other threads by volatility and we don't read the variable at any intermediate or inconsistent state (simply check against null or a constant). reverseDepsToSignal is also made volatile for subclasses that need volatile reads to it. by Shreya Bhattarai · 8 years ago
- 2b8a3a4 Stop storing a set in GroupedListHelper to deduplicate SkyKey dep requests. Instead, deduplicate when the helper is actually added to a GroupedList. by Janak Ramakrishnan · 8 years ago
- 3c0adb2 Allow Skyframe graph lookups and value retrievals to throw InterruptedException. by Janak Ramakrishnan · 9 years ago
- 5dddb00 Refactor BuildingState to save memory. by Janak Ramakrishnan · 9 years ago
- 5093499 Re-use the InMemoryNodeEntry#directDeps field for temporary direct deps. by Janak Ramakrishnan · 9 years ago
- 772b5bb Minor documentation and visibility tweaks to InMemoryNodeEntry and InvalidatedNodeEntry. by Janak Ramakrishnan · 9 years ago
- bc8e1e7 Get rid of boolean field in InMemoryNodeEntry. After adding the lastEvaluated/lastChanged version fields, we lost memory alignment, so this boolean was costing us 8 bytes per instance. by Janak Ramakrishnan · 9 years ago
- f76c959 Remove reverse deps lazily, only when the node has finished building and we discover that it no longer has certain deps. by Janak Ramakrishnan · 9 years ago
- 3b5d5d2 Stop converting temporary direct deps to a set. In almost all cases, this conversion is unnecessary and wasteful. In the remaining cases, the set conversion can be explicit. by Janak Ramakrishnan · 9 years ago
- 058c4ab Don't check direct deps when doing change pruning. Since dependents of a node don't have access to its dependencies ("grandparents don't know grandchildren", or vice versa, depending on your point of view), changes to a node's dependencies can't affect downstream nodes. by Janak Ramakrishnan · 9 years ago
- e141286 Intern IntVersions. by Janak Ramakrishnan · 9 years ago
- 6df8179 Use Bazel Preconditions variant which avoids varargs array creation by Mark Schaller · 9 years ago
- d1cd14b Avoid list copy in BuildingState.getNextDirtyDirectDeps by Mark Schaller · 9 years ago
- d2eff4e Avoid extra rdeps copy when finishing node by Mark Schaller · 9 years ago
- 4f487f4 Extract ReverseDepsUtil interface so that InMemoryNodeEntry can be partially isolated from implementation details. by Janak Ramakrishnan · 9 years ago
- 1d22d4c Avoid re-evaluating a parent node when a child is found to be unchanged from an earlier version at which the child changed but the parent did not. by Janak Ramakrishnan · 9 years ago
- 4bbde14 Return rdeps when marking a node dirty by Mark Schaller · 9 years ago
- 441dcb1 Delay additions as well as removals of reverse deps. Now that removals are 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. by Janak Ramakrishnan · 9 years ago
- 84dcaa4 Be more specific about InMemoryNodeEntry.getGroupedDirectDeps by Mark Schaller · 9 years ago
- aff46bc Increase visibility of an InMemoryNodeEntry method by Mark Schaller · 9 years ago
- 9cdb8a4 Simplify buildingState check in markClean by Mark Schaller · 9 years ago
- f88f4d8 Rationalize copyright headers by Damien Martin-Guillerez · 10 years ago
- 5877b8b Don't remove reverse deps until node is known to be changed. This helps avoid mutating the deps of nodes that are still going to be deps after evaluation is finished. by Janak Ramakrishnan · 10 years ago
- 7ad99cb Strictly enforce reverse deps removals. by Janak Ramakrishnan · 10 years ago
- 5411129 Delay cleaning of in-flight nodes until the following build. This allows us to interrupt evaluation in constant time. by Janak Ramakrishnan · 10 years ago
- 0afd453 Return raw SkyValue instead of wrapped ValueWithMetadata. by Janak Ramakrishnan · 10 years ago
- 62ae0cc Fix some nits and allow alternate evaluators to use MemoizingEvaluatorTest. by Janak Ramakrishnan · 10 years ago
- 593d3e0 Don't return SkyValue when dirtying node by Mark Schaller · 10 years ago
- 96f9ea0 Change return type of InMemoryNodeEntry#getReverseDeps to Collection<SkyKey>. by Janak Ramakrishnan · 10 years ago
- 2f55dd8 Modify BuildingState to allow for alternative implementations. by Janak Ramakrishnan · 10 years ago
- 2c19a57 Replaced other occurrences of Objects#toStringHelper with MoreObjects#toStringHelper by Googler · 10 years ago
- c533acd Revert the recent changes that made some skyframe-internal data structures serializable; alternative graph implementations no longer need these. by Nathan Harmata · 10 years ago
- df22aaf Add the method InMemoryNodeEntry#getGroupedDirectDeps so callers can access the ordered list of grouped deps. by Nathan Harmata · 10 years ago
- b408f9e Refactor NodeEntry to be an interface. by Nathan Harmata · 10 years ago