Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Let value source based providers be used as task inputs

  1. … 6 more files in changeset.
Let instant execution support `Serializable` beans with only a `writeObject` method

  1. … 1 more file in changeset.
Add support for Short, Float and Double to Java serialization

  1. … 2 more files in changeset.
Serialize build service providers to the instant execution cache as a spec that is used to recreate the service instance in subsequent builds.

  1. … 10 more files in changeset.
Change instant execution serialization to handle abstract model types.

Reuse the approach used to serialize the state of abstract task types.

  1. … 9 more files in changeset.
Cache the constructors used to deserialize beans from the instant execution cache across build invocations.

  1. … 7 more files in changeset.
Record the ClassLoader associated with each class that is serialized to the instant execution cache, and use this to make class lookup on deserialize faster and to deal correctly with multiple classes with the same name.

Move some ClassLoader lifecycling from Groovy DSL script compilation to `ClassLoaderScope`, so that the scope takes care of creating and caching the script ClassLoader.

  1. … 30 more files in changeset.
Serialize the contents of `ArtifactCollection` instances to the instant execution cache.

With this change, up-to-date `assembleDebug` builds work for the Santa Tracker sample and the simple test build.

  1. … 7 more files in changeset.
Replace some direct instantiation of `FileResolver` instances with a service.

  1. … 24 more files in changeset.
Replace `nullOutputStream()` by `NullOutputStream.INSTANCE`

Signed-off-by: Rodrigo B. de Oliveira <rodrigo@gradle.com>

Suppress `unused` warnings from test

Let instant execution report include trace of `Serializable` beans

  1. … 1 more file in changeset.
Preserve identity of `Serializable` objects

  1. … 3 more files in changeset.
Extract `SerializableWriteReplaceCodec` from `BeanCodec`

  1. … 5 more files in changeset.
Improve instant execution support for Java serialization

Properly handle deserialization of graphs containing a mix of

`java.io.Serializable` beans and plain beans by introducing

`ReadContext.immediateMode`. In immediate mode, reentrant `read` calls

are not suspended for compatibility with the non-suspending semantics

of `ObjectInputStream.readObject`.

The downside of non-suspending semantics is the risk of

`StackOverflowErrors` caused by deep graphs.

  1. … 4 more files in changeset.
Polish `BeanCodecTest`

Introduce `SerializableWriteObjectCodec`

An instant execution serialization codec for objects that support Java

serialization via a custom `writeObject(ObjectOutputStream)` method.

  1. … 3 more files in changeset.
Move serialization of `Provider` types to several `Codec` implementations, rather than hard-coded into bean serialization.

  1. … 7 more files in changeset.
Give `ActionNode` and `TransformNode` a common `execute()` method and merge their `NodeExecutor` implementations.

  1. … 12 more files in changeset.
Write enough state of transformation nodes to the instant execution cache in order to actually run the transform when read from the cache. Connect this up to the file collection serialization so that the results appear in file collections read from the cache.

There are still some transformation details that are ignored for now.

  1. … 12 more files in changeset.
Refactor the transformation node codecs to reuse the binding infrastructure for writing the state of the node.

  1. … 16 more files in changeset.
Create a new set of bindings to use for serializing the work graph nodes to the instant execution cache.

Also allow a codec to create a nested context with a new isolate and codec to use for serializing nested objects. Use this to maintain a single isolate for all work nodes with nested isolates for each task instance.

  1. … 7 more files in changeset.
Split out the code that uses a set of bindings to serialize to/from the instant execution cache from the code that builds the bindings. This allows the code that uses the bindings to be reused in a context where a different set of bindings is required, specifically when serializing transform nodes.

  1. … 5 more files in changeset.
Polish instant execution serialization

- Add documentation comments

- Compose methods

  1. … 2 more files in changeset.
Polish `BeanCodecTest`

Make `Codec.decode` a suspending function

  1. … 20 more files in changeset.
Make `Codec.encode` a suspending function

So the continuations can be used to solve the `StackOverflowError`s on

deeply nested object graphs.

  1. … 20 more files in changeset.
Add repro for instant execution `StackOverflowError`

  1. … 3 more files in changeset.
Log complete path of values written to the instant execution cache

In order to make it easier to understand where values are coming from

when things go wrong.

  1. … 8 more files in changeset.
Add unit test for `fillTheGapsOf`

  1. … 1 more file in changeset.