[#7064] How to put version number of shared library? — Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>
早坂@会津大学です。
4 messages
1999/06/02
[#7082] [BUG] unpack('m') — 民斗 <tommy@...>
民斗です。
6 messages
1999/06/07
[#7091] [BUG?] load in thread — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
7 messages
1999/06/09
[#7092] Re: [BUG?] load in thread
— matz@... (Yukihiro Matsumoto)
1999/06/09
まつもと ゆきひろです
[#7102] Ruby 1.3.4-990611 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.4-990611 is out, check out:
20 messages
1999/06/11
[#7108] Re: Ruby 1.3.4-990611
— Koji Arai <JCA02266@...>
1999/06/12
新井です。
[#7123] Re: Ruby 1.3.4-990611
— nagai@...
1999/06/16
永井@知能.九工大です.
[#7110] --enable-shared support — Katsuyuki Komatsu <komatsu@...>
小松です。
11 messages
1999/06/14
[#7111] Re: --enable-shared support
— WATANABE Tetsuya <tetsu@...>
1999/06/15
渡辺哲也です。
[#7173] [BUG] <<`HERE_DOC` — Koji Arai <JCA02266@...>
新井です。
7 messages
1999/06/22
[#7178] [PATCH] rubydb3x.el, ruby-mode.el — nobu.nakada@...
中田です。
7 messages
1999/06/22
[#7181] acknowledgement — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
6 messages
1999/06/23
[#7210] Ruby 1.3.4-990624 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.4-990624 is out, check out:
7 messages
1999/06/24
[#7223] Ruby 1.3.4-990625 — Yukihiro Matsumoto <matz@...>
Ruby 1.3.4-990625 is out, check out:
14 messages
1999/06/25
[#7224] -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
— Ryo HAYASAKA <hayasaka@...21.u-aizu.ac.jp>
1999/06/25
早坂@会津大学です。
[#7225] Re: -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
— Katsuyuki Komatsu <komatsu@...>
1999/06/25
小松です。
[#7226] Re: -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
— Katsuyuki Komatsu <komatsu@...>
1999/06/25
小松です。
[#7227] Re: -Wl,-rpath on Linux (Re: Ruby 1.3.4-990625)
— Katsuyuki Komatsu <komatsu@...>
1999/06/25
小松です。
[#7253] Re: Ruby 1.3.4-990625 — SHIROYAMA Takayuki <psi@...>
9 messages
1999/06/29
[#7258] TkVariable — Koji Arai <JCA02266@...>
新井です。
6 messages
1999/06/29
[ruby-dev:7113] [Q] caller and binding [Re: [BUG?] load in thread]
From:
keiju@... (石塚圭樹)
Date:
1999-06-15 04:02:29 UTC
List:
ruby-dev #7113
けいじゅ@日本ラショナルソフトウェアです.
だいぶ遅れてしまいましたが...
In [ruby-dev :7094 ] the message: "[ruby-dev:7094] Re: [BUG?] load in
thread ", on Jun/09 17:48(JST) Yukihiro Matsumoto writes:
>まつもと ゆきひろです
>|上記のスクリプトを, 他のファイルからrequireして実行してみてください. きっ
>|と, 止ると思います.
>あ、なるほど。
>現状のRubyは複数のスレッドから同時にrequireすることは保証し
>てますが(適当にシリアライズしてる)、require中に別スレッドを
>上げてそこからまたrequireすることは保証してません(ネストして
>るとシリアライズできない)。ま、バグと呼んでも良いんですが、
>当面解決できる自信はないです。
>
># なんでそんな複雑なことを...
irbで defined? の問題を解決する方法はわかったんですが, もう1つ気になるこ
とがあります. それが, caller(0)なんですね.
いまのirbでcaller(0)すると相当長い配列がかえりますよね. それをどうにかで
きないかと色々試していたのでした.
In [ruby-dev :7095 ] the message: "[ruby-dev:7095] Re: [BUG?] load in
thread ", on Jun/09 18:20(JST) Yukihiro Matsumoto writes:
>まつもと ゆきひろです
>しょうがないんで require するファイル名をキーにして、ファイ
>ル毎にシリアライズを行うことにしました。
うーん. よくわからん....
>なんとなく動いているように見えます。
たしかに動作しました.
それはともかく本題です:
caller(0)とバインディングについて教えてください.
まず以下のスクリプトを見てください.
--
require "thread"
require "readline"
STDOUT.sync = true
Q = Queue.new
def bind
binding
end
b = bind
Thread.start do
loop do
r = Q.pop
p eval r, b
end
end
i = 0
loop do
i += 1
print i, ">> "
r = Readline.readline
Q.push r
end
--
これを実行すると.
1>> caller(0)
["(eval):1:in `bind'", "eval-thread.rb:10:in `eval'", "eval-thread.rb:17", "eval-thread.rb:16:in `loop'", "eval-thread.rb:16", "eval-thread.rb:16:in `start'", "eval-thread.rb:16"]
こんな感じの結果になります. このバックとレースの結果が何か理解できないん
ですよね. というのも
Thread.start do...の中の
p eval r, b
を
p eval r, TOPLEVEL_BINDING
に変えると
1>> caller(0)
["(eval):1"]
って感じになるんですね.
何でこういう違いが出るのでしょう?
__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju@rational.com <<---