You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "blackdrag (via GitHub)" <gi...@apache.org> on 2026/06/10 00:29:27 UTC

[PR] GROOVY-12069: introduce methodhandles in dgm wrappers [groovy]

blackdrag opened a new pull request, #2598:
URL: https://github.com/apache/groovy/pull/2598

   This change adds a target method handle in the dgm helper classes. Invokedynamic then does not have to use the path of a generic meta method invocation, but can invoke the target of the dgm helper directly. For this bytecode generation changes are done in the dgm converter, as well as changes in indy method handling for that case. The change contains also a cleanup of some warnings, a test for the dgm converter changes and some cleanup/refactoring in the Selector


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@groovy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] GROOVY-12069: introduce methodhandles in dgm wrappers [groovy]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #2598:
URL: https://github.com/apache/groovy/pull/2598#issuecomment-4665563623

   ### JMH summary — indy (commit `85a11ab`)
   
   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.
   
   | Group  | Speedup | n |
   |--------|---------|---|
   | bench | 0.978 × | 26 |
   | core | 1.000 × | 77 |
   | grails | 1.052 × | 80 |
   
   <sub>Baseline: <code>dev/bench/jmh/&lt;part&gt;/indy/data.js</code> on gh-pages, trailing 90 days. <a href="https://apache.github.io/groovy/dev/bench/jmh/summary.html">Daily dashboard</a> · <a href="https://apache.github.io/groovy/dev/bench/jmh/">Per-suite raw data</a></sub>
   
   <!-- jmh-summary:indy -->


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@groovy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] GROOVY-12069: introduce methodhandles in dgm wrappers [groovy]

Posted by "daniellansun (via GitHub)" <gi...@apache.org>.
daniellansun commented on PR #2598:
URL: https://github.com/apache/groovy/pull/2598#issuecomment-4701453330

   Merged. Thanks.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@groovy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] GROOVY-12069: introduce methodhandles in dgm wrappers [groovy]

