diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | eval.c | 8 | ||||
-rw-r--r-- | insns.def | 2 | ||||
-rw-r--r-- | version.h | 6 |
4 files changed, 17 insertions, 7 deletions
@@ -1,3 +1,11 @@ +Tue Feb 19 11:14:13 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * eval.c (ruby_exec_node): no thread starts inside iseq compilation. + + * eval.c (rb_f_raise): skip current control frame. [ruby-core:15589] + + * insns.def (opt_div): raise as the ordinary method. [ruby-core:15589] + Mon Feb 18 15:16:30 2008 Tanaka Akira <akr@fsij.org> * string.c (rb_str_each_line): fix newline size. @@ -225,9 +225,9 @@ ruby_exec_node(void *n, char *file) PUSH_TAG(); if ((state = EXEC_TAG()) == 0) { + VALUE iseq = rb_iseq_new(n, rb_str_new2("<main>"), + rb_str_new2(file), Qfalse, ISEQ_TYPE_TOP); SAVE_ROOT_JMPBUF(th, { - VALUE iseq = rb_iseq_new(n, rb_str_new2("<main>"), - rb_str_new2(file), Qfalse, ISEQ_TYPE_TOP); th->base_block = 0; val = rb_iseq_eval(iseq); }); @@ -775,7 +775,9 @@ rb_f_raise(int argc, VALUE *argv) argv = &err; } } - rb_raise_jump(rb_make_exception(argc, argv)); + err = rb_make_exception(argc, argv); + GET_THREAD()->cfp++; + rb_raise_jump(err); return Qnil; /* not reached */ } @@ -1513,7 +1513,7 @@ opt_div /* copied from numeric.c#fixdivmod */ long mod; if (y == 0) - rb_num_zerodiv(); + goto INSN_LABEL(normal_dispatch); if (y < 0) { if (x < 0) div = -x / -y; @@ -1,7 +1,7 @@ #define RUBY_VERSION "1.9.0" -#define RUBY_RELEASE_DATE "2008-02-18" +#define RUBY_RELEASE_DATE "2008-02-19" #define RUBY_VERSION_CODE 190 -#define RUBY_RELEASE_CODE 20080218 +#define RUBY_RELEASE_CODE 20080219 #define RUBY_PATCHLEVEL 0 #define RUBY_VERSION_MAJOR 1 @@ -9,7 +9,7 @@ #define RUBY_VERSION_TEENY 0 #define RUBY_RELEASE_YEAR 2008 #define RUBY_RELEASE_MONTH 2 -#define RUBY_RELEASE_DAY 18 +#define RUBY_RELEASE_DAY 19 #ifdef RUBY_EXTERN RUBY_EXTERN const char ruby_version[]; |