| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
An absolute root accepts any absolute path fragments and simply returns it.
This concept replaces the FileSystem root directory concept.
PiperOrigin-RevId: 182400471
|
|
|
|
|
|
|
| |
Most places handle them the same way as IOException, which seems like a safe
default. The places that do care can still throw or catch the more specific type.
PiperOrigin-RevId: 181719688
|
|
|
|
|
|
| |
Windows doesn't have a root directory, so this abstraction doesn't make sense and should be removed.
PiperOrigin-RevId: 181638749
|
|
|
|
|
|
|
|
| |
This is in preparation for merging FileArtifactValue and FileStateValue.
Progress on #3360.
PiperOrigin-RevId: 179832948
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
'create' method.
This paves the way for changing PathFragment to e.g. an abstract class with multiple subclasses. This way we can split out the windows-specific stuff into one of these concrete classes, making the code more readable and also saving memory (since the shallow heap size of the NonWindowsPathFragment subclass will hopefully be smaller than that of the current PathFragment).
This also lets us pursue gc churn optimizations. We can now do interning in PathFragment#create and can also get rid of unnecessary intermediate PathFragment allocations.
RELNOTES: None
PiperOrigin-RevId: 152145768
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
--
MOS_MIGRATED_REVID=136448178
|
|
|
|
|
|
|
|
|
| |
doesn't exist.
In addition to saving a filesystem operation, this removes a source of a potential filesystem inconsistency.
--
MOS_MIGRATED_REVID=136355008
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** 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 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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
encountered during a build
Currently when evaluating a file or symlink leading to an external mutable object, Blaze throws an exception with unclear messages. The message does not contain the actual path but rather [/]/[] instead. This change updates FileFunction to allow bubbling up the error with the accurate path.
--
MOS_MIGRATED_REVID=118381323
|
|
|
|
|
|
|
| |
Reduces garbage.
--
MOS_MIGRATED_REVID=109914243
|
|
|
|
|
|
|
|
|
| |
Fixes #352.
RELNOTES: Files in external repositories are now treated as mutable, which will make the correctness guarantees of using external repositories stronger (existent), but may cause performance penalties.
--
MOS_MIGRATED_REVID=109676408
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=107726105
|
|
|
|
|
| |
--
MOS_MIGRATED_REVID=105742091
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Original CL uncovered a depot issue which was fixed in []. I verified it was the only such issue (see []).
*** Original change description ***
Rollback of commit f87a414a6bf50613a2c419e53a96f76154f44ae3.
*** Reason for rollback ***
Rolling back until [] is submitted and we have verified that there are no other breakages
*** Original change description ***
Handle the case of infinite symlink expansion where a path in a symlink chain is a symlink to an ancestor of a path in the chain.
--
MOS_MIGRATED_REVID=105251788
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
Rolling back until [] is submitted and we have verified that there are no other breakages
*** Original change description ***
Handle the case of infinite symlink expansion where a path in a symlink chain is a symlink to an ancestor of a path in the chain.
--
MOS_MIGRATED_REVID=105080445
|
|
|
|
|
|
|
| |
chain is a symlink to an ancestor of a path in the chain.
--
MOS_MIGRATED_REVID=104969893
|
|
|
|
|
|
|
| |
previous change that was trying to optimize away a filesystem call.
--
MOS_MIGRATED_REVID=104246368
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
reifying them in the Skyframe graph.
--
MOS_MIGRATED_REVID=103758591
|
|
|
|
|
|
|
| |
FileStateValue for a path realpath 'parent/child' if 'parent' is known to not exist. This saves a stat for each ancestor path.
--
MOS_MIGRATED_REVID=102881929
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This seems to be the least insane approach within the following boundaries:
- Skyframe apparently doesn't allow GlobFunction to recover if FileFunction had already raised an exception that Skyframe knows about (this is somewhat surprising)
- I didn't want to change FileFunction not to throw an exception for dangling symlinks because this part of the code is scary
- I didn't want to revert to Skyframe-based symlink resolution for symlinks in immutable directories because that would be a performance hit
- I didn't want to write yet another symlink resolver and the two existing ones (FileSystem#resolveSymlinks() and and FileFunction#getSymlinkTargetRootedPath()) don't work: the former cannot resolve just one level of symlinks and the latter cannot do its job without adding Skyframe dependencies
I had to put in a placeholder value for realRootedPath when the FileValue represents a dangling symlink, because FileStateValue.create() relies on the symlink target being different than the symlink itself.
RELNOTES:
--
MOS_MIGRATED_REVID=101756189
|
|
|
|
|
|
|
| |
'a/nope'.
--
MOS_MIGRATED_REVID=99337668
|
|
|
|
|
|
|
| |
chains.
--
MOS_MIGRATED_REVID=89511018
|
|
--
MOE_MIGRATED_REVID=85702957
|