> Classオブジェクトが生成された場所を返す Class#source_location メソッドの実装を希望いたします。
>
> これによって解決される問題の例としては、Timeout::timeout が無名の例外クラスオブジェクトを raise した
> 場合に、どこで仕掛けられた timeout なのか、発生場所を特定できるようになります。
> このようなケースでは、例外オブジェクトが保有している backtrace はtimeoutが発生した時点での
> プログラム実行位置を起点としており、Timeout::timeout(...) を仕掛けた場所の情報は失われています。

言ってることが今ひとつ理解できません。

test.rb
ーーーーーーーーーー
1: require "timeout"
2:
3: def foo
4:   sleep 10
5: end
6:
7: Timeout.timeout(1) {
8:   foo
9: }

というコードの結果は

% ./ruby-trunk ../test.rb
../test.rb:4:in `sleep': execution expired (Timeout::Error)
from ../test.rb:4:in `foo'
from ../test.rb:8:in `block in <main>'
from ../test.rb:7:in `<main>'

であり、タイムアウトが発生した時点でのプログラム実行位置(foo内の行番号4)と
Timeout仕掛けた場所(行番号7から9のブロック)は両方共わかるように見えます。

なるせさん、わたし、あのバックトレースの整形処理がイマイチ理解できんのだが、
あれはどういう処理を意図してるの。