In article <6168A472-3688-4D85-AAE1-49A2F376B908 / fallingsnow.net>,
  Evan Phoenix <evan / fallingsnow.net> writes:

> Yes, it does. Almost every language says that the order that the  
> arguments are evaluated in is "undefined", so I simply had rubinius  
> evaluate them the way that was simplest.

Several exceptions: Ruby, Python, Java.
They specified evaluation order.

Since the restriction of the evaluation order, I'm not sure
that what optimizations are possible when retry is removed.

retry in block on 1.9 is not more dangerous than break in
block because

foo {
  ...
  retry
  ...
} 

can be rewritten as follows.

retrying = true
while retrying
  retrying = false
  foo {
    ...
    retrying = true
    break
    ...
  }
end

break can emulate retry.
-- 
Tanaka Akira