[#30072] send/__send__ and private method — SASADA Koichi <ko1@...>
ささだです。
13 messages
2007/01/04
[#30095] Re: send/__send__ and private method
— Yukihiro Matsumoto <matz@...>
2007/01/06
まつもと ゆきひろです
[#30103] Re: send/__send__ and private method
— SASADA Koichi <ko1@...>
2007/01/07
ささだです。
[#30096] version.h maintenance — SASADA Koichi <ko1@...>
ささだです。
7 messages
2007/01/06
[#30099] Re: [ ruby-Bugs-5822 ] Ruby's 'etc' module cannot handle the UID of OS X 'nobody' properly — Urabe Shyouhei <shyouhei@...>
卜部です。太古のメールに返信する上に-devに振ってしまって恐縮ですが、
6 messages
2007/01/06
[#30100] Re: [ ruby-Bugs-5822 ] Ruby's 'etc' module cannot handle the UID of OS X 'nobody' properly
— Yukihiro Matsumoto <matz@...>
2007/01/06
まつもと ゆきひろです
[#30102] Re: [ ruby-Bugs-5822 ] Ruby's 'etc' module cannot handle the UID of OS X 'nobody' properly
— Urabe Shyouhei <shyouhei@...>
2007/01/07
卜部です
[#30115] Re: [ ruby-Bugs-5822 ] Ruby's 'etc' module cannot handle the UID of OS X 'nobody' properly
— Yukihiro Matsumoto <matz@...>
2007/01/08
まつもと ゆきひろです
[#30139] BASERUBY — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
6 messages
2007/01/16
[#30159] := operator — SASADA Koichi <ko1@...>
ささだです。
11 messages
2007/01/23
[#30161] Re: := operator
— Yukihiro Matsumoto <matz@...>
2007/01/23
まつもと ゆきひろです
[#30164] Re: := operator
— SASADA Koichi <ko1@...>
2007/01/23
ささだです。
[#30163] pre-processor での YARV 判定 — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
13 messages
2007/01/23
[#30165] Re: pre-processor での YARV 判定
— "U.Nakamura" <usa@...>
2007/01/23
こんにちは、なかむら(う)です。
[#30166] Re: pre-processor での YARV 判定
— SASADA Koichi <ko1@...>
2007/01/23
ささだです。
[#30169] Re: pre-processor での YARV 判定
— Yukihiro Matsumoto <matz@...>
2007/01/23
まつもと ゆきひろです
[#30171] Re: pre-processor での YARV 判定
— "Nobuyoshi Nakada" <nobu@...>
2007/01/23
なかだです。
[#30178] Re: [ruby-cvs:18815] Ruby:r11571: * misc/ruby-mode.el (ruby-font-lock-syntactic-keywords): fix — Urabe Shyouhei <shyouhei@...>
卜部です。これruby_1_8_5にも入れていただくことって可能ですか?
5 messages
2007/01/24
[#30181] Open3.popen3 の終了処理 — とみたまさひろ <tommy@...>
とみたです。
5 messages
2007/01/24
[#30199] YARV の thread について — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
7 messages
2007/01/28
[#30200] coredump on Mac OS X — "T.Kanai" <tin.k.gm@...>
はじめまして、まるまる と申します。
8 messages
2007/01/28
[#30206] local var name collision in instruby.rb (matzruby) — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
7 messages
2007/01/29
[#30207] Re: local var name collision in instruby.rb (matzruby)
— Yukihiro Matsumoto <matz@...>
2007/01/29
まつもと ゆきひろです
[#30208] Re: local var name collision in instruby.rb (matzruby)
— "U.Nakamura" <usa@...>
2007/01/29
こんにちは、なかむら(う)です。
[#30211] String#sub!{...} — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
8 messages
2007/01/29
[#30214] move ruby_1_8_5 to SVN — Shugo Maeda <shugo@...>
前田です。
7 messages
2007/01/30
[#30220] schedule for Ruby 1.8.6 — "Akinori MUSHA" <knu@...>
ruby-core を読んでいない人もいると思うので、ここでもアナウンス
20 messages
2007/01/30
[#30239] Re: schedule for Ruby 1.8.6
— "Hiroyuki Iwatsuki" <don@...>
2007/02/01
岩月と申します。
[#30366] Re: schedule for Ruby 1.8.6
— Nobuyoshi Nakada <nobu@...>
2007/02/17
なかだです。
[#30370] Re: schedule for Ruby 1.8.6
— "Akinori MUSHA" <knu@...>
2007/02/17
At Sat, 17 Feb 2007 10:52:14 +0900,
[ruby-dev:30202] Re: YARV の thread について
From:
SASADA Koichi <ko1@...>
Date:
2007-01-29 01:27:56 UTC
List:
ruby-dev #30202
ささだです。 Hidetoshi NAGAI wrote: > Ruby/Tk の YARV 対応ですが,tcltklib.c における Tcl/Tk wrapper の > 根本の戦略からして作り直さねばならないようです. > > で,どのようにすべきか判断する上で,YARV での thread について > 少し確認と質問をさせていただきたいと思います. 質問をまとめてくださってありがとうございます。 > ----------------------------------------------------------------------- > * 現在の YARV は Thread model 2 であり,ある時点で稼働状態にある > thread は一つだけということですよね? はい。 > * 上記が正しいとして,将来,Thread model 1 や 3 が作り込まれることは > どの程度想定しておけば良いでしょうか? > (「比較的近い将来に」とか,「当面は予定がない」とか...) 一応、model 3 については試作したものがあります。あとは外圧(やっぱり並 列に動かないとなぁ、とか)と皆のやる気(一人でやるにはちょっとつらい)や リソース(どっかの会社によって取り組むとか)によるかと思います。 model 1 は、これも外圧(ネイティブスレッドうぜーよ! という声)による かと思います。こっちは現在も出来ていることから、もしかしたら少しがんばれ ば対応できるかも、というところです。 > * 現在の YARV ではすべての thread が必ず一つの native thread に > 対応するということでよろしいでしょうか? はい。 > * 組み込むライブラリ側で新たな native thread が作成された場合, > その native thread から Ruby を呼ぶことは可能ですか? > 不可能ではない場合,どのような処理を先に呼んでおく必要がありますか? 現状では不可能です。 あんまり対策は考えていないんですが、そういう API を用意することは可能 です。その際は、ちょっと面倒な制約が入るかもしれません。 > * ライブラリ側で作成された native thread が並列動作をしようとする場合, > 注意すべきことはどのようなことでしょうか? > (Thread オブジェクトとしての管理外なので,Ruby 側のリソースに > 触れない限りは問題なしだとか,窓口 thread を一つ用意して > それを経由するようにしなければならないとか, > これこれに注意しないとおかしなことになるとか...) Ruby側リソースに触れない限りは大丈夫だと思います。たとえば、端的な例を 言うと、管轄外ネイティブスレッドのマシンスタックはGC対象ではありません。 窓口Rubyスレッドをひとつ用意するのが楽なのではないかなぁ、と思います。 > * Thread model 2 の場合,thread 切り替えのタイミングコントロールは, > これまでと同様,ある一定の処理 (YARV_CHECK_INTS()?) が呼ばれた際に > 切り替わるという考え方でよいのでしょうか? そうです。 > その場合,ライブラリ側ではどの処理を呼べば良いのでしょうか? > yarvcore.h を include して YARV_CHECK_INTS() を呼ぶということに > なるのでしょうか? ライブラリ側で「スレッド切り替えを発生させるには」何を呼べばいいか、で すかね。rb_thread_schedule() を呼ぶと、とりあえず切り替えてくれます。 が、ruby コードが走るタイミングで定期的に切り替え処理が走るので、あんま り必要はないかもしれません。ライブラリ側で長時間ブロックしてしまう際には 必要があるかもしれません。 > * 従来の thread は切り替えのコストがかなり大きかったわけですが, > YARV ではどの程度でしょうか? > 例えば,Tk の処理待ちイベントが存在しなければ常に即座に thread を > 切り替えても問題ないか,それとも切り替えが頻繁だと困るので > 少しの間イベント待ちを試みてから切り替えるようにすべきかなどです. 切り替えのコストは OS やシステムソフトウェアによります。つまり、ネイ ティブスレッド処理機構のスレッド切り替えの性能によります。経験的には、従 来のRubyのスレッド切り替えよりも随分と高速になっています。 とくに、従来のRuby処理系はスタックのコピーが発生するため、スタックの深 さに比例した切り替え時間が必要でしたが、YARVでは定数時間でスレッド切り替 えを行うことが期待できます。 > 「質問の仕方が悪くて意味がわからない」という場合はお尋ね下さい. > まとまりがなくて申し訳ありませんが,よろしくお願い致します. いや、大変答えやすかったです。日本語だし ^^; また何かあればご質問ください。 -- // SASADA Koichi at atdot dot net