You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@groovy.apache.org by "Daniel Sun (JIRA)" <ji...@apache.org> on 2018/08/03 23:16:00 UTC

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

Daniel Sun created GROOVY-8729:
----------------------------------

             Summary: 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
            Reporter: Daniel Sun


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
(v7.6.3#76005)