| Commit message (Collapse) | Author | Age |
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 206157591
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
than the graph version when that is feasible.
* It's not feasible when the computation accesses outside state, i.e. is non-hermetic, so see below.
* It's also more complicated (and not worth the trouble) when the computation is taking place just for the error status.
Have SkyFunctionName declare whether the function it corresponds to is hermetic or non-hermetic. Only non-hermetically-generated SkyValues can be directly marked changed, and non-hermetic SkyFunctions have their values saved at the graph version, not the max of the child versions. All SkyFunctions are hermetic except for the ones that can be explicitly dirtied.
A marked-hermetic SkyFunction that has a transient error due to filesystem access can be re-evaluated and get the correct version: if it throws an IOException at version 1 and then, when re-evaluated at version 2 with unchanged dependencies, has a value, the version will be version 1.
All Skyframe unit tests that were doing non-hermetic things to nodes need to declare that those nodes are non-hermetic. I tried to make the minimal set of changes there, so that we had good incidental coverage of hermetic+non-hermetic nodes. Also did some drive-by clean-ups around that code.
Artifacts are a weird case, since they're doing untracked filesystem access (for source directories). Using max(child versions) for them gives rise to the following correctness bug: 1. do a build at v1 that creates a FileStateValue for dir/ at v1. Then at v2, add a file to dir/ and do a build that consumes dir/ as a source artifact. Now the artifact for dir/ will (incorrectly) have v1. Then at v1, do that build again. We'll consume the "artifact from the future". However, this can only have an effect when using the local action cache, since the incorrect value of the artifact (the mtime) is only consumed by the action cache. Bazel is already broken in this way (incremental builds don't invalidate directories), so this change doesn't make things worse.
PiperOrigin-RevId: 204210719
|
|
|
|
| |
PiperOrigin-RevId: 203248319
|
|
|
|
|
|
| |
(minor) ActionFS now implements MetadataProvider.getInput
PiperOrigin-RevId: 199575194
|
|
|
|
| |
PiperOrigin-RevId: 186397865
|
|
|
|
|
|
|
|
| |
Blaze had its own class to avoid GC from varargs array creation for the precondition happy path. Guava now (mostly) implements these, making it unnecessary to maintain our own.
This change was almost entirely automated by search-and-replace. A few BUILD files needed fixing up since I removed an export of preconditions from lib:util, which was all done by add_deps. There was one incorrect usage of Preconditions that was caught by error prone (which checks Guava's version of Preconditions) that I had to change manually.
PiperOrigin-RevId: 175033526
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 167505493
|
|
|
|
| |
PiperOrigin-RevId: 162618754
|
|
|
|
| |
PiperOrigin-RevId: 152760365
|
|
|
|
|
|
|
|
| |
WalkableGraph#getException to be given non-existent keys without crashing. Add WalkableGraph#isCycle to fill the gap in testing for the difference between non-existence and depending on a cycle.
--
PiperOrigin-RevId: 143205289
MOS_MIGRATED_REVID=143205289
|
|
|
|
|
|
|
| |
now handle failed TreeArtifact output checks gracefully.
--
MOS_MIGRATED_REVID=136627086
|
|
|
|
|
|
|
| |
The only place we now don't handle InterruptedException is in the action graph created after analysis, since I'm not sure that will be around for that much longer.
--
MOS_MIGRATED_REVID=130327770
|
|
|
|
|
|
|
| |
passed-in modified file sets.
--
MOS_MIGRATED_REVID=125173579
|
|
|
|
|
|
|
| |
Remove ArtifactFile, which is rendered obsolete by TreeFileArtifact.
--
MOS_MIGRATED_REVID=119789154
|
|
|
|
|
|
|
|
| |
This is one of the last pieces of state in BlazeRuntime that isn't safe to
share across command invocations.
--
MOS_MIGRATED_REVID=117910631
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=114202845
|
|
|
|
|
|
|
| |
ArtifactFunction.
--
MOS_MIGRATED_REVID=114174899
|
|
|
|
|
|
|
| |
Reduces garbage.
--
MOS_MIGRATED_REVID=109914243
|
|
|
|
|
|
|
| |
FileSystemValueChecker when checking for dirty actions.
--
MOS_MIGRATED_REVID=108046467
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107420673
|
|
|
|
|
|
|
| |
skipped keys. This yields some noticeable improvements for the wall times of null builds with even a small set of files to be checked for changes.
--
MOS_MIGRATED_REVID=104717653
|
|
|
|
|
|
|
| |
for changes (also log how many nodes we checked & scanned - note that we currently "scan" the entire Skyframe graph since it's not segregated by type).
--
MOS_MIGRATED_REVID=104713225
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
BlazeRuntime#recordLastExecutionTime. Also add @Nullable annotations as appropriate.
Fixes #394.
--
MOS_MIGRATED_REVID=101685096
|
|
|
|
|
|
|
| |
don't unnecessarily invalidate DirectoryListingStateValues.
--
MOS_MIGRATED_REVID=100511935
|
|
|
|
|
|
|
|
|
|
|
| |
use this functionality to properly invalidate http download nodes if the downloaded zip file doesn't match the specified hash.
This still means that the actual files downloaded may not match, but checking all such files may be too expensive.
This helps with #336 but before that issue can be closed all remote repositories (git, etc.), should have similar functionality added.
--
MOS_MIGRATED_REVID=99317085
|
|
|
|
|
|
|
|
| |
Similar to previous approach, except diff-awareness agnostic. Log
SkyKeys as is for simplicity- this is all for human consumption anyway.
--
MOS_MIGRATED_REVID=96428248
|
|
|
|
|
|
|
| |
shutdown operations.
--
MOS_MIGRATED_REVID=96351438
|
|
|
|
|
|
|
| |
DirectoryListingStateKeys as dirty. Note that the two previous "concerns" of cycles and errors (which weren't actually concerns) are now obsolete anyway.
--
MOS_MIGRATED_REVID=95441624
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=95320780
|
|
|
|
|
|
|
| |
modifications. While there could be bogus targets that modify symlinks, Bazel has output symlinks that point to source code.
--
MOS_MIGRATED_REVID=90827597
|
|
|
|
|
|
|
| |
functionality is gone.
--
MOS_MIGRATED_REVID=90289916
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=88257621
|
|
--
MOE_MIGRATED_REVID=85702957
|