Hi,
2008/6/12, Paul Boekholt <p.boekholt / gmail.com>:
> 2008/6/12, Nobuyoshi Nakada <nobu / ruby-lang.org>:
>
> > It doesn't change ruby_init_stack(), but makes the function
>  >  will be called always instead of Init_stack().
>
>
> This is a mystery, because currently I'm not using Init_stack(). I'm
>
> using ruby_init_stack().

I've had time to do some debugging, it seems the only place in the
module where Init_stack is called, is from ruby_init(). But I still
don't understand why revision 17036 would break it.

I've run the module in gdb with revision 17639. I'm having a problem
in rb_load_protect:
   308	void
   309	rb_load_protect(VALUE fname, int wrap, int *state)
   310	{
   311	    int status;
   312	
   313	    PUSH_TAG();
   314	    if ((status = EXEC_TAG()) == 0) {
   315		rb_load(fname, wrap);
   316	    }
   317	    POP_TAG();
   318	    if (state)
   319		*state = status;
   320	}

(gdb) break rb_load_protect
Breakpoint 1 at 0xb7ab073a: file load.c, line 313.
(gdb) cont
Continuing.
[Switching to Thread -1211147488 (LWP 11503)]

Breakpoint 1, rb_load_protect (fname=134750700, wrap=0,
state=0xbfd202bc) at load.c:313
313	    PUSH_TAG();
(gdb) break 317
Breakpoint 2 at 0xb7ab0771: file load.c, line 317.
(gdb) n
314	    if ((status = EXEC_TAG()) == 0) {
(gdb) n
315		rb_load(fname, wrap);
(gdb) p status
$1 = 0
(gdb) cont
Continuing.

Breakpoint 2, rb_load_protect (fname=134750700, wrap=0,
state=0xbfd202bc) at load.c:317
317	    POP_TAG();
(gdb) p status
$2 = 8
(gdb) backtrace
#0  rb_load_protect (fname=134750700, wrap=0, state=0xbfd202bc) at load.c:317
#1  0xb7a963aa in slrb_load_file (s=0x807db08 "./slruby.sl") at
ruby-module.c:837

How can status change from 0 to 8 between lines 315 and 317?