Hi

I have tested that on my problem example and it restores the 
desired behaviour.  Is is possible to include that in the next release, 
please?

Thanks for the help.

John Fletcher

------- Forwarded message follows -------
Date sent:      	Fri, 21 Jul 2006 00:19:59 +0900
From:           	nobu / ruby-lang.org
Send reply to:  	ruby-core / ruby-lang.org
Subject:        	Re: Patch to Ruby in 2005
To:             	ruby-core / ruby-lang.org

[ Double-click this line for list subscription options ] 

Hi,

At Thu, 20 Jul 2006 01:11:09 +0900,
John Fletcher wrote in [ruby-core:08290]:
> 
> [1 Mail message body <text/plain; US-ASCII (7bit)>]
> According to the ChangeLog in Ruby 1.8.4 the 
> following patch was made to Ruby in 2005
> 
> Wed Jun  8 08:33:10 2005  Nobuyoshi Nakada  <nobu@ruby-
> lang.org>
> * eval.c (backtrace): skip successive frames sharing same node. 
> 
> We are having some trouble as a result, because when using the
> coerce feature of ruby, the call stack no longer contains the
> information needed, and we have traced this to a line of code in
> backtrace in eval.c.
> 
>  if (frame->prev->node == n) continue;
> 
> If this is commented out then the problem goes away.
> 
> The problem is that the calling operator e.g. `+' is no longer in
> the string given by caller[0] and so it is not possible to take
> different action depending on different operators.

Does this help?

 
Index: eval.c
==================================================
=================
RCS file: /cvs/ruby/src/ruby/eval.c,v retrieving revision 1.924 diff
-p -U 2 -r1.924 eval.c --- eval.c	19 Jul 2006 13:52:03 -0000	
1.924 +++
eval.c	20 Jul 2006 15:05:30 -0000 @@ -5805,2 +5805,3 @@ 
rb_call0(VALUE
klass, VALUE recv, ID id,
      PUSH_SCOPE();
+	    ruby_frame->node = body;
      if (body->nd_rval) {
 

-- 
Nobu Nakada


------- End of forwarded message --------- 
Dr John P. Fletcher   Tel: (44) 121 204 3389 (direct line)
Chemical Engineering and Applied Chemistry (CEAC),
School of Engineering and Applied Science (SEAS),
Aston University, Aston Triangle, BIRMINGHAM B4 7ET  U.K.               
CEAC Web site http://www.ceac.aston.ac.uk/
FAX: (44) 121 204 3679