| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
We're now using ctime to detect file changes, so the timestamp granularity monitor should as well.
Unfortunately, we currently get nanosecond ctime from Linux, but then only return millis from FileStatus, so this doesn't change the accuracy of the monitor at all.
PiperOrigin-RevId: 184536539
|
|
|
|
|
|
|
|
| |
to do.
Also change AspectDescriptor #isEmpty() semantics because they seemed like a bug to me.
PiperOrigin-RevId: 184319840
|
|
|
|
|
|
|
|
| |
has a CODEC member. AutoCodec cannot yet support other type parameters for
NestedSet, like NestedSet<List<Foo>>. This will have to wait for AutoCodec
Runtime.
PiperOrigin-RevId: 184294808
|
|
|
|
|
|
|
|
|
| |
Bazel completely swallowed errors in some cases, e.g., if the pattern is
invalid like bazel build foo//bar:baz.
Note that it previously silently ignored empty targets if --experimental_skyframe_target_pattern_evaluator was passed, and now fails (which is consistent with legacy behavior). This is an intentional change, but may break users who are using the experimental flag and are passing empty strings to Bazel.
PiperOrigin-RevId: 184282856
|
|
|
|
| |
PiperOrigin-RevId: 184211212
|
|
|
|
| |
PiperOrigin-RevId: 184177838
|
|
|
|
|
|
|
| |
ConfiguredTargetAndTarget instead of a ConfiguredTarget.
This is to assist in deprecating ConfiguredTarget.getTarget().
PiperOrigin-RevId: 184043491
|
|
|
|
| |
PiperOrigin-RevId: 184040834
|
|
|
|
| |
PiperOrigin-RevId: 184032456
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
This CL is breaking src/test/shell/bazel/srcs_test
https://ci.bazel.build/blue/organizations/jenkins/bazel-tests/detail/bazel-tests/1884/tests
Fix https://github.com/bazelbuild/bazel/issues/4548
*** Original change description ***
Verbatim, initial checkin of Kryo files for @AutoCodec Runtime.
PiperOrigin-RevId: 183977098
|
|
|
|
| |
PiperOrigin-RevId: 183904648
|
|
|
|
|
|
| |
null in AbstractPackageLoader and tests).
PiperOrigin-RevId: 183896826
|
|
|
|
|
|
| |
Scan takes 1-2s.
PiperOrigin-RevId: 183881368
|
|
|
|
|
|
|
| |
Part of #4442.
Change-Id: I44f52d4200f50af0281735fbba326dce5960e950
PiperOrigin-RevId: 183874104
|
|
|
|
| |
PiperOrigin-RevId: 183859414
|
|
|
|
|
|
|
|
|
| |
It is not compatible with multiple execution platforms.
Part of #4442.
Change-Id: I683beaae1624130352a6f02bae3f4dfff263ea00
PiperOrigin-RevId: 183855561
|
|
|
|
|
|
|
| |
Part of #4442.
Change-Id: Ia9c4403817d9c1e6497212712f96dbf6618138e9
PiperOrigin-RevId: 183855255
|
|
|
|
|
|
|
|
| |
If two SkyValue objects are equal, then Skyframe caches and returns the old one, instead of the new one. That's a problem for the detection of file changes, which uses the FileContentsProxy, which wasn't part of the equals check before this change.
Progress on #3360.
PiperOrigin-RevId: 183834897
|
|
|
|
| |
PiperOrigin-RevId: 183826311
|
|
|
|
| |
PiperOrigin-RevId: 183731563
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the need for ConfigurationTransitionProxy.DATA by providing a
way for the C++ rule defs to directly inject the transition for all rules
to use.
Skylark attributes work differently, so they'll be addressed in another
change.
PiperOrigin-RevId: 183721293
|
|
|
|
|
|
| |
Generalizes @AutoCodec.Constructor to @AutoCodec.Instantiator.
PiperOrigin-RevId: 183702768
|
|
|
|
|
|
| |
BuildConfiguration.
PiperOrigin-RevId: 183667795
|
|
|
|
|
|
| |
that took ConfiguredTargetKey.
PiperOrigin-RevId: 183519981
|
|
|
|
|
|
|
|
| |
Uses type and object equality to determine references. This results in a canonical serialized representation.
ObjectCodecTester and SerializerTester now log some timing information.
PiperOrigin-RevId: 183403658
|
|
|
|
|
|
| |
SkyKey and perform the lookup in AspectFunction, in parallel with the lookup for the base configured target introduced in unknown commit.
PiperOrigin-RevId: 183399436
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
...as completion of the respective top-level targets. In this way,
a failure is associated to its root cause, even if the cause is at
analysis phase; in particular, visibility errors are correctly
associated.
For the time beeing, we associate visibility root causes only with
labels; it is planned to change that to the more accurate configured
labels in a follow-up change.
Change-Id: I04121a7cd2099fc65171eae0719fd77b98aef09b
PiperOrigin-RevId: 183359798
|
|
|
|
|
|
| |
This should bring Serializers to parity with AutoCodec Marshallers.
PiperOrigin-RevId: 183330231
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Adds some logging to test helpers for size of serialized data.
Jan 25, 2018 7:16:25 AM com.google.devtools.build.lib.skyframe.serialization.testutils.SerializerTester testSerializeDeserialize
INFO: total serialized bytes = 70
Jan 25, 2018 7:16:25 AM com.google.devtools.build.lib.skyframe.serialization.testutils.ObjectCodecTester testSerializeDeserialize
INFO: total serialized bytes = 208
Kryo output is significantly smaller.
PiperOrigin-RevId: 183300353
|
|
|
|
| |
PiperOrigin-RevId: 183248133
|
|
|
|
|
|
| |
ConfiguredTargetAndTarget.getTarget().
PiperOrigin-RevId: 183241259
|
|
|
|
|
|
| |
Allows ObjectCodec to be registered as a Kryo Serializer.
PiperOrigin-RevId: 183149177
|
|
|
|
|
|
|
|
| |
TestConfigFragment.
Thanks to shahan@ for the TestConfigFragment code.
PiperOrigin-RevId: 183127152
|
|
|
|
|
|
| |
from package.
PiperOrigin-RevId: 183121812
|
|
|
|
|
|
|
|
| |
https://github.com/bazelbuild/bazel/commit/3863b536bcab8de2000f342c85c31c7ea91cccbe, we don't want to have to serialize/deserialize a BuildConfiguration in a SkyKey.
Cutting the edge to the aspect configuration will come in a follow-up.
PiperOrigin-RevId: 183117915
|
|
|
|
|
|
|
|
| |
BuildConfiguration: BuildConfigurations are too heavy to be in SkyKeys.
This adds an extra dependency for BuildInfoCollectionValues, but there are not many in the graph, and the dep request is now batched, which is better than before.
PiperOrigin-RevId: 183106788
|
|
|
|
| |
PiperOrigin-RevId: 183102476
|
|
|
|
|
|
|
|
| |
BuildConfiguration.Fragment>> set of Fragment classes that is part of the BuildConfigurationValue.Key. This class allows us to compute a fingerprint of the wrapped ImmutableSortedSet, making equality comparisons fast. The number of additional wrapper objects is the number of distinct sets of fragment classes, so 1. (In fact, we don't even need to compute a fingerprint, since reference equality does the job for us here, but we do it just to be conservative.)
This CL has a performance benefit for Bazel currently, but has a bigger performance benefit in the following changes, where there are more BuildConfigurationValue.Key objects to compare.
PiperOrigin-RevId: 183090122
|
|
|
|
|
|
| |
types instead of sorting.
PiperOrigin-RevId: 183083445
|
|
|
|
|
|
|
|
| |
ImmutableSortedSet wherever possible, and use a known explicit ImmutableSortedSet in the case of two sets being equal. This is mainly a cosmetic cleanup for the sequel changes.
Also rename test-only methods in SkyframeExecutor to indicate that, and do a drive-by clean-up of a test that reported hard crashes confusingly because it wrapped RuntimeExceptions.
PiperOrigin-RevId: 182984572
|
|
|
|
|
|
|
| |
Part of #4442.
Change-Id: I49d6d851787727739f50348df2e2ef48392af479
PiperOrigin-RevId: 182795733
|
|
|
|
|
|
|
| |
This will serve as an alternative to --batch, leaving behind a server without state from the previous build.
RELNOTES: Introduces --[no]keep_state_after_build
PiperOrigin-RevId: 182778500
|
|
|
|
|
|
| |
owner and fix up BuildConfigurationValue.Key. ConfiguredTargetKey is going to need some modifications to AutoCodec: probably the long-awaited static "create" method.
PiperOrigin-RevId: 182630181
|
|
|
|
|
|
|
| |
An upcoming replacement to PathFragment will not have efficient segment semantics, causing code to become unnecessarily inefficient.
RELNOTES: None
PiperOrigin-RevId: 182553098
|
|
|
|
|
|
| |
This makes it clearer that the path fragments in question are relative *to the root*. Confusingly, when the root is absolute, the root relative fragment is also absolute. This makes it a tiny bit clearer that the path fragment may be absolute.
PiperOrigin-RevId: 182544893
|
|
|
|
|
|
| |
path class.
PiperOrigin-RevId: 182526427
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Local execution has an inherent race condition: if a user modifies a file while an action is executed, then it is impossible for Bazel to tell which version of the file was actually read during action execution. The file may have been modified before or after the tool has read it, or, in the worst case, the tool may have read both the original and the modified version. In addition, the file may be changed back to the original state before Bazel can check the file, so computing the digest before / after may not be sufficient.
This is a concern for both local and remote caches, although the cost of poisoning a shared remote cache is significantly higher, and is what has triggered this work.
Fixes #3360.
We solve this by keeping a reference to the FileContentsProxy, and using that to check for modificaitons before storing the cache entry. We output a warning if this check fails.
This change does not increase memory consumption; Java objects are always allocated in multiples of 8 bytes, we use compressed oops, and the FileArtifactValue currently has 12 bytes worth of fields (excl. object overhead), so adding another pointer is effectively free.
As a possible performance optimization on purely local builds, we could also consider not computing digests at all, and only use the FileContentsProxy for caching.
PiperOrigin-RevId: 182510358
|
|
|
|
|
|
| |
Also add accessor to SkylarkInfo for the custom error message, and expose its concrete implementation classes for the benefit of reflection.
PiperOrigin-RevId: 182443146
|
|
|
|
|
|
|
|
| |
BaseRuleClasses.DYNAMIC_TRANSITION_MAP.
This leaves DATA as the last remaining legacy transition.
PiperOrigin-RevId: 182422552
|
|
|
|
|
|
|
|
| |
An absolute root accepts any absolute path fragments and simply returns it.
This concept replaces the FileSystem root directory concept.
PiperOrigin-RevId: 182400471
|