[#43610] Re: [ruby-list:48149] Re: requireが配列を取れたら便利だと思うんだけど.. — Hiroshi Nakamura <nakahiro@...>
cnVieS1saXN0GyRCJCskaTt9JEMkRk1oJF4kNyQ/ISMkRyRiQjMkKyRKJD0kJiEjGyhCCgoyMDEx
松田です。
卜部です
[#43620] Module#mix — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#43634] [Ruby 1.9 - Bug #4835][Open] Compilation failure of ext/tk with recent ActiveTcl — Yuki Sonoda <yugui@...>
[#43643] DateTime.new! and DateTime.jd — Aaron Patterson <aaron.patterson@...>
こんにちは、アーロンです。
blocker はお前だろ。
まつもと ゆきひろです
> うーん、ただでさえ日英のコミュニケーション障壁があるのに、よ
2011/6/7 Tadayoshi Funaba <tadf@dotrb.org>:
皆さんってのに俺は入ってないみたいだな。
まつもと ゆきひろです
> Aaronが言ってる「リリース」は1.9.3のことだと思いますよ。
まつもと ゆきひろです
> Railsのリリースについては私は知りません。が、1.9.3のリリース
[#43645] Re: [ruby-core:36778] Re: 1.8.7 release next month — Urabe Shyouhei <shyouhei@...>
Moving to ruby-dev to understand strategies of backporting the Tk
永井@知能.九工大です.
卜部です。
永井@知能.九工大です.
[#43655] [Ruby 1.9 - Bug #4853][Assigned] ext/tk/extconf.rb fails on Mac OS X — Nobuyoshi Nakada <nobu@...>
[#43686] test.rb for make run — SASADA Koichi <ko1@...>
ささだです.
[#43700] [Ruby 1.9 - Bug #4866][Assigned] Macでmake checkするとIO.copy_streamでSEGV — Motohiro KOSAKI <kosaki.motohiro@...>
[#43710] Re: [ruby-changes:19939] kosaki:r31986 (trunk): * ext/tk/tcltklib.c (lib_eventloop_core): replace CHECK_INTS with — KOSAKI Motohiro <kosaki.motohiro@...>
永井さん
永井@知能.九工大です.
2011年6月12日0:00 Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp>:
[#43716] [Ruby 1.9 - Bug #3137] complex.rb changes exceptions of Math — Koichi Sasada <redmine@...>
[#43717] [Ruby 1.9 - Bug #3456] bisarre comma — Koichi Sasada <redmine@...>
まつもと ゆきひろです
メールにじかに反応したまつもとさんは読んでないと思うのでコメント#5を再掲
まつもと ゆきひろです
卜部です。
[#43743] [Ruby 1.9 - Feature #4871][Open] envのコンパクト化 — Kazuki Tsujimoto <kazuki@...>
[#43779] Re: [ruby-cvs:38869] nobu:r31690 (trunk): * gc.c (vm_xcalloc): use calloc provided by platforms. — Yutaka Kanemoto <kinpoco@...>
こんにちは。
金本と申します。
>> AIXでは0 size mallocでNULLが返るのでこまったことになっています。
ささだです.
[#43787] [Ruby 1.9 - Feature #4878][Open] CMath に frexp, ldexp, hypot の3関数は不要ではないか — Kenta Murata <muraken@...>
まつもと ゆきひろです
もう結論が出てしまったようですが、これは、元々 lib/complex.rb にあった
=E3=82=80=E3=82=89=E3=81=9F=E3=81=A7=E3=81=99=E3=80=82
> complex.rb をロードすると Math が CMath 相当に置き換わりますから、
=E3=82=80=E3=82=89=E3=81=9F=E3=81=A7=E3=81=99=E3=80=82
まつもと ゆきひろです
=E3=82=80=E3=82=89=E3=81=9F=E3=81=A7=E3=81=99=E3=80=82
> これに相当する事をやっているのが complex.rb なので、
遠藤です。
> 定義域を増やすだけにしよう、ということですよね。賛成です。
2011年6月14日22:17 Tadayoshi Funaba <tadf@dotrb.org>:
> 互換性がないという点では同じ話だと思うのですが……。
2011年6月14日23:02 Tadayoshi Funaba <tadf@dotrb.org>:
> いやあ、5 月末の feature freeze 時点では -2 を返していたはずなんですが、
遠藤です。
[#43791] [Ruby 1.9 - Bug #4879][Open] test_new(OpenSSL::TestPKeyRSA) fails on Win32 — Akio Tajima <artonx@...>
[#43820] mysterious hang at busy loop after system() — Tanaka Akira <akr@...>
以下のようなプログラムが手元の環境のひとつでハングします。
[#43829] [Ruby 1.9 - Bug #4891][Open] Vector#normalize — Kenta Murata <muraken@...>
[#43852] [Ruby 1.9 - Bug #4909][Open] trapハンドラは再入されてはいけないのではないか? — Motohiro KOSAKI <kosaki.motohiro@...>
同意します。
[#43859] [Ruby 1.9 - Bug #4911][Open] timer_thread_function() が thead unsafe — Motohiro KOSAKI <kosaki.motohiro@...>
[#43861] Date/DateTimeの仕様について — "NARUSE, Yui" <naruse@...>
ふなばさん
[#43869] [Ruby 1.9 - Bug #4919][Open] OpenSSL::SSL::Sesssion#time= に Bignum を渡すと ArgumentError が発生する — Tomoyuki Chikanaga <nagachika00@...>
報告ありがとうございます。32bit環境で落ちるとか考えてませんでした。。。
[#43875] [Ruby 1.9 - Feature #4921][Assigned] Remove intern.h — Yui NARUSE <redmine@...>
[#43890] [Ruby 1.9 - Bug #4072] dRubyで作成したサーバプログラムがsleepしていてもexitしてしまう — Tomoyuki Chikanaga <nagachika00@...>
[#43902] [Ruby 1.9 - Bug #4926][Open] --gc-stress付きtest/ruby/enc/test_emoji.rbが失敗する — Kazuki Tsujimoto <kazuki@...>
[#44001] socket related errors on chkbuild — SASADA Koichi <ko1@...>
ささだです.
[ruby-dev:43768] [Ruby 1.9 - Bug #4765] signal が正しくマスクされておらず main thread でシグナルハンドラが動いている
Issue #4765 has been updated by Motohiro KOSAKI. File remove-signalmask-op.patch added ささださんと議論した結果、逆にシグナルマスク操作を全部削除してしまって全スレッドでシグナルを受けれるようにしたほうが よいという結論にしました。改訂版パッチを添付します。 rb_syswait() の件が経緯不明のため、このパッチは1.9.4 送りの方向で考えています。 ---------------------------------------- Bug #4765: signal が正しくマスクされておらず main thread でシグナルハンドラが動いている http://redmine.ruby-lang.org/issues/4765 Author: Motohiro KOSAKI Status: Assigned Priority: Normal Assignee: Motohiro KOSAKI Category: core Target version: 1.9.x ruby -v: ruby 1.9.3dev (2011-05-21 trunk 31654) [x86_64-linux] Bug#4027 から派生させます > しかしメインスレッドその他の Thread に対応するスレッドのシグナルマスクは SIGSEGV と SIGVTALRM のみ > 外されているはずなのに、全て外されていました。 > このため sighandler() がタイマースレッドでなくメインスレッドで実行されています。 > これは以下のような流れでおきています。 > * init_sigchld で初期状態(空マスク)の sigmask が trap_last_sigmask に保存される > * タイマースレッドの起動(rb_thread_create_timer_thread)でメインスレッドはマスクがセットされる > * その後ファイルロード中に例外が生成された時に rb_trap_restore_mask() が呼ばれて trap_last_sigmask に > 保存された空マスクがセットされるためシグナルマスクが外れる > > また、Signal.trap でハンドラをセットした時に、そのシグナルのシグナルマスクが外されています。 > sigaction によるシグナルハンドラの実行はタイマースレッドにまかせているはずなのでこれは不要だと思います。 > また例外発生時に rb_trap_restore_mask を読んでいるのも、trap() で例外が発生しても trap_ensure() で > シグナルマスクを戻す処理は行なわれているので不要なような気がします。元々どういう理由で呼ばれているのか > わからなかったので自信ないですけど。 レビューした結果、rb_trap_restore_mask()がまったく不要だという意見に賛成します。 > というわけで添付のようなパッチを作成してみました。 > > ところがこれを当てると make test-all で Failure が 2つ増えます。 > いずれも ruby のプロセスをシグナルで止めた時に終了ステータスが $?.signaled? == true でなく > $?.exited? == true になるためです。 > これはどう直せばいいのかわかりません。 > > 1) Failure: > test_should_propagate_signaled(TestBeginEndBlock) [/Users/nagachika/opt/ruby-trunk/src/ruby-trunk/test/ruby/test_beginendblock.rb:108]: > Expected 0 to be nil. > > 2) Failure: > test_status_kill(TestProcess) [/Users/nagachika/opt/ruby-trunk/src/ruby-trunk/test/ruby/test_process.rb:1073]: > [s.exited?, s.signaled?, s.stopped?]. > <[false, true, false]> expected but was > <[true, false, false]>. 原因は rb_syswait()にあります。現状 Process.wait()中は なぜか SIGHUP, SIGQUIT, SIGINTを SIG_IGNに設定してしまうため この間に別スレッドが SIGQUITを送るようなテストは正しく動きません。 そもそも、signal handlerはプロセスグローバルなので、処理の途中で一時的に SIG_IGNにしてはいけません。他のスレッドが 迷惑します。pthread_sigmask()に差し替えることを検討したのですが、そもそもシグナルがタイマースレッドにしか配送されない という設計を貫く限り、いかなる処理も必要ないという結論になりました。 まつもとさん、この処理の実装はまつもとさんのように見えます。10年以上前なので無理かもしれませんが、覚えていたら SIG_IGNを設定していた理由を教えてください。 > また、sighandler() がメインスレッドから呼ばれるのは Process.spawn を実行するとまだおきてしまいます。 > process.c の before_fork/after_fork で fork の時に一時的にタイマースレッドを止めてシグナルマスクを外すためです。 > こちらもどうしていいものかわからないです。 > fork してそのまま動き続けるようなものはどうしようもないような気がしますが、spawn するものは > fork 後に sigprogmask で外すようにするなどでなんとかならないものでしょうか。 > あーでもタイマースレッドの再起動で結局一時的に外してしまいますね…… これも、一時的にシグナルマスクを一時的に外す処理自体が不要だと思います。 また、現状、chikanagaさんの報告よりも、さらに状況は悪化しており、シグナル処理を直すと test_signal.rb#test_kill_immediately_before_termination でテストがハングします。 これは、くだんのテストが子プロセスにSIGINT送って送出されてくる例外を確認しているのですが、 test/unit/parallel.rb#run() に Signal.trap(:INT,"IGNORE") という極悪な文があるため、 テストでSIGINTが動かなくなる仕様変更がこっそり行われているためです。 soraさん、この行の意図はなんですか?代替案を考える必要があると思いますが、このような 子プロセスに伝搬する設定をこっそり行うのは許容できないと思います。テストに支障が出るし 第一 Ctrl-C がなかなか効かなくて test-all するときにイライラします。 ついでに以下の変更を行いました ・SIGPIPEのハンドラを空関数からSIG_IGNに変更。空関数にするぐらいならユーザ空間に 処理を戻すだけ無駄。それに、ざっと見たところrubyの中でEPIPEをハンドリングしてない場所はない ・処理の最後で、ruby_default_signal() でシグナルハンドラをSIG_DFLに戻している箇所は シグナルマスクも解除するよう変更 添付のパッチで test-all が全て通ることを確認出来ています。 これは当面コミットせずに1.9.4に回そうと思っています。理由は ・これを直さないと致命的な状況になるような bug report はきてない ・長年放置されていたせいで、すでに複数箇所いまの挙動に依存するコードが見つかっており 安定化に時間がかかる可能性がある と考えているため -- http://redmine.ruby-lang.org