Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Move identity preserving combinators to `Codec.kt`

  1. … 3 more files in changeset.
Polish `BeanCodec`

- Extract `withBeanTrace` so it can be reused in the `Serializable` codecs

- Use slightly cheaper predicate (`parameterCount == 0`)

  1. … 1 more file in changeset.
Polish `BeanCodec`

- Extract `withBeanTrace` so it can be reused in the `Serializable` codecs

- Use slightly cheaper predicate (`parameterCount == 0`)

  1. … 1 more file 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. … 5 more files in changeset.
Polish `Codec.kt`

- Remove unused member

- Specify return types explicitly to avoid platform types

- Reduce accessibility

Some simplifications of the instant execution types that take care of serializing the work nodes.

  1. … 7 more files in changeset.
Some simplifications of the instant execution types that take care of serializing the work nodes.

  1. … 7 more files in changeset.
Some simplifications of the instant execution types that take care of serializing the work nodes.

  1. … 7 more files in changeset.
Some simplifications of the instant execution types that take care of serializing the work nodes.

  1. … 7 more files in changeset.
Some simplifications of the instant execution types that take care of serializing the work nodes.

  1. … 7 more files in changeset.
Some simplifications of the instant execution types that take care of serializing the work nodes.

  1. … 7 more files in changeset.
Some simplifications of the instant execution types that take care of serializing the work nodes.

  1. … 7 more files in changeset.
Polish `Codec.kt`

Polish `Codec.kt`

Polish `Codec.kt`

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.
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.
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.
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.
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.
Ensure that non-task node instances read from the instant execution cache are reused when referenced from a file collection read from the cache.

  1. … 9 more files in changeset.
Ensure that non-task node instances read from the instant execution cache are reused when referenced from a file collection read from the cache.

  1. … 9 more files in changeset.
Change the instant execution cache bean serialization so that it honors the `writeReplace()` contract for `Serializable` types.

This allows a plugin to use the Guava collection types, which happen to use this contract for serialization. This could be viewed as a work around for the lack of support for multiple classes with the same name (and that is certainly the motivation). However, this provides a potential escape hatch for plugin authors to work around serialization issues. It also provides a nice migration path for re-using the bean serialization in other places, such as task properties, isolated work parameters and tooling models, all of which currently use Java Serialization as the general purpose contract.

  1. … 10 more files in changeset.
Change the instant execution cache bean serialization so that it honors the `writeReplace()` contract for `Serializable` types.

This allows a plugin to use the Guava collection types, which happen to use this contract for serialization. This could be viewed as a work around for the lack of support for multiple classes with the same name (and that is certainly the motivation). However, this provides a potential escape hatch for plugin authors to work around serialization issues. It also provides a nice migration path for re-using the bean serialization in other places, such as task properties, isolated work parameters and tooling models, all of which currently use Java Serialization as the general purpose contract.

  1. … 10 more files in changeset.
Change the instant execution cache bean serialization so that it honors the `writeReplace()` contract for `Serializable` types.

This allows a plugin to use the Guava collection types, which happen to use this contract for serialization. This could be viewed as a work around for the lack of support for multiple classes with the same name (and that is certainly the motivation). However, this provides a potential escape hatch for plugin authors to work around serialization issues. It also provides a nice migration path for re-using the bean serialization in other places, such as task properties, isolated work parameters and tooling models, all of which currently use Java Serialization as the general purpose contract.

  1. … 10 more files in changeset.
Represent classes serialized to the instant execution cache using an integer id, rather than a string class name.

Apart from reducing the amount of stuff written to the cache, this will also allow multiple classes with the same name (but different ClassLoaders) to be referenced in the instant execution state.

  1. … 8 more files in changeset.
Represent classes serialized to the instant execution cache using an integer id, rather than a string class name.

Apart from reducing the amount of stuff written to the cache, this will also allow multiple classes with the same name (but different ClassLoaders) to be referenced in the instant execution state.

  1. … 8 more files in changeset.
Represent classes serialized to the instant execution cache using an integer id, rather than a string class name.

Apart from reducing the amount of stuff written to the cache, this will also allow multiple classes with the same name (but different ClassLoaders) to be referenced in the instant execution state.

  1. … 8 more files in changeset.
Do not deserialize all `List` implementations from the instant execution cache as `ArrayList`, as a step towards support for plugins using Guava types.

Also simplify the contract that codecs use to write values, making it symmetrical for writing and reading.

  1. … 7 more files in changeset.