[#20490] [BUG] evalがらみでSIGSEGV — "yamamoto madoka" <dan@...2.so-net.ne.jp>
こんにちは、山本 円と申します。
[#20495] 不正なバイト列とのマッチ — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#20499] Re: [ruby-cvs] ruby/ext/curses: * string.c (rb_str_shared_replace): clear flags before copy. — nobu.nakada@...
なかだです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
[#20525] [BigDecimal] changing rule of coerce — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
小林です。
まつもと ゆきひろです
小林です。
小林です。
前田です。
小林です。
小林です。
小林です。
小林です。
小林です。
[#20570] Marshal upgrade — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
咳といいます。
まつもと ゆきひろです
まつもと ゆきひろです
新井です。
新井です。
まつもと ゆきひろです
咳といいます。
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
[#20580] add library(Re:ruby-dev:20570) — たむらけんいち <sgs02516@...>
たむらです。
なひです。
In message <038d01c349cb$eaad71d0$93222fc0@sarion.co.jp>,
まつもと ゆきひろです
In message <1058171960.400840.10041.nullmailer@picachu.netlab.jp>,
話をそらしてしまうかもしれませんが、
In message <20030714.183104.09092354.taca@back-street.net>,
In message <20030715.013655.424936247.gotoyuzo@kotetsu.does.notwork.org>
In message <20030715.025907.26217115.taca@back-street.net>,
In message <20030715.051853.968499478.gotoyuzo@kotetsu.does.notwork.org>
In message <20030721.163444.09092937.taca@back-street.net>,
In message <20030721.191306.60866533.gotoyuzo@kotetsu.does.notwork.org>
In message <20030721.211845.20473808.taca@back-street.net>,
In message <20030722.002037.774147317.gotoyuzo@kotetsu.does.notwork.org>
In message <20030722.003236.72433302.taca@back-street.net>,
[#20582] rexmlのuconv依存 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
まつもと ゆきひろです
In article <1057770842.878440.16422.nullmailer@picachu.netlab.jp>,
なかだです。
In article <200307100751.h6A7pLFs003667@sharui.nakada.kanuma.tochigi.jp>,
[#20606] ruby-1.8.0 on BSD/OS — OHARA Shigeki <os@...>
大原です。
[#20613] compiling Ruby on AIX (powerpc-ibm-aix4.3.3.0) and Alpha OSF/1 (alphaev67-dec-osf5.1) — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
なかだです。
西松です. お返事が遅くなり申し訳ありません.
[#20631] SOAP4R in 1.8.0? — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20655] frozen ThreadGroup — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
永井@知能.九工大です.
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
In article <1058719939.886480.22830.nullmailer@picachu.netlab.jp>,
[#20680] 1.8.0 on IA64 etc. — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20691] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#20716] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#20748] [BigDecimal] exception handling — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
[#20765] Re: [ruby-cvs] ruby/lib: * lib/tmpdir.rb: new library to get temporary directory path, — WATANABE Hirofumi <eban@...>
わたなべです。
まつもと ゆきひろです
わたなべです。
まつもと ゆきひろです
わたなべです。
[#20780] complex.rb — Masahiro TANAKA <masa@...>
complex.rb についての修正案を[ruby-math:00543]で提案しましたが、その後
まつもと ゆきひろです
けいじゅ@いしつかです.
At Tue, 22 Jul 2003 17:30:31 +0900, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
けいじゅ@いしつかです.
At Sat, 26 Jul 2003 06:52:21 +0900, 石塚圭樹 wrote:
[#20791] 1.8.0 preview4 schedule — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
永井@知能.九工大です.
[#20795] warning: terminated thread — Masatoshi SEKI <m_seki@...>
咳といいます。
mput です。こんばんわ。
まつもと ゆきひろです
[#20800] 0**(-1) with rational — Tanaka Akira <akr@...17n.org>
そういえば思い出したのですが、rational を require しているときとしてい
At Wed, 23 Jul 2003 03:30:41 +0900, Tanaka Akira wrote:
[#20810] Rational 始めました。 — Shin-ichiro HARA <sinara@...>
原です。
けいじゅ@いしつかです.
In article <200307241940.EAA14225.keiju@ishitsuka.com>,
けいじゅ@いしつかです.
In article <200307271500.AAA04363.keiju@bc.mbn.or.jp>,
[#20818] ThreadGroup#wait — nobu.nakada@...
なかだです。
まつもと ゆきひろです
[#20868] ruby 1.8.0 preview4 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#20887] ext/openssl undefined BN_pseudo_rand_range — Kazuhiro Yoshida <moriq@...>
もりきゅうです。
[#20915] [BUG] errno == 0 — Kazuhiro Yoshida <moriq@...>
もりきゅうです。win32だけかもしれません。
まつもと ゆきひろです
もりきゅうです。
[#20932] move ChangeLog — Tanaka Akira <akr@...17n.org>
提案なんですが、1.8.0 が出たらそこまでのぶんの ChangeLog を移動しませ
[#20949] multiple Tk interpreter support — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
[#20954] ruby 1.8.0 preview5 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
もりきゅうです。
Siena. です。
[#20957] [BigDecimal] conflict between Numeric#div and BigDecimal#div — "Tadashi Saito" <shiba@...2.accsnet.ne.jp>
斎藤です。
At Mon, 28 Jul 2003 18:26:20 +0900, Tadashi Saito wrote:
まつもと ゆきひろです
At Mon, 28 Jul 2003 21:16:08 +0900, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
At Tue, 29 Jul 2003 14:43:19 +0900, Yukihiro Matsumoto wrote:
原です。
[#20989] Re: [Oniguruma] explicit capture — kkosako@...
> -----Original Message-----
[#21027] -W option — WATANABE Hirofumi <eban@...>
わたなべです。
[ruby-dev:20667] safeTk interpreter (Re: frozen ThreadGroup)
永井@知能.九工大です.
え〜っと,完全に反応なしとなってますが (^_^;
Subject: [ruby-dev:20655] frozen ThreadGroup
> ThreadGroup に次の機能を加えるのはいかがでしょうか.
という話を出したのは safeTk インタープリタを
うまく利用可能にする方法はないかと悩んだ過程からです.
safeTk インタープリタを使えるようにする際の条件として
考えたのは次の通りです.
----------------------------------------------
・少なくとも master と slave (safeTk) との二つのインタープリタが
同時に使えなければならない.
mainloop や Tk インタープリタの終了は master インタープリタで
行う必要がある.
・slave インタープリタから master インタープリタが使えてはならない.
例えば Ruby 側は両方のインタープリタからの callback を受け付けて
適切に処理を振り分けねばならないが,その際に slave から master
へのアクセスができないようにしなければならない.
・逆に master インタープリタからは slave インタープリタを
コントロールできねばならない.
・widget コントロールのために master と slave とで異なる書式が
必要となるような状況は避けたい.
また,従来の Ruby/Tk との互換性を維持,つまり,これまでと同様の
書式でスクリプトを書けるようにしたい.
・かといって,メソッド呼び出し時にインタープリタオプションを
常に必要とするようなことも避けたい.
インタープリタ指定が必要なのは master から slave をコントロール
しようとする時くらいのはずで,さらにはその場合だけにしても,
すべてのメソッド呼び出しでインタープリタを指定するのは煩雑.
----------------------------------------------
色々と考えてはみたのですが,うまい方法が思いつかず,
ない知恵をなんとか絞り出して整理しつつあるのが次の案です.
----------------------------------------------
MultiTkIP クラス
invoke 等はクラスメソッドとして実装.
===> TkCore::INTERP の値としてこのクラスを設定.
MultiTkIp.new で master IP や slave IP を生成.
master IP も slave IP も実行管理にスレッドを用いる.
実行管理スレッドは各インタープリタごとに独立したスレッドグループに属する.
通常は Thread.stop で停止した状態とし,スレッドローカル変数に
proc を設定して wakeup して proc をスレッド内で call.
===> slave_IP.eval{ <... Tk methods ...> } というような呼び出しが
できるようにする.
invoke 等の呼び出し時にどのインタープリタが呼び出されるかは
呼び出しを行ったスレッドグループで決まる.
===> ThreadGroup::Default での実行はデフォルトの master IP で実行.
slave IP のスレッドグループを freeze することで
他の IP の権限に昇格できないように防御する.
Tk_CMDTBL ===> 手続きを登録したスレッド or スレッドグループを
特定できる情報を同時に保持.
( callback は mainloop スレッドで呼ばれるため )
Tk_WINDOWS ===> スレッド or スレッドグループを特定できる情報を同時に保持.
あるいは,この情報を参照しようとする時点で
widget が属するべき特定のスレッドグループ下で
実行されているはずであるから,このテーブル自体を
IP オブジェクトに持たせるようにする.
他,インタープリタ毎に 1 個というようなものはすべて
スレッド or スレッドグループを特定できる情報を同時に保持,
または IP オブジェクトごとに保持.
保持すべきスレッド or スレッドグループを特定できる情報は,
クラスメソッドの呼び出しによって獲得する.
Tcl/Tk 上の ruby コマンドの扱い
===> 信頼するインタープリタについては制限の必要なし.
master IP として生成したインタープリタは信頼できるものとする.
===> 信頼できないインタープリタについては隠しコマンド方式で対処し,
callback 以外の直接呼び出しはエラーとする.
----------------------------------------------
見ての通り,この案では
「 ThreadGroup 間の移動を禁止できること 」
というのが前提となっています.
現在でも $SAFE == 4 では禁止されていますが,
「 slave インタープリタを使うには $SAFE == 4 でなければダメ 」
というのは制約として厳しすぎるのではないかと考えます.
「 GUI 操作の結果の可能性がある Tk からの値は,
すべて汚染されているとして扱う 」とか「 callback はイベントループが
動いているスレッド上で呼ばれる 」とかを考えるとなおさらです.
そこで先のような提案となったわけですが,いかがなものでしょうか.
もちろん safeTk サポートのためにこんなトリッキーな方法しか
思いつけなかったことが問題ですから,他にもっと良い方法さえあれば,
ThreadGroup の機能追加は必要ありません.
ですので,上に述べたような条件下で safeTk サポートのための
良いアイディアがありましたら,ぜひお教えください.
--
永井 秀利 (九工大 知能情報)
nagai@ai.kyutech.ac.jp