[#11822] RCR: Input XML support in the base Ruby — Dave Thomas <Dave@...>

15 messages 2001/03/01

[#11960] Not Ruby, for me, for the moment at least — "Michael Kreuzer" <mkreuzer@... (nospam)>

I wrote on this newsgroup last weekend about how I was considering using

11 messages 2001/03/04

[#12023] French RUG ? — "Jerome" <jeromg@...>

Hi fellow rubyers,

16 messages 2001/03/05

[#12103] disassembling and reassembling a hash — raja@... (Raja S.)

Given a hash, h1, will the following always hold?

20 messages 2001/03/06

[#12204] FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1>

Ruby is, indeed, a very well designed language.

64 messages 2001/03/07
[#12250] Re: FEATURE REQUEST: 'my' local variables — Leo Razoumov <see_signature@127.0.0.1> 2001/03/07

>>>>> "GK" == GOTO Kentaro <gotoken@math.sci.hokudai.ac.jp> writes:

[#12284] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/08

In message "[ruby-talk:12250] Re: FEATURE REQUEST: 'my' local variables"

[#12289] Re: FEATURE REQUEST: 'my' local variables — matz@... (Yukihiro Matsumoto) 2001/03/08

Hi,

[#12452] Re: FEATURE REQUEST: 'my' local variables — gotoken@... (GOTO Kentaro) 2001/03/12

In message "[ruby-talk:12289] Re: FEATURE REQUEST: 'my' local variables"

[#12553] Re: FEATURE REQUEST: 'my' local variables — Dave Thomas <Dave@...> 2001/03/13

matz@zetabits.com (Yukihiro Matsumoto) writes:

[#12329] Math package — Mathieu Bouchard <matju@...>

18 messages 2001/03/09

[#12330] Haskell goodies, RCR and challenge — Robert Feldt <feldt@...>

Hi,

19 messages 2001/03/09
[#12374] Re: Haskell goodies, RCR and challenge — matz@... (Yukihiro Matsumoto) 2001/03/10

Hi,

[#12349] Can Ruby-GTK display Gif Png or Jpeg files? — Phlip <phlip_cpp@...>

Ruby-san:

20 messages 2001/03/09

[#12444] class variables — Max Ischenko <max@...>

14 messages 2001/03/12

[#12606] Order, chaos, and change requests :) — Dave Thomas <Dave@...>

17 messages 2001/03/14

[#12635] email address regexp — "David Fung" <dfung@...>

i would like to locate probable email addresses in a bunch of text files,

12 messages 2001/03/14

[#12646] police warns you -- Perl is dangerous!! — Leo Razoumov <see_signature@127.0.0.1>

I just read this story on Slashdot

14 messages 2001/03/14
[#12651] Re: police warns you -- Perl is dangerous!! — pete@... (Pete Kernan) 2001/03/14

On 14 Mar 2001 11:46:35 -0800, Leo Razoumov <see_signature@127.0.0.1> wrote:

[#12691] Re: police warns you -- Perl is dangerous!! — "W. Kent Starr" <elderburn@...> 2001/03/15

On Wednesday 14 March 2001 15:40, Pete Kernan wrote:

[#12709] [OFFTOPIC] Re: police warns you -- Perl is dangerous!! — Stephen White <spwhite@...> 2001/03/16

On Fri, 16 Mar 2001, W. Kent Starr wrote:

[#12655] Re: FEATURE REQUEST: 'my' local variables — "Benjamin J. Tilly" <ben_tilly@...>

>===== Original Message From Leo Razoumov <see_signature@127.0.0.1> =====

18 messages 2001/03/14

[#12706] Library packaging — "Nathaniel Talbott" <ntalbott@...>

I have a project that I'm working on that needs to live two different lives,

30 messages 2001/03/16

[#12840] Looking for a decent compression scheme — Dave Thomas <Dave@...>

14 messages 2001/03/19

[#12895] differences between range and array — "Doug Edmunds" <dae_alt3@...>

This code comes from the online code examples for

16 messages 2001/03/20
[#12896] Re: differences between range and array — "Hee-Sob Park" <phasis@...> 2001/03/20

[#12899] Re: differences between range and array — Jim Freeze <jim@...> 2001/03/20

On Tue, 20 Mar 2001, Hee-Sob Park wrote:

[#12960] TextBox ListBox — Ron Jeffries <ronjeffries@...>

Attached is a little Spike that Chet and I are doing. It is a

13 messages 2001/03/20

[#12991] [ANN] Lapidary 0.2.0 — "Nathaniel Talbott" <ntalbott@...>

Well, here's my first major contribution to the Ruby world: Lapidary. It's a

16 messages 2001/03/20

[#13028] mkmf question — Luigi Ballabio <luigi.ballabio@...>

15 messages 2001/03/21

[#13185] Reading a file backwards — "Daniel Berger" <djberg96@...>

Hi all,

21 messages 2001/03/25
[#13197] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

> Hi Dan,

[#13203] Re: Reading a file backwards — Mathieu Bouchard <matju@...> 2001/03/25

On Sun, 25 Mar 2001, Daniel Berger wrote:

[#13210] Re: Reading a file backwards — "Daniel Berger" <djberg96@...> 2001/03/25

"Mathieu Bouchard" <matju@sympatico.ca> wrote in message

[#13374] Passing an array to `exec'? — Lloyd Zusman <ljz@...>

I'd like to do the following:

15 messages 2001/03/31

[#13397] Multidimensional arrays and hashes? — Lloyd Zusman <ljz@...>

Is it possible in ruby to make use of constructs that correspond to

14 messages 2001/03/31

[ruby-talk:12105] Re: RCR: replacing 'caller'

From: Avi Bryant <avi@...4.com>
Date: 2001-03-06 08:15:43 UTC
List: ruby-talk #12105
Robert,

Nice... this is, of course, exactly what we needed to be able to play with
dispatchers in pure ruby.
  
However, it needs some error checking:

class Foo
	define_method(:x) {puts call_stack[0]}
end

Foo.new.x #=> SEGFAULT

I can work around it for new by using call_stack(2)...


On Tue, 6 Mar 2001, Robert Feldt wrote:

> Hi,
> 
> IMHO, 'caller' would be much more useful if you could know/access the
> method and object that called you. Therefore I submit this RCR:
> 
> Replace 'caller' with 'call_stack' returning an array of arrays each with
> the format:
> 
> [object_called, method_called_id, args, file_with_call, line_for_call]
> 
> 'call_stack' takes a level parameter (almost) in the same way as 'caller'. 
> 
> Example:
> def m(a,b)
>   puts call_stack.inspect
> end
> def m2(a,b)
>   m(a,b)
> end
> 
> m2(1,true)
> 
> would print
> [[main, :m, [1, true], "../call_stack/t2.rb", 5], [main, :m2, [1, true],
> "../call_stack/t2.rb", 8]]
> 
> It might also be useful to add any blocks associated with calls (I'm
> skeptical if this adds enough value for the added complexity).
> 
> Maybe there's a risk in including the args. I'm not sure... Probably
> there's a risk in any of this since Matz hasn't previously included it?
> 
> Below is the diff to eval.c in latest snapshot implementing
> call_stack.
> 
> Regards,
> 
> Robert
> 
> 
> 
> --- eval.c.orig	Tue Mar  6 06:00:04 2001
> +++ eval.c	Tue Mar  6 07:52:24 2001
> @@ -4687,6 +4687,54 @@
>  }
>  
>  static VALUE
> +call_stack(lev)
> +    int lev;
> +{
> +    struct FRAME *frame = ruby_frame;
> +    VALUE ary = rb_ary_new();
> +    VALUE inner_ary;
> +
> +    while (lev-- > 0) {
> +      frame = frame->prev;
> +      if (!frame) {
> +	ary = Qnil;
> +	break;
> +      }
> +    }
> +    while (frame && frame->file) {
> +      inner_ary = rb_ary_new();
> +      rb_ary_push(inner_ary, frame->self);
> +      rb_ary_push(inner_ary, ID2SYM(frame->last_func));
> +      rb_ary_push(inner_ary, rb_ary_new4(frame->argc, frame->argv));
> +      rb_ary_push(inner_ary, rb_str_new2(frame->file));
> +      rb_ary_push(inner_ary, INT2FIX(frame->line));
> +      // Add block if block_given? ie. check iter stack and traverse
> block
> +      // stack accordingly...
> +      rb_ary_push(ary, inner_ary);
> +      frame = frame->prev;
> +    }
> +
> +    return ary;
> +}
> +
> +static VALUE
> +rb_f_call_stack(argc, argv)
> +    int argc;
> +    VALUE *argv;
> +{
> +    VALUE level;
> +    int lev;
> +
> +    rb_scan_args(argc, argv, "01", &level);
> +
> +    if (NIL_P(level)) lev = 1;
> +    else lev = NUM2INT(level);
> +    if (lev < 0) rb_raise(rb_eArgError, "negative level(%d)", lev);
> +
> +    return call_stack(lev);
> +}
> +
> +static VALUE
>  rb_f_caller(argc, argv)
>      int argc;
>      VALUE *argv;
> @@ -5869,6 +5917,7 @@
>      rb_define_global_function("fail", rb_f_raise, -1);
>  
>      rb_define_global_function("caller", rb_f_caller, -1);
> +    rb_define_global_function("call_stack", rb_f_call_stack, -1);
>  
>      rb_define_global_function("exit", rb_f_exit, -1);
>      rb_define_global_function("abort", rb_f_abort, 0);
> 
> 


In This Thread