execution

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Work around Kotlin compiler bug by marking function inline

Allow scripts larger than 64KB

By storing large scripts as a resource instead of a script constant in

the emitted bytecode.

Resolves #1305

  1. … 5 more files in changeset.
Move kotlin-dsl in a sub directory

    • -116
    • +0
    ./BuildscriptBlockExtractionTest.kt
    • -572
    • +0
    ./ResidualProgramCompilerTest.kt
  1. … 1571 more files in changeset.
Prove precompiled script plugins can use Kotlin 1.3 language features

  1. … 2 more files in changeset.
Move `SimplifiedKotlinScriptEvaluator` to `:test-fixtures`

    • -164
    • +0
    ./SimplifiedKotlinScriptEvaluator.kt
    • -75
    • +0
    ./SimplifiedKotlinScriptEvaluatorTest.kt
  1. … 4 more files in changeset.
Replace Java 9 deprecated methods usage in tests

clazz.newInstance() -> clazz.getDeclaredConstructor().newInstance()

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 1 more file in changeset.
Simplify lambda expression

Introduce `SimplifiedKotlinScriptEvaluator`

For cheaper Kotlin DSL tests.

    • -0
    • +164
    ./SimplifiedKotlinScriptEvaluator.kt
    • -0
    • +75
    ./SimplifiedKotlinScriptEvaluatorTest.kt
  1. … 1 more file in changeset.
Touch up `InterpreterTest`

Add `KotlinScriptHost<*>` parameter to `cachedDirFor`

In preparation for the build cache integration.

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

  1. … 1 more file in changeset.
Make the script compilation cache relocatable

By storing the post-processed second stage script text as a constant

in the emitted bytecode instead of keeping it in an external file.

  1. … 5 more files in changeset.
Don't store original script path in the residual program

But take it from the given `ScriptSource` and cache it in the script

host.

  1. … 5 more files in changeset.
expose script compilation as build operation

  1. … 4 more files in changeset.
Avoid setting up the embedded Kotlin repository

The embedded Kotlin repository and the version of the embedded

libraries don't need to be configured for:

- script plugins without a `buildscript` / `initscript` block, for no

libraries will ever be resolved

- top-level `Settings` scripts without a `buildscript` block

  1. … 6 more files in changeset.
Emit progress logger operation around script compilation

  1. … 3 more files in changeset.
Add accessors classpath to cached dir key

  1. … 4 more files in changeset.
Move decision of computing accessors classpath to specialized program

And make the accessors classpath hash part of `ProgramId`.

    • -11
    • +24
    ./ResidualProgramCompilerTest.kt
  1. … 5 more files in changeset.
Polish `ResidualProgramCompilerTest`

Specialize `ScriptCacheKey` as `ProgramId`

And let it be instantiated only once per stage.

  1. … 6 more files in changeset.
Restore `contextClassLoader` behaviour

By letting `Thread.currentThread().contextClassLoader` reference the

specialized program `ClassLoader`.

  1. … 1 more file in changeset.
Reinstate single pluginManagement block check and reenable test

Signed-off-by: Paul Merlin <paul@gradle.com>

  1. … 3 more files in changeset.
Lex file only once

Instead of doing multiple passes over the script.

    • -12
    • +4
    ./BuildscriptBlockExtractionTest.kt
  1. … 4 more files in changeset.
Polish `Interpreter`

- Make cache dir names consistent

  1. … 1 more file in changeset.
Use partial evaluation when serving the classpath model

  1. … 13 more files in changeset.
Preserve line numbers of `plugins` blocks

So the plugin resolution error message references the right location.

  1. … 3 more files in changeset.
Enable partial evaluation of init scripts

  1. … 5 more files in changeset.
Introduce ResidualProgram intermediate representation

For quicker and better test coverage and cleaner code.

    • -0
    • +128
    ./ProgramParserTest.kt
    • -224
    • +218
    ./ResidualProgramCompilerTest.kt
  1. … 10 more files in changeset.
Compute `ScriptSource` hash via `ScriptSourceHasher`

  1. … 3 more files in changeset.
Use `exportClassLoader` from `targetScope` in 2nd stage cache key

Instead of the more specific `localClassLoader` for the 2nd stage

program is always loaded in a child scope of `targetScope` thus can

only see classes from its `exportClassLoader`.

  1. … 1 more file in changeset.