| Commit message (Collapse) | Author | Age |
... | |
|
|
|
|
|
| |
by cc_library.
PiperOrigin-RevId: 185729248
|
|
|
|
| |
PiperOrigin-RevId: 185728682
|
|
|
|
| |
PiperOrigin-RevId: 185609826
|
|
|
|
|
|
|
|
| |
concrete subclasses. Improve debugging message on serialization failures.
Lot of test-side changes to make sure aspects are properly registered with the RuleClassProvider.
PiperOrigin-RevId: 185607202
|
|
|
|
| |
PiperOrigin-RevId: 185595397
|
|
|
|
|
|
| |
(Des|S)erializationContext.
PiperOrigin-RevId: 185547740
|
|
|
|
|
|
|
|
|
|
| |
Context implementations are currently empty, just doing the plumbing in this
change. Once this is in we can start passing along the ObjectCodecRegistry, which
will allow runtime codec resolution for classes not known at compile time.
We'll also inevitably add some memoization helpers, allowing us to optimize the
serialization process further.
PiperOrigin-RevId: 185305674
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Path and PathFragment have been replaced with String-based implementations. They are pretty similar, but each method is dissimilar enough that I did not feel sharing code was appropriate.
A summary of changes:
PATH
====
* Subsumes LocalPath (deleted, its tests repurposed)
* Use a simple string to back Path
* Path instances are no longer interned; Reference equality will no longer work
* Always normalized (same as before)
* Some operations will now be slower, like instance compares (which were previously just a reference check)
* Multiple identical paths will now consume more memory since they are not interned
PATH FRAGMENT
=============
* Use a simple string to back PathFragment
* No more segment arrays with interned strings
* Always normalized
* Remove isNormalized
* Replace some isNormalizied uses with containsUpLevelReferences() to check if path fragments try to escape their scope
* To check if user input is normalized, supply static methods on PathFragment to validate the string before constructing a PathFragment
* Because PathFragments are always normalized, we have to replace checks for literal "." from PathFragment#getPathString to PathFragment#getSafePathString. The latter returns "." for the empty string.
* The previous implementation supported efficient segment semantics (segment count, iterating over segments). This is now expensive since we do longer have a segment array.
ARTIFACT
========
* Remove Path instance. It is instead dynamically constructed on request. This is necessary to avoid this CL becoming a memory regression.
RELNOTES: None
PiperOrigin-RevId: 185062932
|
|
|
|
| |
PiperOrigin-RevId: 184983111
|
|
|
|
| |
PiperOrigin-RevId: 184862552
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 184498836
|
|
|
|
|
|
|
|
| |
either a Label or a List<Label>. We can easily enforce this through static type checking, so do it.
This will help with LateBoundDefault serialization, since we don't have to serialize an arbitrary object.
PiperOrigin-RevId: 184347100
|
|
|
|
|
|
|
|
| |
to do.
Also change AspectDescriptor #isEmpty() semantics because they seemed like a bug to me.
PiperOrigin-RevId: 184319840
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 184016150
|
|
|
|
| |
PiperOrigin-RevId: 183859414
|
|
|
|
| |
PiperOrigin-RevId: 183842057
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 182937363
|
|
|
|
|
|
| |
java.util.function.Predicate and move some code that was only called by TestFilter inside it.
PiperOrigin-RevId: 182884550
|
|
|
|
|
|
|
| |
Part of #4442.
Change-Id: I6debbf7cfdf560d2113e736176702c2cd889c0d2
PiperOrigin-RevId: 182763864
|
|
|
|
|
|
|
| |
An upcoming replacement to PathFragment will not have efficient segment semantics, causing code to become unnecessarily inefficient.
RELNOTES: None
PiperOrigin-RevId: 182553098
|
|
|
|
|
|
| |
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 IOException is encountered from a Globber. The io error may have been encountered during evaluation of one of the 'excludes' patterns.
RELNOTES: None
PiperOrigin-RevId: 182390180
|
|
|
|
|
|
|
|
|
|
|
| |
This class represents a root (such as a package path or an output root) used for file lookups and artifacts. It is meant to be as opaque as possible in order to hide the user's environment from sky keys and sky functions.
Roots are used by RootedPaths and ArtifactRoots.
This CL attempts to make the minimum number of modifications necessary to change RootedPath and ArtifactRoot to use these fields. Deprecated methods and invasive accessors are permitted to minimise the risk of any observable changes.
RELNOTES: None
PiperOrigin-RevId: 182271759
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 182223038
|
|
|
|
|
|
|
|
|
| |
This avoids invalid layouts (non-sequential map values), and provides better separation between a layout's representation as a map and its view as a list.
Also removed a factory method that's unnecessary, now that the plan is not to closely tie SkylarkInfo to SkylarkProvider.
RELNOTES: None
PiperOrigin-RevId: 181807071
|
| |
|
|
|
|
|
|
|
|
|
|
| |
When checking for conflicts between an input and an output file
of a rule, honor the repository the label belongs to. It is a
perfectly valid use case to create one file from an equally named
(including path) in a different repository.
Change-Id: I3aaa99eaa0c473ec31c5cc77beacf657c41ef56d
PiperOrigin-RevId: 181761940
|
|
|
|
|
|
|
| |
Info objects no longer store a string pointer for their error message format, which is almost always the same as the one specified by their provider type. Only map-based SkylarkInfo used this (for fancy built-in structs like ctx.attr), so the field is pushed down to there.
RELNOTES: None
PiperOrigin-RevId: 181654641
|
|
|
|
| |
PiperOrigin-RevId: 181624201
|
|
|
|
|
|
|
|
|
| |
- Info now has one protected constructor. (Would've preferred the builder pattern, but inheritance makes it much more verbose.)
- Direct SkylarkInfo subclass access is replaced by factory methods and an isCompact() accessor.
- Added/simplified tests
RELNOTES: None
PiperOrigin-RevId: 181616757
|
|
|
|
|
|
|
|
|
| |
- Reorder Info methods for consistency with ClassObject
- "StructConstructor" -> "StructProvider"
- Added javadoc
RELNOTES: None
PiperOrigin-RevId: 181469643
|
|
|
|
| |
PiperOrigin-RevId: 180291093
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
config.transitions.ConfigurationTransitionProxy.
The "proxy" part is to dissuade people from writing:
void myfunc(ConfigurationTransition transition)
signatures casually.
Maybe that's actually a better name than "Transition". But I'd rather
rename Transition to ConfigurationTransition in its own change if we
want to do that.
PiperOrigin-RevId: 180285321
|
|
|
|
|
|
|
| |
The terminology "field" is preferred over "key" for the components of a struct or struct-like object.
RELNOTES: None
PiperOrigin-RevId: 180269374
|
|
|
|
|
|
|
| |
This simplifies the location field (now non-nullable), removes a couple redundant loc args, and clarifies the type's description and some javadoc.
RELNOTES: None
PiperOrigin-RevId: 180210943
|
|
|
|
| |
PiperOrigin-RevId: 179948322
|
|
|
|
| |
PiperOrigin-RevId: 179936355
|
|
|
|
|
|
|
| |
thing. Also remove some TODOs that were leftover from before we added the caches used after a PackageFunction restart.
RELNOTES: None
PiperOrigin-RevId: 179926806
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Change FileType to no longer assume it operates on just the base name (it can now be given a full path).
* Move the responsibility to specific classes (Artifact, Path, PathFragment) to decide how they want to offer up a string that includes the file name.
* Flip the order in which users are expected to check Artifact type, from FileType#matches(Artifact) to Artifact#isFileType(FileType). This looks natural and should encourage developers to use efficient file type checking methods.
* Change CppCompileAction to use the new API.
RELNOTES: None
PiperOrigin-RevId: 179903239
|
|
|
|
|
|
|
| |
Also add a @VisibleForTesting accessor to SkyframeExecutor.
RELNOTES: None
PiperOrigin-RevId: 179875655
|
|
|
|
|
|
| |
Use HostTransition.INSTANCE instead.
PiperOrigin-RevId: 179851769
|
|
|
|
|
|
|
| |
A new constructor is exposed for building an already-exported SkylarkProvider. The existing constructor no longer takes a name argument (since it was almost entirely ignored). The contract around the name arg for BaseFunction has been refined: it is null if the subclass provides its own naming mechanism.
RELNOTES: None
PiperOrigin-RevId: 179804491
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 179757650
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the main barrier to making host transitions routine
patch transitions.
Today you signify a host transition by calling
Attribute.Builder.cfg(ConfigurationTransition.HOST). Blaze's
configuration machinery auto-converts this to
HostTransition.INSTANCE, which is a patch transition.
This change provides the groundwork for removing
ConfigurationTransition.HOST and removing the special conversion
logic. This also paves the way for better API support for
multiple host configurations.
Also change some cfg(HOST) rule references to
cfg(HostTransition.INSTANCE).
PiperOrigin-RevId: 179754619
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 179737025
|
|
|
|
|
|
| |
this assumption doesn't hold under JDK 9.
PiperOrigin-RevId: 179443947
|
|
|
|
|
| |
RELNOTES: None.
PiperOrigin-RevId: 178760403
|
|
|
|
|
| |
RELNOTES: None
PiperOrigin-RevId: 178408662
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
*** Reason for rollback ***
This breaks downstream projects and blocks Bazel's 0.9.0 release. See https://github.com/bazelbuild/bazel/issues/4249 for more information.
*** Original change description ***
Move override check to the createAndOverrideRule function
So we actually test for override also from skylark repositories.
Fixes #3908.
Change-Id: I7650a17834a6915a73c89df46989f72aa2f56920
PiperOrigin-RevId: 178370143
|