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)