[#5563] Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...>

Lately, I've been thinking about the future of ruby

44 messages 2005/08/19
[#5564] Re: Non-overridable and non-redefinable methods — Austin Ziegler <halostatue@...> 2005/08/19

On 8/19/05, Eric Mahurin <eric_mahurin@yahoo.com> wrote:

[#5571] Re: Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...> 2005/08/19

--- Austin Ziegler <halostatue@gmail.com> wrote:

[#5574] Re: Non-overridable and non-redefinable methods — TRANS <transfire@...> 2005/08/20

Just wanted to add a few things.

[#5581] Re: Non-overridable and non-redefinable methods — Austin Ziegler <halostatue@...> 2005/08/20

On 8/19/05, TRANS <transfire@gmail.com> wrote:

[#5583] Re: Non-overridable and non-redefinable methods — "David A. Black" <dblack@...> 2005/08/20

Hi --

[#5585] Re: Non-overridable and non-redefinable methods — Eric Mahurin <eric_mahurin@...> 2005/08/20

--- "David A. Black" <dblack@wobblini.net> wrote:

[#5609] Pathname#walk for traversing path nodes (patch) — ES <ruby-ml@...>

Here is a small addition to Pathname against 1.9, probably suited

20 messages 2005/08/22

Re: Exceptions in threads all get converted to a TypeError

From: Mauricio Fernandez <mfp@...>
Date: 2005-08-16 22:42:47 UTC
List: ruby-core #5554
On Wed, Aug 17, 2005 at 04:20:52AM +0900, Paul van Tilburg wrote:
> Hey all,
> 
> I am using ruby1.8 from Debian unstable, which seems to be Ruby 1.8.2
> with some patches from CVS (ruby -v already returns 1.8.3).  I am
> experiencing some problems with exceptions in Threads since a few
> days/weeks.  They all seem to be converted to a TypeError, which makes
> debugging very hard for the app I am working on.

The example you provided in your bug report (reproduced below for the record)
seems to work fine after reverting part of the changes in revision 1.616.2.101
of eval.c:


Index: eval.c
===================================================================
RCS file: /src/ruby/eval.c,v
retrieving revision 1.616.2.117
diff -p -u -r1.616.2.117 eval.c
--- eval.c	16 Aug 2005 03:43:11 -0000	1.616.2.117
+++ eval.c	16 Aug 2005 22:38:44 -0000
@@ -1378,8 +1378,9 @@ static int
 sysexit_status(err)
     VALUE err;
 {
-    VALUE st = rb_iv_get(err, "status");
-    return NUM2INT(st);
+    VALUE st = rb_attr_get(err, rb_intern("status"));
+
+    return NIL_P(st) ? EXIT_FAILURE : NUM2INT(st);
 }
 
 static int
@@ -10070,6 +10071,7 @@ rb_thread_switch(n)
       case RESTORE_EXIT:
 	ruby_errinfo = th_raise_exception;
 	ruby_current_node = th_raise_node;
+	error_print();
 	terminate_process(sysexit_status(ruby_errinfo), 0, 0);
 	break;
       case RESTORE_NORMAL:


batsman@tux-chan:~/src/ruby/ruby1.8$ cat fail.rb
Thread.abort_on_exception = true
Thread.new { p foo }
batsman@tux-chan:~/src/ruby/ruby1.8$ ./ruby -v fail.rb
ruby 1.8.3 (2005-08-16) [i686-linux]
fail.rb:2: undefined local variable or method `foo' for main:Object (NameError)
        from fail.rb:2


-- 
Mauricio Fernandez

In This Thread