Uploaded image for project: 'Groovy'
  1. Groovy
  2. GROOVY-8729

Eliminate the additional resolving phase of compilation for better performance

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.0.0-beta-2
    • Compiler
    • None

    Description

      We should try to eliminate the additional resolving phase of compilation:

                  if (phase == Phases.SEMANTIC_ANALYSIS) {
                      doPhaseOperation(resolve);
                      if (dequeued()) continue;
                  }
      

       

      ===============================

      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.

      Attachments

        Issue Links

          Activity

            People

              emilles Eric Milles
              daniel_sun Daniel Sun
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: