From: ts Date: 2001-04-21T20:14:40+09:00 Subject: [ruby-talk:13969] Re: Bug? retry not working properly in 1.6.3 >>>>> "D" == Dave Thomas writes: D> This seems to work on 1.6.1, but not on 1.6.3 or 1.7. Probably a problem in rb_call0, wait for confirmation from matz pigeon% diff -u eval.c~ eval.c --- eval.c~ Mon Mar 19 10:00:30 2001 +++ eval.c Sat Apr 21 13:07:58 2001 @@ -4440,7 +4440,7 @@ case TAG_RETRY: if (rb_block_given_p()) { - break; + JUMP_TAG(state); } /* fall through */ default: pigeon% pigeon% cat b.rb #!./ruby def WHILE(cond) return if not cond yield retry end i=0; WHILE(i<3) { puts i; i+=1 } pigeon% pigeon% b.rb 0 1 2 pigeon% Guy Decoux