You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Eric Milles (Jira)" <ji...@apache.org> on 2021/10/12 18:54:00 UTC

[jira] [Assigned] (GROOVY-8729) Eliminate the additional resolving phase of compilation for better performance

     [ https://issues.apache.org/jira/browse/GROOVY-8729?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Eric Milles reassigned GROOVY-8729:
-----------------------------------

    Assignee: Eric Milles

> Eliminate the additional resolving phase of compilation for better performance
> ------------------------------------------------------------------------------
>
>                 Key: GROOVY-8729
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8729
>             Project: Groovy
>          Issue Type: Improvement
>          Components: Compiler
>            Reporter: Daniel Sun
>            Assignee: Eric Milles
>            Priority: Major
>
> We should try to eliminate the additional resolving phase of compilation:
> {code:java}
>             if (phase == Phases.SEMANTIC_ANALYSIS) {
>                 doPhaseOperation(resolve);
>                 if (dequeued()) continue;
>             }
> {code}
>  
> ===============================
> [http://groovy.329449.n5.nabble.com/About-the-additional-resolving-phase-of-compilation-tt5752846.html]
>  
> Hi all, 
>       As we all know, resolving is quite complicated and time consuming in 
>  Groovy, but the resolving is applied twice currently. The additional 
>  resolving is applied here: 
>  [https://github.com/apache/groovy/blob/master/src/main/java/org/codehaus/groovy/control/CompilationUnit.java#L581-L584]
>       If the additional resoving is removed, only one test fails. 
>       Could you recall why we have to resolve twice? And can we try to apply 
>  resolving only once for better performance? 
> Cheers, 
>  Daniel.Sun 
> --------------------------------------------------
> I think that is worth exploring. There was a valid reason but I can't remember just now.
>  I'll try to jog my memory from the code/mailing archives.
> FYI, I was thinking in fact we might have to go the other way. And repeat also Canonical.
>  That way our Java stubs would be much better for joint compilation. We'd have to
>  make a whole lot of steps idempotent before that would work though. If we do it right,
>  we could skip a lot the second time through - which we might even be able to improve
>  for the current repeated phase.
>   
>  Cheers, Paul.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)