From: Paul Brannan Date: 2008-10-23T00:20:41+09:00 Subject: [ruby-core:19448] Re: confused by this catch table On Thu, Oct 23, 2008 at 12:01:39AM +0900, SASADA Koichi wrote: > > /* enter catch scope */ > > GetISeqPtr(catch_iseqval, catch_iseq); > > cfp->sp = cfp->bp + cont_sp; > > cfp->pc = cfp->iseq->iseq_encoded + cont_pc; > > Before VM enter into rescue clause, VM set PC to continued. Ok, that make sense. The retry is triggered by the rescue clause, and the nop needs to be there so the rescue clause has something to jump to. > > (that is, since there is no code within the retry catch entry's > > applicable instructions that can throw a retry tag, does this > > effectively become a no-op?) > > Did do try such a ruby code? Yes, and the retry worked, which is why I was confused. (I did not see how it could) Thanks for the explanation, Paul