aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/serialization
Commit message (Collapse)AuthorAge
* @AutoCodec for TypeGravatar shahan2018-03-05
| | | | | | Needed for Attribute serialization. PiperOrigin-RevId: 187907727
* Automated rollback of commit 96145511b34a2d7be834e3eb05927674e875c813.Gravatar janakr2018-03-05
| | | | | | | | | | | | | | | | | | | | | *** Reason for rollback *** Fixed issue that led to rollback. RELNOTES: None *** Original change description *** Automated rollback of commit eee53d3a33dde441f7e7adaecde81ef2d3db7c1b. *** Reason for rollback *** breaks Blaze_CorpTest *** Original change description *** @AutoCodec ConfiguredTargetValue. PiperOrigin-RevId: 187869560
* Add log line to show that we're scanning for ObjectCodecs.Gravatar janakr2018-03-05
| | | | PiperOrigin-RevId: 187868296
* Automated rollback of commit eee53d3a33dde441f7e7adaecde81ef2d3db7c1b.Gravatar dannark2018-03-04
| | | | | | | | | | | | *** Reason for rollback *** breaks Blaze_CorpTest *** Original change description *** @AutoCodec ConfiguredTargetValue. PiperOrigin-RevId: 187783702
* Get rid of almost all Skylark codecs. We need to introduce a wrapper to turn ↵Gravatar janakr2018-03-03
| | | | | | | | ObjectCodec into a MEMOIZE_AFTER MemoizingCodec. I think that this is safe, because all the codecs that are being wrapped this way weren't memoizing anything internally that I could see. In order to @AutoCodec the WithValue type, which is generic and can have null elements in lists, add functionality to @AutoCodec to deal with generic type static instantiators, matching generic type arguments (although I'm not sure why that wasn't already working), and null elements in lists. PiperOrigin-RevId: 187740461
* Replace LegacySkyKey by AbstractSkyKey or custom SkyKeys. AbstractSkyKey ↵Gravatar janakr2018-03-02
| | | | | | | | doesn't save memory in the 32-bit case, but makes it easier for people to see how many SkyKeys we have. There's some unnecessary interning in tests, but it was easier to copypasta and doesn't harm anything, I think. PiperOrigin-RevId: 187694309
* @AutoCodec ConfiguredTargetValue.Gravatar cpeyser2018-03-02
| | | | PiperOrigin-RevId: 187635570
* Make the distinction between "global frame" and "lexical frame" explicit. As ↵Gravatar nharmata2018-03-01
| | | | | | | a nice consequence, this lets us reduce GC churn since we no longer need to create a frame instance for the lexical frame at a callsite of either a function when the environment is frozen or a builtin function (since builtins cannot modify bindings in their lexical frame). RELNOTES: None PiperOrigin-RevId: 187495787
* Deletes CODEC fields now that they are no longer needed.Gravatar shahan2018-02-28
| | | | PiperOrigin-RevId: 187397314
* Create a runtime codec for HashCode.Gravatar mjhalupka2018-02-28
| | | | | | Remove the HashCode marshaller. PiperOrigin-RevId: 187350917
* Deletes AutoCodec.Strategy.SINGLETON now that we have @AutoCodec field tags.Gravatar shahan2018-02-28
| | | | | | This also gets rid of some static initialization cycles which we should try very hard to avoid in the future. PiperOrigin-RevId: 187334087
* Removes the need to map SkyFunctionName to codec in SkyKeySerializerGravatar shahan2018-02-27
| | | | | | | | | | | * FILE_SYMLINK* codecs need ImmutableList so this adds an ImmutableList runtime codec. * Adds SkyFunction names where codecs exist for their SkyKeys. * Adds a few @AutoCodec singleton codecs. We cannot yet disable the ImmutableList marshaller because currently the runtime ImmutableList codec requires runtime codecs for the contained elements, which doesn't hold everywhere (particularly for protos). PiperOrigin-RevId: 187224736
* Pass constants along when recreating Builder in ObjectCodecRegistry.Gravatar janakr2018-02-27
| | | | PiperOrigin-RevId: 187212436
* Tags mapped singletons in SkyValueEncoderGravatar shahan2018-02-27
| | | | PiperOrigin-RevId: 187209783
* Add RegisteredSingleton to Bazel bootstrap process.Gravatar janakr2018-02-27
| | | | PiperOrigin-RevId: 187199625
* PiperOrigin-RevId: 187193766Gravatar mjhalupka2018-02-27
|
* Tag ParameterFileWriteAction with @AutoCodec.Gravatar mjhalupka2018-02-27
| | | | | | | | This requires codecs for CustomCommandLine and a Marshaller for Charset. Added AutoCodec functionality to generic classes like Iterable<T>. PiperOrigin-RevId: 187182889
* Allow @AutoCodec to tag static final fields, and generate a "pointer" class ↵Gravatar janakr2018-02-26
| | | | | | that has a single static INSTANCE field pointing back to the target field, so that serialization can grab it. PiperOrigin-RevId: 187065629
* Retain @AutoCodec at runtime.Gravatar janakr2018-02-26
| | | | PiperOrigin-RevId: 187059719
* Add support for parameterized types to AutoCodec.Gravatar cpeyser2018-02-26
| | | | | | | | | | AutoCodec still cannnot handle types with generic elements, e.g. class Foo<T> { private T member; } PiperOrigin-RevId: 187052487
* Add support to @AutoCodec for long and byte fields, and centralize primitive ↵Gravatar janakr2018-02-24
| | | | | | logic so that we can transparently handle arrays. We no longer care about the type of an object in AutoCodecProcessor: Marshallers is in charge of getting the correct code generator for array types anyway, so it can handle bare primitives as well. PiperOrigin-RevId: 186919695
* SerializationTester uses an addDependency method instead ofGravatar shahan2018-02-24
| | | | | | | | (Des|S)erializationContext factories. This is consistent as ObjectCodecs will eventually create context objects if needed. PiperOrigin-RevId: 186900662
* AutoCodec verifies that constructor parameter and field types are related.Gravatar shahan2018-02-24
| | | | | | | This isn't 100% safe, which requires 1:1 type correspondence, but can catch some errors at compile time. PiperOrigin-RevId: 186898025
* Integrates CodecScanner into SkyValueEncoder.Gravatar shahan2018-02-23
| | | | | | | | * Deletes a number of CODEC references, now superceded by registry functionality. * Minimal SkyKeySerializer modifications for correctness, as certain codec changes require codecs to be in available in the registry. PiperOrigin-RevId: 186834520
* Deletes POLYMORPHIC strategy. ObjectCodec now uses runtime type information ↵Gravatar shahan2018-02-20
| | | | | | to select a codec. PiperOrigin-RevId: 186378153
* Adds ObjectCodecRegistry to {Des|S}erializationContext.Gravatar shahan2018-02-20
| | | | | | | | | | | | * AutoCodec now delegates to the registry. * Adds getSuperclass logic for resolving a codec. * Small cleanups for classes that break the registry. TODO after this change: * Explicit CODEC definitions are no longer needed and existing ones should be cleaned up. * POLYMORPHIC is no longer be needed and should be cleaned up. PiperOrigin-RevId: 186351845
* Some autocodec changes required to serialize SpawnAction: double field and ↵Gravatar cpeyser2018-02-20
| | | | | | CharSequence fields. PiperOrigin-RevId: 186323424
* Finish cleanup of unthreaded contextsGravatar michajlo2018-02-15
| | | | PiperOrigin-RevId: 185847377
* Fix typo in javadocGravatar michajlo2018-02-15
| | | | PiperOrigin-RevId: 185844072
* Adds Class-keyed lookup to ObjectCodecRegistry and populates it using ↵Gravatar shahan2018-02-14
| | | | | | | | | CodecScanner. Introduces a class, CodecRegisterer, to allow customization of the scan-based registration process. PiperOrigin-RevId: 185749655
* Add a CODEC for CppCompileAction.Gravatar cpeyser2018-02-14
| | | | PiperOrigin-RevId: 185733313
* Drop unused SerializerAdapterGravatar michajlo2018-02-13
| | | | | | | Cleaning up references to {Des,S}erializationContext.UNTHREADED_PLEASE_REMOVE, deleting the code is easier than deciding how to adapt context. PiperOrigin-RevId: 185602054
* Add ability to use getter in AutoCodecProcessor when field for instantiator ↵Gravatar janakr2018-02-13
| | | | | | | | parameter isn't present. Allows us to handle cases where the class type encodes the parameter value. This also gives a compile-time check that field is present before blindly using it in codec. Lets us get rid of a non-AutoCodec class. PiperOrigin-RevId: 185573686
* Replaces InjectingObjectCodec with dependencies threaded through ↵Gravatar shahan2018-02-13
| | | | | | (Des|S)erializationContext. PiperOrigin-RevId: 185547740
* Add context argument to ObjectCodec.{serialize,deserialize}Gravatar michajlo2018-02-11
| | | | | | | | | | 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
* Add support to Polymorphic strategy for grandchild classes that have no ↵Gravatar janakr2018-02-09
| | | | | | codec, but whose parent classes have codecs. This is ok because the polymorphic strategy doesn't need an instance of the grandchild class: the parent class is fine, so long as it has a codec. PiperOrigin-RevId: 185200943
* Add support for javabeans-style getters ("getFoo()", "isFoo()") to AutoCodec'sGravatar cpeyser2018-02-08
| | | | | | AutoValue support. This is required to serialize ActionOwner. PiperOrigin-RevId: 185037291
* Add an AutoCodec marshaller for UUID. This is required to serializeGravatar cpeyser2018-02-08
| | | | | | CppCompileAction. PiperOrigin-RevId: 185020942
* Extract registry functionality from ObjectCodecsGravatar michajlo2018-02-07
| | | | | | | | | | This partially solves the age old problem of how to find a codec for a value we don't know the type of at compile time, and allows us to represent such values on the wire more compactly. @AutoCodec's injecting codec should be able to make use of this right away - we'll need to make an API change to the ObjectCodec interface to allow the existing system to make use. PiperOrigin-RevId: 184918173
* @AutoCodec adds Singleton strategy.Gravatar shahan2018-02-07
| | | | PiperOrigin-RevId: 184889583
* Add NestedSetCodec to AutoCodec's deploy jar.Gravatar cpeyser2018-02-06
| | | | PiperOrigin-RevId: 184784669
* @AutoCodec support for superclasses having generic parameters.Gravatar shahan2018-02-06
| | | | PiperOrigin-RevId: 184720361
* Add Supplier support to AutoCodec.Gravatar cpeyser2018-02-06
| | | | PiperOrigin-RevId: 184710375
* Throw NoCodecException on ByteString getCodec specializationGravatar michajlo2018-02-06
| | | | | | Looks like this got missed. PiperOrigin-RevId: 184701334
* Makes @AutoCodec only use Instantiator parameter type information and ignoreGravatar shahan2018-02-06
| | | | | | field type information. PiperOrigin-RevId: 184695891
* Add a marshaller in AutoCodec for Iterable. This marshaller performs a ↵Gravatar cpeyser2018-02-06
| | | | | | runtime check on the type of the iterable, performing custom serialization for a NestedSet. PiperOrigin-RevId: 184686288
* Add NestedSet support in AutoCodec for type parameters which have an ↵Gravatar cpeyser2018-02-05
| | | | | | InjectingObjectCodec. PiperOrigin-RevId: 184566571
* AutoCodec can support NestedSet<T>, where T is a declared declared type thatGravatar cpeyser2018-02-02
| | | | | | | | 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
* @AutoCodec @AutoValue supportGravatar shahan2018-02-01
| | | | PiperOrigin-RevId: 184211212
* Automated rollback of commit db65f80cc83d562c0f63c34ce9d9a58fad0e3b0c.Gravatar pcloudy2018-01-31
| | | | | | | | | | | | | | | *** 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