Posted by "daniellansun (via GitHub)" <gi...@apache.org>.
daniellansun merged PR #2598:
URL: https://github.com/apache/groovy/pull/2598


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@groovy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] GROOVY-12069: introduce methodhandles in dgm wrappers [groovy]

Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #2598:
URL: https://github.com/apache/groovy/pull/2598#issuecomment-4665487713

   ## [Codecov](https://app.codecov.io/gh/apache/groovy/pull/2598?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
   :x: Patch coverage is `84.68468%` with `17 lines` in your changes missing coverage. Please review.
   :white_check_mark: Project coverage is 68.4490%. Comparing base ([`15c1b26`](https://app.codecov.io/gh/apache/groovy/commit/15c1b26983cb0acf41345a327eddb357ff87d36b?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`f962b5c`](https://app.codecov.io/gh/apache/groovy/commit/f962b5c1e454949bc141a5f4933e44c3b01483f9?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
   :warning: Report is 17 commits behind head on master.
   
   | [Files with missing lines](https://app.codecov.io/gh/apache/groovy/pull/2598?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
   |---|---|---|
   | [...java/org/codehaus/groovy/vmplugin/v8/Selector.java](https://app.codecov.io/gh/apache/groovy/pull/2598?src=pr&el=tree&filepath=src%2Fmain%2Fjava%2Forg%2Fcodehaus%2Fgroovy%2Fvmplugin%2Fv8%2FSelector.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L3ZtcGx1Z2luL3Y4L1NlbGVjdG9yLmphdmE=) | 75.8064% | [5 Missing and 10 partials :warning: ](https://app.codecov.io/gh/apache/groovy/pull/2598?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   | [...n/java/org/codehaus/groovy/tools/DgmConverter.java](https://app.codecov.io/gh/apache/groovy/pull/2598?src=pr&el=tree&filepath=src%2Fmain%2Fjava%2Forg%2Fcodehaus%2Fgroovy%2Ftools%2FDgmConverter.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L3Rvb2xzL0RnbUNvbnZlcnRlci5qYXZh) | 95.8333% | [0 Missing and 2 partials :warning: ](https://app.codecov.io/gh/apache/groovy/pull/2598?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
   
   <details><summary>Additional details and impacted files</summary>
   
   
   
   [![Impacted file tree graph](https://app.codecov.io/gh/apache/groovy/pull/2598/graphs/tree.svg?width=650&height=150&src=pr&token=1r45138NfQ&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)](https://app.codecov.io/gh/apache/groovy/pull/2598?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
   
   ```diff
   @@                Coverage Diff                 @@
   ##               master      #2598        +/-   ##
   ==================================================
   + Coverage     68.3052%   68.4490%   +0.1438%     
   - Complexity      33399      33428        +29     
   ==================================================
     Files            1518       1518                
     Lines          126879     126912        +33     
     Branches        23005      23006         +1     
   ==================================================
   + Hits            86665      86870       +205     
   + Misses          32529      32350       -179     
   - Partials         7685       7692         +7     
   ```
   
   | [Files with missing lines](https://app.codecov.io/gh/apache/groovy/pull/2598?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
   |---|---|---|
   | [...odehaus/groovy/reflection/GeneratedMetaMethod.java](https://app.codecov.io/gh/apache/groovy/pull/2598?src=pr&el=tree&filepath=src%2Fmain%2Fjava%2Forg%2Fcodehaus%2Fgroovy%2Freflection%2FGeneratedMetaMethod.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L3JlZmxlY3Rpb24vR2VuZXJhdGVkTWV0YU1ldGhvZC5qYXZh) | `90.7407% <100.0000%> (+31.8622%)` | :arrow_up: |
   | [...n/java/org/codehaus/groovy/tools/DgmConverter.java](https://app.codecov.io/gh/apache/groovy/pull/2598?src=pr&el=tree&filepath=src%2Fmain%2Fjava%2Forg%2Fcodehaus%2Fgroovy%2Ftools%2FDgmConverter.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L3Rvb2xzL0RnbUNvbnZlcnRlci5qYXZh) | `95.0311% <95.8333%> (+95.0311%)` | :arrow_up: |
   | [...java/org/codehaus/groovy/vmplugin/v8/Selector.java](https://app.codecov.io/gh/apache/groovy/pull/2598?src=pr&el=tree&filepath=src%2Fmain%2Fjava%2Forg%2Fcodehaus%2Fgroovy%2Fvmplugin%2Fv8%2FSelector.java&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3JjL21haW4vamF2YS9vcmcvY29kZWhhdXMvZ3Jvb3Z5L3ZtcGx1Z2luL3Y4L1NlbGVjdG9yLmphdmE=) | `80.7615% <75.8064%> (-0.4756%)` | :arrow_down: |
   
   ... and [11 files with indirect coverage changes](https://app.codecov.io/gh/apache/groovy/pull/2598/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)
   </details>
   <details><summary> :rocket: New features to boost your workflow: </summary>
   
   - :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
   - :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
   </details>


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@groovy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] GROOVY-12069: introduce methodhandles in dgm wrappers [groovy]

Posted by "testlens-app[bot] (via GitHub)" <gi...@apache.org>.
testlens-app[bot] commented on PR #2598:
URL: https://github.com/apache/groovy/pull/2598#issuecomment-4665439093

   ## 🚨 TestLens detected 1 failed test 🚨
   
   Here is what you can do:
   
   1) Inspect the test failures carefully.
   2) If you are convinced that some of the tests are flaky, you can mute them below.
   3) Finally, trigger a rerun by checking the rerun checkbox.
   
   ### Test Summary
   
   | Check | Project/Task | Test | Runs |
   |---|---|---|---|
   | [Build and test / lts \(17, macos-latest\)](https://github.com/apache/groovy/actions/runs/27244838293/job/80456438023?pr=2598) | :test | ActorTest > testScheduleAtFixedRateCancelStopsFurtherFires\(\) | ❌ |
   
   🏷️ Commit: f962b5c1e454949bc141a5f4933e44c3b01483f9
   ▶️ Tests:  45981 executed
   🟡 Checks: 5/28 completed
   
   ### Test Failures
   
   <details>
   
   <summary><strong>ActorTest > testScheduleAtFixedRateCancelStopsFurtherFires()</strong> (:test in <a href="https://github.com/apache/groovy/actions/runs/27244838293/job/80456438023?pr=2598">Build and test / lts (17, macos-latest)</a>)</summary>
   
   ```
   java.lang.AssertionError: expected 2 or 3 ticks (got 4). Expression: (n in [2, 3]). Values: n = 4
   	at org.codehaus.groovy.runtime.InvokerHelper.createAssertError(InvokerHelper.java:402)
   	at TestScript20.run(TestScript20.groovy:28)
   	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:553)
   	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:588)
   	at groovy.lang.GroovyShell.evaluate(GroovyShell.java:572)
   	at groovy.test.GroovyAssert.assertScript(GroovyAssert.java:106)
   	at groovy.test.GroovyAssert.assertScript(GroovyAssert.java:96)
   	at groovy.concurrent.ActorTest.testScheduleAtFixedRateCancelStopsFurtherFires(ActorTest.groovy:1372)
   ```
   
   </details>
   
   ### Muted Tests
   > [!NOTE]
   > Checks are currently running using the configuration below.
   
   Select tests to mute in this pull request:
   
   🔲 ActorTest > testScheduleAtFixedRateCancelStopsFurtherFires\(\) <!-- uniqueId=[engine:junit-jupiter]/[class:groovy.concurrent.ActorTest]/[method:testScheduleAtFixedRateCancelStopsFurtherFires()] -->
   
   Reuse successful test results:
   
   🔲 ♻️ Only rerun the tests that failed or were muted before
   
   Click the checkbox to trigger a rerun:
   
   🔲 **Rerun jobs**
   
   ---
   _Learn more about TestLens at [testlens.app](https://testlens.app)._
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@groovy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] GROOVY-12069: introduce methodhandles in dgm wrappers [groovy]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #2598:
URL: https://github.com/apache/groovy/pull/2598#issuecomment-4665517097

   ### JMH summary — classic (commit `85a11ab`)
   
   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.
   
   | Group  | Speedup | n |
   |--------|---------|---|
   | bench | 1.235 × | 26 |
   | core | 1.039 × | 77 |
   | grails | 0.975 × | 80 |
   
   <sub>Baseline: <code>dev/bench/jmh/&lt;part&gt;/classic/data.js</code> on gh-pages, trailing 90 days. <a href="https://apache.github.io/groovy/dev/bench/jmh/summary.html">Daily dashboard</a> · <a href="https://apache.github.io/groovy/dev/bench/jmh/">Per-suite raw data</a></sub>
   
   <!-- jmh-summary:classic -->


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@groovy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [PR] GROOVY-12069: introduce methodhandles in dgm wrappers [groovy]

Posted by "sonarqubecloud[bot] (via GitHub)" <gi...@apache.org>.
sonarqubecloud[bot] commented on PR #2598:
URL: https://github.com/apache/groovy/pull/2598#issuecomment-4665506933

   ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=apache_groovy&pullRequest=2598) **Quality Gate passed**  
   Issues  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [2 New issues](https://sonarcloud.io/project/issues?id=apache_groovy&pullRequest=2598&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=apache_groovy&pullRequest=2598&issueStatuses=ACCEPTED)
   
   Measures  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=apache_groovy&pullRequest=2598&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [92.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=apache_groovy&pullRequest=2598&metric=new_coverage&view=list)  
   ![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=apache_groovy&pullRequest=2598&metric=new_duplicated_lines_density&view=list)  
     
   <!-- sqra-placement-anchor -->
   [See analysis details on SonarQube Cloud](https://sonarcloud.io/dashboard?id=apache_groovy&pullRequest=2598)
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@groovy.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org