2010年8月7日9:40 Tanaka Akira <akr / fsij.org>:
> unimplemented method を rb_funcall で呼び出すと [BUG] になるようです。
>
> pathname で Pathname#lchmod を実装するのに File.lchmod を呼び出そうとして
>  rb_funcall(rb_cFile, rb_intern("lchmod"), 2, mode, get_strpath(self))
> としたら、File.lchmod が unimplemented method な GNU/Linux では、以下のように
>  [BUG] vm_call0: unsupported method type (7)
> となりました。

pathname を使わずに [BUG] を起こすなら例えば以下のようにできます。

% ./ruby -e '
class << File
  alias hash lchmod
end
{File => 0 }
'
-e:5: [BUG] vm_call0: unsupported method type (7)
ruby 1.9.3dev (2010-08-07 trunk 28891) [i686-linux]

-- control frame ----------
c:0003 p:0028 s:0008 b:0006 l:000ff4 d:00078c EVAL   -e:5
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:000ff4 d:000ff4 TOP
---------------------------
-- Ruby level backtrace information ----------------------------------------
-e:5:in `<main>'

-- C level backtrace information -------------------------------------------
./ruby [0x8155332]
./ruby [0x818a7cf]
./ruby(rb_bug+0x36) [0x818a82a]
./ruby [0x814d630]
./ruby [0x814e404]
./ruby [0x814e357]
./ruby(rb_funcall+0xa2) [0x814e4ae]
./ruby(rb_hash+0x22) [0x80660bb]
./ruby [0x8066184]
./ruby(st_insert+0x10e) [0x80f31e4]
./ruby(rb_hash_aset+0x64) [0x8067833]
./ruby [0x814447c]
./ruby [0x81526b6]
./ruby [0x8152e8f]
./ruby [0x805b262]
./ruby(ruby_exec_node+0x1c) [0x805b36b]
./ruby(ruby_run_node+0x3b) [0x805b33f]
./ruby [0x8059d88]
/lib/i686/cmov/libc.so.6(__libc_start_main+0xe5) [0xb7505455]
./ruby [0x8059c81]

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
-- 
[田中 哲][たなか あきら][Tanaka Akira]