Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Renamed src/main/groovy to src/main/java in core

    • -59
    • +0
    ./ChangesOnlyIncrementalTaskInputs.java
    • -151
    • +0
    ./DefaultTaskArtifactStateRepository.java
    • -28
    • +0
    ./IncrementalTaskInputsInternal.java
    • -75
    • +0
    ./RebuildIncrementalTaskInputs.java
    • -99
    • +0
    ./ShortCircuitTaskArtifactStateRepository.java
    • -74
    • +0
    ./StatefulIncrementalTaskInputs.java
  1. … 2538 more files in changeset.
Change snapshot persistence to use shared tree snapshots

- introduce TreeSnapshot

- implement TreeSnapshotRepository for persistence. Also takes care

of usage tracking and removes a TreeSnapshot when all of the

dependent file collection snapshots have been removed.

- remove updateFrom and applyAllChangesSince from FileCollectionSnapshot

- these methods were only used for creating output snapshot

- replace with createOutputSnapshot method on

OutputFilesCollectionSnapshotter .

- optimized for single use case

- allows reuse of persisted TreeSnapshot instances

+review REVIEW-5911

    • -2
    • +3
    ./DefaultTaskArtifactStateRepository.java
  1. … 31 more files in changeset.
Split snapshotting to 2 phases: pre-check and snapshot

- pre-check hash contains sorted list of file name, size and

last modified times

- there are no file content hashes as part of the pre-check hash

- the file content hash is cached based on file name, size and

last modified times and isn't needed in the pre-check

- if pre-check hash is same as pre-check for previous snapshot,

it is considered up-to-date and the actual file snapshot doesn't

have to be loaded

- if pre-check hash is different and snapshot up-to-date check doesn't

contain changes (false positive), the persisted hash gets updated

- this might happen when file modification times are different, but

content is the same

- fileSnapshots in-memory cache uses now weak references for values.

- loaded fileSnapshots will get GCd under memory pressure which works

fine with the new up-to-date checking

+review REVIEW-5903

    • -1
    • +3
    ./DefaultTaskArtifactStateRepository.java
    • -2
    • +2
    ./ShortCircuitTaskArtifactStateRepository.java
  1. … 26 more files in changeset.
Whitespace.

    • -1
    • +1
    ./DefaultTaskArtifactStateRepository.java
Faster up-to-date checks by not collecting messages and creating temporary arrays when it's not required

    • -12
    • +13
    ./DefaultTaskArtifactStateRepository.java
    • -1
    • +3
    ./ShortCircuitTaskArtifactStateRepository.java
  1. … 3 more files in changeset.
Encapsulate `DiscoveredInputFilesStateChangeRule` inside `TaskUpToDateState`

+review REVIEW-5666

    • -6
    • +5
    ./DefaultTaskArtifactStateRepository.java
  1. … 2 more files in changeset.
Extracted a separate interface for recording discovered inputs

+review REVIEW-5687

    • -0
    • +32
    ./DiscoveredInputRecorder.java
    • -12
    • +1
    ./IncrementalTaskInputsInternal.java
  1. … 6 more files in changeset.
Use a factory to create `FileCollection` instances in a few more places.

    • -6
    • +13
    ./DefaultTaskArtifactStateRepository.java
  1. … 17 more files in changeset.
Support new header files added before other headers

+review REVIEW-5687

    • -2
    • +5
    ./DefaultTaskArtifactStateRepository.java
  1. … 18 more files in changeset.
Remove newInput from public interface

+review REVIEW-5687

    • -0
    • +11
    ./IncrementalTaskInputsInternal.java
  1. … 4 more files in changeset.
Fallback to adding all files from all include paths to 'discovered inputs'

When a macro is used to #include a header, we have to fallback to the old behavior

of including all possible files from the include paths as inputs, so we'll detect

changes to header files we don't know about.

+review REVIEW-5687

  1. … 5 more files in changeset.
Revert "Remove discovered inputs from public interfaces"

This reverts commit d1da6e53aa5ad8e5822e6ce043e89d1b0da2e132.

+review REVIEW-5666

    • -16
    • +0
    ./IncrementalTaskInputsInternal.java
  1. … 1 more file in changeset.
Remove discovered inputs from public interfaces

+review REVIEW-5666

    • -0
    • +16
    ./IncrementalTaskInputsInternal.java
  1. … 2 more files in changeset.
Fix bug with discovered inputs leaking between tasks

+review REVIEW-5666

    • -1
    • +1
    ./DefaultTaskArtifactStateRepository.java
  1. … 2 more files in changeset.
Add "discovered" inputs to Incremental task inputs

- Discovered inputs are kept separate from other inputs

- We do not report discovered inputs in `inputs.files`

- When performing up-to-date checks, we use the list of discovered inputs

from the previous execution to calculate a new snapshot.

- We compare the previous discovered inputs snapshot to the calculated snapshot

to get the list of files that have been removed or changed since the previous

execution.

- Tasks currently need to always register all discovered inputs each time

- Changes to discovered inputs require a full rebuild right now (like a property change)

+review REVIEW-5666

    • -2
    • +8
    ./DefaultTaskArtifactStateRepository.java
    • -0
    • +22
    ./StatefulIncrementalTaskInputs.java
  1. … 9 more files in changeset.
Tidy-up and modelling of the FileSnapshotSet.

    • -8
    • +3
    ./ChangesOnlyIncrementalTaskInputs.java
    • -0
    • +24
    ./IncrementalTaskInputsInternal.java
    • -1
    • +2
    ./ShortCircuitTaskArtifactStateRepository.java
    • -2
    • +11
    ./StatefulIncrementalTaskInputs.java
  1. … 9 more files in changeset.
Incremental java compilation now uses the input file snapshots (mainly jars) that are coming through the incremental API. Tidy-ups pending.

    • -1
    • +1
    ./DefaultTaskArtifactStateRepository.java
    • -1
    • +1
    ./ShortCircuitTaskArtifactStateRepository.java
  1. … 3 more files in changeset.
Continued the refactorings in the incremental task inputs area.

    • -1
    • +1
    ./DefaultTaskArtifactStateRepository.java
    • -2
    • +1
    ./ShortCircuitTaskArtifactStateRepository.java
  1. … 1 more file in changeset.
Made the FileSnapshots travel with the IncrementalTaskInputs object. Bunch of tidy ups are pending. This change is needed to avoid extensive hashing.

    • -1
    • +8
    ./ChangesOnlyIncrementalTaskInputs.java
    • -2
    • +2
    ./DefaultTaskArtifactStateRepository.java
    • -1
    • +2
    ./ShortCircuitTaskArtifactStateRepository.java
  1. … 6 more files in changeset.
Renamed FileSnapshotter to FileCollectionSnapshotter, and renamed implementations.

    • -4
    • +4
    ./DefaultTaskArtifactStateRepository.java
  1. … 21 more files in changeset.
REVIEW-2968 Sweet code review. Removed redundant method, made the code simpler, fixed an outstanding issue with in-memory task history cache.

    • -5
    • +1
    ./DefaultTaskArtifactStateRepository.java
  1. … 3 more files in changeset.
Initial implementation of the in-memory task history cache.

1. The cache speeds up incremental daemon builds (~20%), at some expense of memory. The gc performance looks actually slightly better with this change.

2. The cache is capped (educated guess) so that smaller-to-big builds should take advantage of it. However, for huge builds we're not keeping *entire* task history cache in memory otherwise the performance is actually reduced (both: speed & memory).

3. Needs to be reworked in few places. I'm looking for a review!

    • -0
    • +3
    ./DefaultTaskArtifactStateRepository.java
  1. … 14 more files in changeset.
Merged TaskArtifactState.isUpToDate() and getOutOfDateMessages().

    • -7
    • +5
    ./DefaultTaskArtifactStateRepository.java
    • -7
    • +3
    ./ShortCircuitTaskArtifactStateRepository.java
  1. … 5 more files in changeset.
Removed unused LOGGER

    • -3
    • +0
    ./ShortCircuitTaskArtifactStateRepository.java
REVIEW-2078: Don't load or persist history when Task.upToDateWhen is false - Moved logging of 'out-of-date' messages out of DefaultTaskArtifactStateRepository into SkipUpToDateTaskExecuter.

    • -25
    • +7
    ./DefaultTaskArtifactStateRepository.java
    • -5
    • +15
    ./ShortCircuitTaskArtifactStateRepository.java
  1. … 7 more files in changeset.
REVIEW-2070: Removed unused method

    • -4
    • +0
    ./DefaultTaskArtifactStateRepository.java
  1. … 2 more files in changeset.
Renamed `InputFile` to `InputFileDetails` to avoid conflict with `@InputFile`.

    • -6
    • +6
    ./ChangesOnlyIncrementalTaskInputs.java
  1. … 5 more files in changeset.
REVIEW-2061: Switched internals of up-to-date checking to be iterator-based instead of listener-based - TaskStateChanges extends Iterable<TaskStateChange> - Caching is done by wrapping implementation for input files and output files - Other implementations are based on non-streaming collections of changes - FileCollectionSnapshot.changesSince(Snapshot,Listener) is now FileCollectionSnapshot.iterateChangesSince(Snapshot) >> ChangeIterator

    • -15
    • +7
    ./ChangesOnlyIncrementalTaskInputs.java
    • -22
    • +3
    ./DefaultTaskArtifactStateRepository.java
  1. … 19 more files in changeset.
IncrementalTaskInputs.outOfDate() and .removed() now accept Closure actions

    • -2
    • +2
    ./ChangesOnlyIncrementalTaskInputs.java
    • -3
    • +7
    ./DefaultTaskArtifactStateRepository.java
    • -3
    • +6
    ./ShortCircuitTaskArtifactStateRepository.java
  1. … 6 more files in changeset.
Change IncrementalTaskInputs.allOutOfDate -> !IncrementalTaskInputs.incremental

    • -2
    • +2
    ./ChangesOnlyIncrementalTaskInputs.java
  1. … 6 more files in changeset.