[MacRuby-devel] [MacRuby] #428: AOT compiled script can't get rescued

MacRuby ruby-noreply at macosforge.org
Mon Nov 9 14:38:18 PST 2009


#428: AOT compiled script can't get rescued
-------------------------------------+--------------------------------------
 Reporter:  mattaimonetti@…          |       Owner:  lsansonetti@…        
     Type:  defect                   |      Status:  new                  
 Priority:  major                    |   Milestone:  MacRuby 0.5          
Component:  MacRuby                  |    Keywords:                       
-------------------------------------+--------------------------------------
Description changed by mattaimonetti@…:

Old description:

> t.rb
>
> {{{
> begin
>   require 't1'
> rescue Exception => e
>   puts "oops let's continue even tho: #{e.message}"
> end
>
> puts 'done'
> }}}
>
> t1.rb
> {{{
> class Foo < DoesNotExist
> end
> }}}
>
> {{{
> $ macruby t.rb
> oops let's continue even tho: uninitialized constant DoesNotExist
> done
> }}
>
> Then compile t1.rb
>
> {{{
> $ macrubyc -C t1.rb
> }}}
>
> now try again:
> {{{
> $ macruby t.rb
> 2009-11-09 14:26:04.441 macruby[6041:903] *** Terminating app due to
> uncaught exception 'NameError', reason: 'uninitialized constant
> DoesNotExist'
> *** Call stack at first throw:
> (
>         0   CoreFoundation                      0x00007fff8454f5a4
> __exceptionPreprocess + 180
>         1   libobjc.A.dylib                     0x00007fff804e1313
> objc_exception_throw + 45
>         2   libmacruby.dylib                    0x0000000100179405
> rb_vm_raise + 437
>         3   libmacruby.dylib                    0x00000001000400d9
> rb_exc_raise + 9
>         4   libmacruby.dylib                    0x000000010003cbb4
> rb_name_error + 260
>         5   libmacruby.dylib                    0x000000010010a0d3
> rb_mod_const_missing + 83
>         6   libmacruby.dylib                    0x000000010015da9c
> rb_vm_call_with_cache2 + 4652
>         7   libmacruby.dylib                    0x000000010011f749
> rb_funcall + 425
>         8   libmacruby.dylib                    0x0000000100109c86
> rb_const_get_0 + 758
>         9   libmacruby.dylib                    0x000000010017bc72
> _ZL18rb_vm_const_lookupmmbb + 162
>         10  libmacruby.dylib                    0x000000010017f255
> rb_vm_get_const + 613
>         11  t1.rbo                              0x000000010119adda
> MREP_E8A8218CC60A4CC58372196710D15355 + 122
>         12  t1.rbo                              0x000000010119ad51
> _GLOBAL__I_main.c + 9
>         13  ???                                 0x00007fff5fc0d500 0x0 +
> 140734799860992
>         14  ???                                 0x00007fff5fc0bcec 0x0 +
> 140734799854828
>         15  ???                                 0x00007fff5fc0bda6 0x0 +
> 140734799855014
>         16  ???                                 0x00007fff5fc08fbb 0x0 +
> 140734799843259
>         17  libSystem.B.dylib                   0x00007fff84783d40 dlopen
> + 61
>         18  libmacruby.dylib                    0x0000000100114c12
> dln_load + 322
>         19  libmacruby.dylib                    0x00000001000488f2
> rb_require_safe + 466
>         20  libmacruby.dylib                    0x000000010016c030
> rb_vm_dispatch + 7648
>         21  ???                                 0x0000000101100065 0x0 +
> 4312793189
>         22  libmacruby.dylib                    0x00000001000402f9
> ruby_run_node + 73
>         23  macruby                             0x0000000100000dd8 main +
> 152
>         24  macruby                             0x0000000100000d34 start
> + 52
> )
> terminate called after throwing an instance of 'NSException'
> Abort trap
>
> }}}

New description:

 t.rb

 {{{
 begin
   require 't1'
 rescue Exception => e
   puts "oops let's continue even tho: #{e.message}"
 end

 puts 'done'
 }}}

 t1.rb
 {{{
 class Foo < DoesNotExist
 end
 }}}

 {{{
 $ macruby t.rb
 oops let's continue even tho: uninitialized constant DoesNotExist
 done
 }}}

 Then compile t1.rb

 {{{
 $ macrubyc -C t1.rb
 }}}

 now try again:
 {{{
 $ macruby t.rb
 2009-11-09 14:26:04.441 macruby[6041:903] *** Terminating app due to
 uncaught exception 'NameError', reason: 'uninitialized constant
 DoesNotExist'
 *** Call stack at first throw:
 (
         0   CoreFoundation                      0x00007fff8454f5a4
 __exceptionPreprocess + 180
         1   libobjc.A.dylib                     0x00007fff804e1313
 objc_exception_throw + 45
         2   libmacruby.dylib                    0x0000000100179405
 rb_vm_raise + 437
         3   libmacruby.dylib                    0x00000001000400d9
 rb_exc_raise + 9
         4   libmacruby.dylib                    0x000000010003cbb4
 rb_name_error + 260
         5   libmacruby.dylib                    0x000000010010a0d3
 rb_mod_const_missing + 83
         6   libmacruby.dylib                    0x000000010015da9c
 rb_vm_call_with_cache2 + 4652
         7   libmacruby.dylib                    0x000000010011f749
 rb_funcall + 425
         8   libmacruby.dylib                    0x0000000100109c86
 rb_const_get_0 + 758
         9   libmacruby.dylib                    0x000000010017bc72
 _ZL18rb_vm_const_lookupmmbb + 162
         10  libmacruby.dylib                    0x000000010017f255
 rb_vm_get_const + 613
         11  t1.rbo                              0x000000010119adda
 MREP_E8A8218CC60A4CC58372196710D15355 + 122
         12  t1.rbo                              0x000000010119ad51
 _GLOBAL__I_main.c + 9
         13  ???                                 0x00007fff5fc0d500 0x0 +
 140734799860992
         14  ???                                 0x00007fff5fc0bcec 0x0 +
 140734799854828
         15  ???                                 0x00007fff5fc0bda6 0x0 +
 140734799855014
         16  ???                                 0x00007fff5fc08fbb 0x0 +
 140734799843259
         17  libSystem.B.dylib                   0x00007fff84783d40 dlopen
 + 61
         18  libmacruby.dylib                    0x0000000100114c12
 dln_load + 322
         19  libmacruby.dylib                    0x00000001000488f2
 rb_require_safe + 466
         20  libmacruby.dylib                    0x000000010016c030
 rb_vm_dispatch + 7648
         21  ???                                 0x0000000101100065 0x0 +
 4312793189
         22  libmacruby.dylib                    0x00000001000402f9
 ruby_run_node + 73
         23  macruby                             0x0000000100000dd8 main +
 152
         24  macruby                             0x0000000100000d34 start +
 52
 )
 terminate called after throwing an instance of 'NSException'
 Abort trap

 }}}

--

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/428#comment:1>
MacRuby <http://macruby.org/>



More information about the MacRuby-devel mailing list