Skip to content

GROOVY-12181: Refactor async runtime and AST helpers introduced by GROOVY-9381#2725

Open
daniellansun wants to merge 1 commit into
masterfrom
GROOVY-12181
Open

GROOVY-12181: Refactor async runtime and AST helpers introduced by GROOVY-9381#2725
daniellansun wants to merge 1 commit into
masterfrom
GROOVY-12181

Conversation

@daniellansun

Copy link
Copy Markdown
Contributor

@daniellansun
daniellansun requested a review from paulk-asert July 20, 2026 16:56
@codecov-commenter

codecov-commenter commented Jul 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 86.04651% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.2173%. Comparing base (cb27031) to head (9d50409).

Files with missing lines Patch % Lines
...rg/apache/groovy/runtime/async/AsyncExecutors.java 69.4444% 9 Missing and 2 partials ⚠️
...odehaus/groovy/transform/AsyncTransformHelper.java 81.5790% 4 Missing and 3 partials ⚠️
.../apache/groovy/runtime/async/AwaitCombinators.java 93.3333% 2 Missing and 3 partials ⚠️
.../org/apache/groovy/runtime/async/AsyncSupport.java 95.0000% 0 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                 @@
##               master      #2725        +/-   ##
==================================================
+ Coverage     69.2109%   69.2173%   +0.0064%     
- Complexity      34491      34514        +23     
==================================================
  Files            1539       1541         +2     
  Lines          129913     129927        +14     
  Branches        23669      23667         -2     
==================================================
+ Hits            89914      89932        +18     
+ Misses          31942      31937         -5     
- Partials         8057       8058         +1     
Files with missing lines Coverage Δ
src/main/java/groovy/concurrent/AwaitResult.java 96.6667% <100.0000%> (+3.3333%) ⬆️
src/main/java/groovy/concurrent/Awaitable.java 92.8571% <ø> (ø)
...va/org/apache/groovy/parser/antlr4/AstBuilder.java 86.9490% <100.0000%> (+0.0575%) ⬆️
...org/apache/groovy/runtime/async/GroovyPromise.java 82.8571% <ø> (ø)
.../org/apache/groovy/runtime/async/AsyncSupport.java 80.6452% <95.0000%> (+1.7607%) ⬆️
.../apache/groovy/runtime/async/AwaitCombinators.java 93.3333% <93.3333%> (ø)
...odehaus/groovy/transform/AsyncTransformHelper.java 85.2941% <81.5790%> (+9.6844%) ⬆️
...rg/apache/groovy/runtime/async/AsyncExecutors.java 69.4444% <69.4444%> (ø)

... and 6 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.50.

Benchmark suite Current: 9d50409 Previous: cb27031 Ratio
org.apache.groovy.bench.AckermannBench.groovy ( {"n":"7"} ) 6.146820308109513 ms/op 3.930829100145476 ms/op 1.56
org.apache.groovy.bench.AckermannBench.java ( {"n":"5"} ) 0.10091901247876386 ms/op 0.031295695362762596 ms/op 3.22
org.apache.groovy.bench.AckermannBench.java ( {"n":"6"} ) 0.4588753761198549 ms/op 0.13235591772257407 ms/op 3.47
org.apache.groovy.bench.AckermannBench.java ( {"n":"7"} ) 1.9243456060863213 ms/op 0.5293173656330404 ms/op 3.64
org.apache.groovy.bench.AryBench.groovy ( {"n":"1000"} ) 24.675133680448354 ms/op 15.874060997829114 ms/op 1.55
org.apache.groovy.bench.AryBench.groovy ( {"n":"1000000"} ) 26901.5370352 ms/op 17335.853736200002 ms/op 1.55
org.apache.groovy.bench.AryBench.groovyCS ( {"n":"10"} ) 0.005777345487024153 ms/op 0.003729125330018467 ms/op 1.55
org.apache.groovy.bench.AryBench.groovyCS ( {"n":"1000"} ) 0.13850581286904526 ms/op 0.0370388248862454 ms/op 3.74
org.apache.groovy.bench.AryBench.java ( {"n":"1000"} ) 0.13762888248814983 ms/op 0.04206963429286435 ms/op 3.27
org.apache.groovy.bench.FiboBench.groovy ( {"n":"30"} ) 10.600115016325447 ms/op 6.5706982825594 ms/op 1.61
org.apache.groovy.bench.FiboBench.groovy ( {"n":"31"} ) 17.149320412900188 ms/op 10.451395709895833 ms/op 1.64
org.apache.groovy.bench.FiboBench.groovy ( {"n":"32"} ) 28.13315974248826 ms/op 17.604772994932308 ms/op 1.60
org.apache.groovy.bench.FiboBench.groovy ( {"n":"33"} ) 45.19156971762626 ms/op 27.633212026182935 ms/op 1.64
org.apache.groovy.bench.FiboBench.groovy ( {"n":"34"} ) 72.77919064642857 ms/op 44.2759107673913 ms/op 1.64
org.apache.groovy.bench.DynamicDispatchColdBench.dynamicMono_java ( {"n":"20000"} ) 920.41604 us/op 598.55548 us/op 1.54

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

JMH summary — classic (commit 2a3a2f6)

Speedup vs trailing 90-day baseline on gh-pages. Higher = faster.
1.00 = in line with history. Per-benchmark ratio, geomean within group.
Time-per-op units inverted so direction is consistent. The calibrated
column divides out this runner's speed vs the baseline hardware, as
measured by Groovy-independent pure-Java ruler benchmarks.

Group Speedup Calibrated n
bench 1.082 × 0.996 × 84
core 1.043 × 1.008 × 77
grails 1.210 × 1.176 × 80

Runner calibration (this run vs baseline hardware): bench 1.08× (26 rulers) · core-ag 1.10× (3 rulers) · core-hz 0.97× (3 rulers) · grails-ad 0.96× (3 rulers) · grails-ez 1.09× (3 rulers)

Baseline: dev/bench/jmh/<part>/classic/data.js on gh-pages, trailing 90 days. Daily dashboard · Per-suite raw data

@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

JMH summary — indy (commit 2a3a2f6)

Speedup vs trailing 90-day baseline on gh-pages. Higher = faster.
1.00 = in line with history. Per-benchmark ratio, geomean within group.
Time-per-op units inverted so direction is consistent. The calibrated
column divides out this runner's speed vs the baseline hardware, as
measured by Groovy-independent pure-Java ruler benchmarks.

Group Speedup Calibrated n
bench 0.932 × 0.944 × 84
core 3.590 × 3.417 × 77
grails 2.279 × 2.090 × 80

Runner calibration (this run vs baseline hardware): bench 0.97× (26 rulers) · core-ag 1.14× (3 rulers) · core-hz 0.96× (3 rulers) · grails-ad 1.11× (3 rulers) · grails-ez 1.07× (3 rulers)

Baseline: dev/bench/jmh/<part>/indy/data.js on gh-pages, trailing 90 days. Daily dashboard · Per-suite raw data

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

💡 Need a hand with PR review? Try Gitar by Sonar!

@testlens-app

testlens-app Bot commented Jul 20, 2026

Copy link
Copy Markdown

✅ All tests passed ✅

🏷️ Commit: 9d50409
▶️ Tests: 104357 executed
⚪️ Checks: 31/31 completed


Learn more about TestLens at testlens.app.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants