斎藤と申します。こんばんは。

ふと思い立って、以前akrさんが投げられたcallccでcoreを吐くテストを現状の
実装でも行ってみました。結果、[ruby-dev:24291]のみが現在でもcoreを吐く
ようです。
# [ruby-dev:30917]での前振りは大きすぎたみたいです、すみません。

$ cat 24291.rb

# "send" replaced with "funcall"
arr = (1..100).map {|i| i.to_s }
class << arr[50]; self; end.funcall(:define_method, :<=>) {|v|
  if not defined? $result
    callcc {|k| $k = k }
  else
     $result.clear; $result.compact!
  end
  1
}
$result = arr.sort_by {|i| i }
$k.call

$ ruby-trunk 24291.rb
24291.rb:11: -- stack frame ------------
0000 (0x402dc008): 00000000
0001 (0x402dc00c): 00000004
0002 (0x402dc010): 00000001
0003 (0x402dc014): 4037ed18
0004 (0x402dc018): 00000004
0005 (0x402dc01c): 4037dc38
0006 (0x402dc020): 4037ed18
0007 (0x402dc024): 00000004
0008 (0x402dc028): 4035bf75 <- lfp <- dfp
-- control frame ----------
c:0004 p:---- s:0009 b:0009 l:000008 d:000008 CFUNC  :sort_by
c:0003 p:0039 s:0006 b:0006 l:0x22d0 d:0x22d0 TOP    24291.rb:11
c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :(null)
c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------
---------------------------
DBG> : "24291.rb:11:in `<main>'"
-- backtrace of native function call (Use addr2line) --
0x400e7a50
0x40042366
0x400af1df
0xffffe420
0x4003fb19
0x400c8f4d
0x4003fc3f
0x400e60ae
0x400e4d3d
0x400e5a69
0x400e5e6a
0x400e7c4b
0x40048901
0x40048934
0x400489a1
0x804874e
0x401bb974
0x8048661
-------------------------------------------------------
[BUG] Segmentation fault
ruby 1.9.0 (2007-06-07) [i686-linux]

アボートしました (core dumped)


ただし、以下の一連のテストは正常に動作した事も合わせて報告させてもらい
ます。 (無限ループするものは、念のため10秒以上待ってチェックしました)

[ruby-dev:25226]
[ruby-dev:25003]
[ruby-dev:24738]
[ruby-dev:24737]
[ruby-dev:24735]
[ruby-dev:24727]
[ruby-dev:24671]
[ruby-dev:24642]
[ruby-dev:24499]
[ruby-dev:24487]
[ruby-dev:24463]
[ruby-dev:24432]
[ruby-dev:24400]
[ruby-dev:24399]
[ruby-dev:24378]
[ruby-dev:24311]
[ruby-dev:24310]
[ruby-dev:24303]
[ruby-dev:24301]
[ruby-dev:24289]
[ruby-dev:24287]
[ruby-dev:24284]

なお上記のリストは、手元のruby-devアーカイブ(2004/4〜)を
・投稿したのがakrさんであり
・本文にcallccが含まれる
という条件でフィルタリングした後、さらに洗い出したものです。

よろしくお願いします。

--
斎藤ただし