[#45703] test_advise failure on GNU/Linux — Tanaka Akira <tanaka.akira@...>
今朝、気がついたのですが、手元で test_advise が失敗します。
小崎です
>> /tmp は tmpfs で、カレントディレクトリは ext3 なのですが、
2012年6月22日 16:42 KOSAKI Motohiro <kosaki.motohiro@gmail.com>:
[#45723] Developers' meeting (7/21) — Yusuke Endoh <mame@...>
Hello, committers
Four seats are now left.
[#45735] [ruby-trunk - Feature #6587][Open] proposal: adding new methods File.rootname and Pathname#rootname — "usa (Usaku NAKAMURA)" <usa@...>
[#45745] Re: [ruby-changes:24028] yugui:r36079 (trunk): Embedding CRuby interpreter without internal headers has been difficult — SASADA Koichi <ko1@...>
見逃していました.
2012/6/15 SASADA Koichi <ko1@atdot.net>:
ささだです.
2012/6/15 SASADA Koichi <ko1@atdot.net>:
ささだです.
2012/6/19 SASADA Koichi <ko1@atdot.net>:
こんにちは、なかむら(う)です。
2012/6/15 U.Nakamura <usa@garbagecollect.jp>:
なかだです。
[#45769] [ruby-trunk - Bug #6606][Open] default_external encoding and STDOUT and UTF-8 — "shyouhei (Shyouhei Urabe)" <shyouhei@...>
[#45780] Re: [ruby-changes:24083] nobu:r36134 (trunk): process.c: no method calls in async-signal-safe — Tanaka Akira <akr@...>
2012/6/19 nobu <ko1@atdot.net>:
[#45794] :new_pgroup and :pgroup option for spawn. — Tanaka Akira <akr@...>
process.c で気がついたのですが、spawn に Windows 用の :new_pgroup というオプションが
こんにちは、なかむら(う)です。
2012年6月25日 11:27 U.Nakamura <usa@garbagecollect.jp>:
こんにちは、なかむら(う)です。
2012年6月25日 11:52 U.Nakamura <usa@garbagecollect.jp>:
こんにちは、なかむら(う)です。
2012年6月25日 12:13 U.Nakamura <usa@garbagecollect.jp>:
こんにちは、なかむら(う)です。
[#45818] [ruby-trunk - Feature #6643][Open] io.seek(off, :end) — "akr (Akira Tanaka)" <akr@...>
At Mon, 25 Jun 2012 19:32:06 +0900,
2012年6月25日 23:37 SATOH Fumiyasu <fumiyas@osstech.jp>:
[#45826] Question: Thread#kill doesn't throw Exception — SASADA Koichi <ko1@...>
ささだです.
> さらに突っ込んだ質問:
(2012/06/26 4:25), KOSAKI Motohiro wrote:
[ruby-dev:45793] Re: [ruby-changes:24028] yugui:r36079 (trunk): Embedding CRuby interpreter without internal headers has been difficult
(2012/06/21 15:20), SASADA Koichi wrote:
>> >
>> > * rb_eval_string_with_filename(VALUE string, VALUE fname);
>> > * rb_eval_string_with_filename_protect(VALUE string, VALUE fname, int* state);
>> > を追加、
>> >
>> > という提案をします。異論が無ければあとでコミットしますが、特に追加する関数の名前について何かご意見(もっと良い名前)は無いでしょうか。
...
> もう少し考えさせて下さい.
ええと,本当に欲しいのは rb_ なのか ruby_ なのか,ってところでまた迷っ
ています.迷いすぎ.
下記,考えながら書いているので,もし間違いがあればご指摘下さい.
ruby_ と rb_ の原則の整理:
(1) ruby_ なのは組み込み用.組み込むアプリが直接呼ぶ API.
(2) rb_ なのは基本的に拡張ライブラリ用 API.下記の制限がある.
(2-1) すでに VM が初期化済みでなければならない.
(ruby_ な関数にも,そういうのあるなぁ)
(2-2) GET_THREAD() で rb_thread_t で取れるスレッドの情報に登録された
ネイティブスレッドと動かすネイティブスレッドが同じでないといけ
ない.
(2-3) SAVE_ROOT_JMPBUF() で囲まれた部分から呼ばれたものじゃないと
まずい... かも.例外が発生したときに最終的にどうなるか決めている.
(2-4) GVL を獲得していなければいけない.
上記に書いていますが,(2-1) は ruby_ でも同じですね.(2-2) も,そうい
うところがある.(2-3),(2-4) が rb_eval_string() ではまりそうです.
(2-3) については,rb_eval_string_protect() で問題無い気がする.(2-4)
は,スレッドを切り替えなければ自然とそうなると思われる.だから,とりあえ
ずいいのかな.
こういう懸念がある,という上で,後で変えるかもしれないけど,そんときは
そんとき,ということで突っ込んで頂いてもいいような気がします.お願いでき
ますか? やって頂ける場合は,他の取り下げたコードの revert なども一緒に
やって頂ければ(私のほうで revert しようかと思ったら,何がどうだったかわ
からなくなって断念しました).
----
アプリ組込みについて,面倒なことといえば,まだシグナルハンドラとかの話
がありますね.その辺も,もうちょっと柔軟に出来る様にしたいと思っています.
アプリ組込み方法(案)
(1) 初級 ruby_options() を使う(お勧め)
(2) 中級 rb_eval_string_protect() を使う
(3) 上級(なんか新しく作る,細かい API)
みたいな感じに,色々用途によって変更できるといいなぁ,と思っています.上
級は inits から自分で自由にやるようなのを想定.
これについての TODO:
- 上級用の,初期化 API
- アプリ <-> Ruby の通信路(標準的な転送手段)
- 関係無いネイティブスレッド上で安全に Ruby を走らせる方法
- ドキュメント
--
// SASADA Koichi at atdot dot net