Skip to content

Default the compiler toolchain to the Gradle daemon - #12627

Merged
AlexeyKuznetsov-DD merged 1 commit into
alexeyk/use-java-25from
bdu/default-compiler-to-daemon
Sep 24, 2026
Merged

AlexeyKuznetsov-DD merged 1 commit into
alexeyk/use-java-25from
bdu/default-compiler-to-daemon

Conversation

@bric3

@bric3 bric3 commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

What Does This Do

Default configureCompiler to the Gradle daemon's Java version in both Groovy and Kotlin build scripts. Remove redundant 25 arguments while keeping bytecode targets explicit and retaining the documented JDK exceptions.

Motivation

Implement the compiler default suggestion and bootstrap suggestion, so the daemon configuration also determines the usual compiler version.

Additional Notes

Targets alexeyk/use-java-25: merge this PR into that branch before merging #12305 into master.

The Java 25 preview smoke test keeps an explicit JDK 25 pin, with a reason, because preview compilation requires the matching compiler version.

A targeted configuration check verified daemon defaults, release flags, and JDK exceptions across Java, Groovy, Scala, and Kotlin DSL calls. Representative Java/Groovy and preview compilation passed; the full test suite was not run for this build-script change.

Contributor Checklist

@bric3 bric3 added tag: no release notes Changes to exclude from release notes type: refactoring comp: tooling Build & Tooling tag: ai generated Largely based on code generated by an AI or LLM labels Sep 24, 2026
@datadog-prod-us1-6

This comment has been minimized.

@pr-commenter

pr-commenter Bot commented Sep 24, 2026

Copy link
Copy Markdown

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1790242365 1790242691
end_time 2026-09-24T09:34:12 2026-09-24T09:39:38
git_branch master bdu/default-compiler-to-daemon
git_commit_sha 960f771 dae2f6c
start_time 2026-09-24T09:32:46 2026-09-24T09:38:12
See matching parameters
Baseline Candidate
ci_job_id 2075434130 2075434130
ci_pipeline_id 139742799 139742799
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1790241567 1790241567

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 9 metrics, 6 unstable metrics.

See unchanged results
scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:noprobe unstable
[-36.817µs; +32.279µs] or [-11.582%; +10.155%]
unstable
[-48.107µs; +44.721µs] or [-13.671%; +12.708%]
unstable
[-61.339µs; +54.360µs] or [-16.630%; +14.738%]
unstable
[-93.469µs; +129.603µs] or [-7.780%; +10.787%]
same
scenario:basic same same same unstable
[-125.747µs; +74.408µs] or [-12.360%; +7.314%]
unstable
[-133.490op/s; +133.490op/s] or [-5.740%; +5.740%]
scenario:loop same same same same same
Request duration reports for reports
gantt
    title reports - request duration [CI 0.99] : candidate=None, baseline=None
    dateFormat X
    axisFormat %s
section baseline
noprobe (351.897 µs) : 306, 398
.   : milestone, 352,
basic (321.918 µs) : 315, 329
.   : milestone, 322,
loop (8.085 ms) : 8022, 8148
.   : milestone, 8085,
section candidate
noprobe (350.203 µs) : 308, 392
.   : milestone, 350,
basic (324.776 µs) : 319, 331
.   : milestone, 325,
loop (8.092 ms) : 8029, 8156
.   : milestone, 8092,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 351.897 µs [305.55 µs, 398.243 µs]
basic 321.918 µs [314.825 µs, 329.011 µs]
loop 8.085 ms [8.022 ms, 8.148 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 350.203 µs [308.451 µs, 391.956 µs]
basic 324.776 µs [318.744 µs, 330.809 µs]
loop 8.092 ms [8.029 ms, 8.156 ms]

@dd-octo-sts

dd-octo-sts Bot commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

🟢 Java Benchmark SLOs — All performance SLOs passed

Suite Status
Startup 🟢 pass

SLO thresholds are defined here based on automatically generated metrics. A warning is raised when results are within 5% of the threshold.

PR vs. master results
Scenario Candidate master Δ (95% CI of mean)
startup:insecure-bank:iast:Agent 13.95 s 13.90 s [-0.4%; +1.1%] (no difference)
startup:insecure-bank:tracing:Agent 12.90 s 12.93 s [-0.9%; +0.5%] (no difference)
startup:petclinic:appsec:Agent 17.05 s 16.91 s [-0.1%; +1.8%] (no difference)
startup:petclinic:iast:Agent 17.01 s 17.02 s [-0.8%; +0.8%] (no difference)
startup:petclinic:profiling:Agent 16.86 s 16.31 s [-1.1%; +7.8%] (no difference)
startup:petclinic:sca:Agent 16.99 s 17.06 s [-1.3%; +0.5%] (no difference)
startup:petclinic:tracing:Agent 16.17 s 16.27 s [-1.6%; +0.4%] (no difference)

Commit: dae2f6c3 · CI Pipeline · Benchmarking Platform UI


Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion.

@pr-commenter

pr-commenter Bot commented Sep 24, 2026

Copy link
Copy Markdown

Kafka / producer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch alexeyk/use-java-25 bdu/default-compiler-to-daemon
git_commit_date 1789591290 1790241567
git_commit_sha 47ba511 dae2f6c
See matching parameters
Baseline Candidate
ci_job_date 1790242895 1790242895
ci_job_id 2075434125 2075434125
ci_pipeline_id 139742799 139742799
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.31 11.0.31
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=15002 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=15002 -Dhttp.nonProxyHosts=localhost *.localhost
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-0-dyjc0xtu 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-0-dyjc0xtu 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaProduceBenchmark.benchProduce same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaProduceBenchmark.benchProduce unsure
[-10871.239op/s; -566.554op/s] or [-6.073%; -0.317%]
scenario:only-tracing-dsm-enabled-benchmarks/KafkaProduceBenchmark.benchProduce same

@pr-commenter

pr-commenter Bot commented Sep 24, 2026

Copy link
Copy Markdown

Kafka / consumer-benchmark

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch alexeyk/use-java-25 bdu/default-compiler-to-daemon
git_commit_date 1789591290 1790241567
git_commit_sha 47ba511 dae2f6c
See matching parameters
Baseline Candidate
ci_job_date 1790242958 1790242958
ci_job_id 2075434127 2075434127
ci_pipeline_id 139742799 139742799
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
jdkVersion 11.0.31 11.0.31
jmhVersion 1.36 1.36
jvm /usr/lib/jvm/java-11-openjdk-amd64/bin/java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
jvmArgs -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=15002 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=15002 -Dhttp.nonProxyHosts=localhost *.localhost
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-etuqa7w3 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-etuqa7w3 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
vmName OpenJDK 64-Bit Server VM OpenJDK 64-Bit Server VM
vmVersion 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu 11.0.31+11-post-1ubuntu1-22.04.2-Ubuntu

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 3 metrics, 0 unstable metrics.

See unchanged results
scenario Δ mean throughput
scenario:not-instrumented/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-disabled-benchmarks/KafkaConsumerBenchmark.benchConsume same
scenario:only-tracing-dsm-enabled-benchmarks/KafkaConsumerBenchmark.benchConsume unsure
[-6877.960op/s; -1541.017op/s] or [-3.587%; -0.804%]

ext.configureCompiler = (AbstractCompile it, int toolchainVersion, JavaVersion bytecodeVersion, String unsetReleaseFlagReason = null) -> {
configureCompiler(it, toolchainVersion, bytecodeVersion, unsetReleaseFlagReason)
} as Closure<Void>
ext.configureCompiler = this.&configureCompiler

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

note: shorthand to expose configureCompiler methods as a "callable Gradle property"

  • this is the current script instance
  • .&configureCompiler is a Groovy’s method pointer operator. It creates a Closure referring to that method, without calling it. Think roughly Java’s this::configureCompiler.

What is interesting in this, is that the overload selection happens when the closure is actually called.

@bric3
bric3 marked this pull request as ready for review September 24, 2026 10:30
@bric3
bric3 requested a review from a team as a code owner September 24, 2026 10:30
@bric3
bric3 requested review from amarziali and removed request for a team September 24, 2026 10:30
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-24T10:33:41.667444Z dae2f6c Draft marked ready
🔒 Security Review ✅ Completed 2026-09-24T10:33:56.130109Z dae2f6c Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@datadog-prod-us1-6 datadog-prod-us1-6 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bits Code Review: PASS

More details

The compiler helper now uses the Gradle daemon Java version. The changed calls keep their bytecode targets and the Java 25 preview pin.

Was this helpful? React 👍 or 👎

Open Bits AI session

🤖 Bits Code Review · Commit dae2f6c · @DataDog review to ask questions

@AlexeyKuznetsov-DD
AlexeyKuznetsov-DD merged commit 8f9282c into alexeyk/use-java-25 Sep 24, 2026
1242 of 1251 checks passed
@AlexeyKuznetsov-DD
AlexeyKuznetsov-DD deleted the bdu/default-compiler-to-daemon branch September 24, 2026 14:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: tooling Build & Tooling tag: ai generated Largely based on code generated by an AI or LLM tag: no release notes Changes to exclude from release notes type: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants