Repository navigation
GROOVY-12726: Fix joint-compilation stubber placeholder cleanup and field-level @Bindable/@Vetoable stubbing - #3262
daniellansun wants to merge 4 commits into
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3262 +/- ##
==================================================
+ Coverage 74.4429% 74.5400% +0.0971%
- Complexity 44774 45018 +244
==================================================
Files 1702 1703 +1
Lines 151891 152380 +489
Branches 29091 29189 +98
==================================================
+ Hits 113072 113584 +512
+ Misses 28413 28400 -13
+ Partials 10406 10396 -10
🚀 New features to boost your workflow:
|
JMH summary — classic (commit
|
| Group | Speedup | Calibrated | n |
|---|---|---|---|
| bench | 1.117 × | 1.012 × | 134 |
| core | 0.951 × | 1.068 × | 108 |
| grails | 1.447 × | 1.324 × | 80 |
No benchmark is ≥1.5× slower than its 90-day baseline.
⚠️ Runner speed differs ≥15% from the historical baseline hardware for: grails-ad, grails-ez. Raw speedups are not meaningful for those parts — use the calibrated column.
Runner calibration (this run vs baseline hardware): bench 1.11× (27 rulers) · core-ag 0.88× (3 rulers) · core-hz 0.90× (3 rulers) · grails-ad 0.86× (3 rulers) · grails-ez 1.33× (3 rulers)
Baseline: dev/bench/jmh/<part>/classic/data.js on gh-pages, trailing 90 days. Daily dashboard · Per-suite raw data
JMH summary — indy (commit
|
| Group | Speedup | Calibrated | n |
|---|---|---|---|
| bench | 0.895 × | 0.989 × | 134 |
| core | 2.288 × | 2.080 × | 108 |
| grails | 0.950 × | 1.187 × | 80 |
No benchmark is ≥1.5× slower than its 90-day baseline.
⚠️ Runner speed differs ≥15% from the historical baseline hardware for: core-ag, grails-ad, grails-ez. Raw speedups are not meaningful for those parts — use the calibrated column.
Runner calibration (this run vs baseline hardware): bench 0.90× (27 rulers) · core-ag 1.25× (3 rulers) · core-hz 0.88× (3 rulers) · grails-ad 0.74× (3 rulers) · grails-ez 0.85× (3 rulers)
Baseline: dev/bench/jmh/<part>/indy/data.js on gh-pages, trailing 90 days. Daily dashboard · Per-suite raw data
|
Thanks, this is a good catch. I reproduced the cases on master with Confirmed and important (item 1). In joint compilation, a class with Confirmed (item 4). A Java class calling Item 2 (immutable indexed setter). I couldn't reproduce this end to end: with the exact Records. While checking the A few smaller things:
With those addressed I'm +1 to merge to master and backport to 6.0.x. |
fec7a6f to
0431d5b
Compare
|
Thanks Paul — the smaller items are now on the tip:
Once GROOVY-12730 lands I'll add the Jochen, thanks — agreed with Paul on the above. |
…ield-level @Bindable/@Vetoable stubbing Check isStub before a custom _toString, _equals, or _hashCode helper so the joint-compilation placeholder is completed. Emit listener stubs for field-level @bindable and @Vetoable, and drop only those listener placeholders from the transform callers. needsPropertyChangeSupport and needsVetoableChangeSupport stay side-effect free. An immutable indexed setter placeholder is removed when one is present.
…perty visitors Name the listener and index literals once, and split the indexed-property visitor so the immutable setter cleanup stays readable.
4639fcf to
663d78c
Compare
|
✅ All tests passed ✅🏷️ Commit: 71a0f0a Learn more about TestLens at testlens.app/docs. |



https://issues.apache.org/jira/browse/GROOVY-12726