Skip to content

GROOVY-12173: Left-factor parser rules to reduce lookahead on hot parse paths#2720

Merged
daniellansun merged 1 commit into
masterfrom
GROOVY-12173
Jul 18, 2026
Merged

GROOVY-12173: Left-factor parser rules to reduce lookahead on hot parse paths#2720
daniellansun merged 1 commit into
masterfrom
GROOVY-12173

Conversation

@daniellansun

Copy link
Copy Markdown
Contributor

@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: 5b48b03 Previous: c76e8dc Ratio
org.apache.groovy.bench.StaticMethodCallIndyBench.staticChain_groovyCS 2518.853041605925 ops/ms 1595.6378191431031 ops/ms 1.58
org.apache.groovy.bench.StaticMethodCallIndyBench.staticChain_java 2519.340726980061 ops/ms 1595.5729626739744 ops/ms 1.58
org.apache.groovy.bench.AryBench.java ( {"n":"1000"} ) 0.08890228149919947 ms/op 0.056632317821343335 ms/op 1.57
org.apache.groovy.bench.CalibrationBench.memoryPointerChase 1019.6160179175514 us/op 507.29968992095434 us/op 2.01

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

@codecov-commenter

codecov-commenter commented Jul 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 40.00000% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 69.2009%. Comparing base (a4ac2e7) to head (5b48b03).
⚠️ Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
...va/org/apache/groovy/parser/antlr4/AstBuilder.java 40.0000% 5 Missing and 1 partial ⚠️
Additional details and impacted files

Impacted file tree graph

@@                Coverage Diff                 @@
##               master      #2720        +/-   ##
==================================================
- Coverage     69.2080%   69.2009%   -0.0071%     
+ Complexity      34495      34491         -4     
==================================================
  Files            1539       1539                
  Lines          129917     129913         -4     
  Branches        23670      23669         -1     
==================================================
- Hits            89913      89901        -12     
- Misses          31948      31952         +4     
- Partials         8056       8060         +4     
Files with missing lines Coverage Δ
...va/org/apache/groovy/parser/antlr4/AstBuilder.java 86.8916% <40.0000%> (+0.1482%) ⬆️

... and 7 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 commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

JMH summary — classic (commit 1e379d4)

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.003 × 0.997 × 84
core 1.077 × 1.109 × 77
grails 1.018 × 1.037 × 80

Runner calibration (this run vs baseline hardware): bench 1.00× (26 rulers) · core-ag 0.94× (3 rulers) · core-hz 1.01× (3 rulers) · grails-ad 0.97× (3 rulers) · grails-ez 1.00× (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 18, 2026

Copy link
Copy Markdown
Contributor

JMH summary — indy (commit 1e379d4)

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.000 × 1.002 × 84
core 3.748 × 3.947 × 77
grails 2.777 × 2.853 × 80

Runner calibration (this run vs baseline hardware): bench 1.00× (26 rulers) · core-ag 0.99× (3 rulers) · core-hz 0.90× (3 rulers) · grails-ad 0.95× (3 rulers) · grails-ez 0.99× (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

@testlens-app

testlens-app Bot commented Jul 18, 2026

Copy link
Copy Markdown

✅ All tests passed ✅

🏷️ Commit: 5b48b03
▶️ Tests: 104416 executed
⚪️ Checks: 31/31 completed


Learn more about TestLens at testlens.app.

@daniellansun
daniellansun merged commit 1df3105 into master Jul 18, 2026
34 checks passed
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