paulk-asert opened a new pull request, #3163:
URL: https://github.com/apache/groovy/pull/3163

   …k while looping
   
   A spread-dot expression under static compilation is generated as an inline 
loop that adds each value to a new ArrayList. That list was kept on the operand 
stack for the whole loop, as the value of the expression, so the loop's back 
edge carried a non-empty stack and HotSpot could not compile the running loop 
on-stack: a method run once over a large collection stayed in the interpreter. 
The list now lives only in its temporary slot during the loop and is loaded 
from it afterwards, so the stack is empty at the back edge whenever nothing 
else is pending. A spread evaluated after other operands, such as a second 
argument, still loops with those operands on the stack.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to