On Wednesday, August 31, 2016 at 10:00:41 AM UTC+2, Ali Jalal wrote:
>
> ​​
> Hi,
>
> I have some big projects (with about 500 views) which their web-mode 
> compilation was working with GWT 2.7 and their compilation were completed 
> in about 3 minutes.
>
> After upgrading GWT to 2.8-RC2, their web-mode compilation were not 
> completed after more than 60 minutes and it seems that created an infinite 
> loop.
>
>  I traced methods calls in compilation and I think there was a loop in 
> calling *JsInliner* class.
>
> After adding '-optimize 8' in compiler options (previously there was no 
> -optmize parameter and so it was set to '-optmize 9'), all projects where 
> compiled successfully.
>
> Note that compiler with no -optimize parameter works well in some 
> projects, but do not complete in some big projects.
>
> I compared output JS size in optimization level 8 & 9 and optimization 
> level 8 output JS size was smaller. So I applied '-optimize 8' to all 
> projects.
>
> My question is whats difference between optimization level 8 & 9
>

At level 9, the compiler (in JavaToJavaScriptCompiler) optimizes Java and 
JS until it cannot do any more changes (except it stops Java optimizations 
after 100 iterations; JS optimization iterations are not capped though). At 
level 8, the compiler only makes 8 optimization iterations, and will stop 
optimizing Java when the rate of changes is lower than 0.1 (if it reaches 
that threshold before the 8th iteration).
 

> and what situations may produce an infinite loop?
>

There may be risks of infinite loops in each optimization step/pass, but as 
seen above, there's a risk of infinite loop in JS optimization at level 9, 
in case optimization steps change the JS AST at each pass.

In any case, that'd be a bug. Can you please file an issue on the issue 
tracker? https://github.com/gwtproject/gwt/issues

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.

Reply via email to