コンテンツへ移動

ruby-ML ななめ読む [ruby-dev:48108] / [ruby-core:62039-62053]

2014/4/16 22:41:07

[ruby-dev:48108] by Ken Takata:#8716
[ruby-core:62039] by Pranas Kiziela:#9744
[ruby-core:62040] by Charles Nutter:#9123
[ruby-core:62041] by Hiroshi SHIBATA:#9744
[ruby-core:62042] by Nobuyoshi Nakada:#9743
[ruby-core:62043] by Nobuyoshi Nakada:#9743
[ruby-core:62044] by Eric Loveland:#7822
[ruby-core:62045] by Usaku NAKAMURA:#7822
[ruby-core:62046] by Terence Lee:#9745
[ruby-core:62047] by Terence Lee:#9746
[ruby-core:62048] by Terence Lee:#9747
[ruby-core:62049] by Wei Hu:#9748
[ruby-core:62050] by B Kelly:#8543
[ruby-core:62051] by U.Nakamura
[ruby-core:62052] by B Kelly:#8543
[ruby-core:62053] by Eric Loveland:#7822

チケット無し


[ruby-core:62051]
by U.Nakamura

Ruby アソシエーションの「Ruby 安定版保守委託」で 2014/4 から 2015/3 まで 2.0.0 のメンテナになったよ、(前メンテナの)近永さんとメンテナンスポリシーは変わらず、基本的に Feature は入れずバグ修正だけ・可能な限り互換性保持・重大なセキュリティ修正はすぐ出す・特例がなければパッチレベルリリースはほぼ三ヶ月間隔で出す、とするよ、とのこと。
2.0.0 のバグは b.r-l.o に報告してね、他のバージョンに影響ないバグなら backport20 に、そうでなければ ruby-trunk にお願いするよ、ruby-trunk にチケットがあれば別チケットを作成する必要はなくてバックポート欄を活用すればいいよ、近永さんありがとう本当にお疲れ様でした!とのこと。

おおー。


#7822

Dir.mkdir で長めの Unicode パス (\\?\UNC\) が扱えない


[ruby-core:62044]
by Eric Loveland

リンク先(MSDN 文書)によれば各フォルダ名は 255 文字まで許されるらしく、実際 Dir.mkdir “\\\\?\\C:\\#{‘t’*255}\\#{‘t’*255}” は動作するよ、でも Win32 の \\\\?\\ みたいなパス名にはスラッシュは使えないよ、とのこと。

これは勉強になる。使う(使わざるを得ない)場面にはあまり遭遇したくないけど。


[ruby-core:62045]
by Usaku NAKAMURA

(Dir.mkdir “//?/C:/” + “test” * 100 ができない、というチケットの発端の現象を受けて)Windows では各ディレクトリ名は 255 文字までで UNC を使っても変わらないよ、([ruby-core:62044] を受けて)その通りだよ、”\\?\” を表すときには “/” は使えないからそのままバックスラッシュを使うしかないよ、とのこと。


[ruby-core:62053]
by Eric Loveland

このチケットはクローズするべきだけど、それはそれとして “\\?\” のサポート強化の Feature request のチケットはなさそうだよ、チケット書くのと外部 gem でどうにかするのとどっちがいいかな、とのこと。

submitting one を「チケット書く」と訳してしまったけどちょっと不安。


#8543

rb_iseq_load で SEGV


[ruby-core:62050]
by B Kelly

trunk の r45576 i386-mswin32_100 ではチケットのサンプルコードはうまく動いたよ、もっと複雑なプログラムでも試してみるつもりだよ、とのこと。


[ruby-core:62052]
by B Kelly

SEGV する例を見つけたから添付するよ、iseq_set_sequence() で case TS_CDHASH: のブロック中のハッシュ値 operands[j] がおかしいよ、iobj->insn_id は一貫して YARVINSN_opt_case_dispatch になってるよ、–disable-gems しても同じだったよ、提供できる(原因究明に必要になる)情報があったら言ってね、とのこと。

iobj->insn_id is consistently YARVINSN_opt_case_dispatch の意味が取れない。問題の現象を理解してないせいなので、現象がわかればたぶん意味も取れるはず。そうなったらここの訳直します。


#8716

正規表現でグループ32767個作ると SEGV


[ruby-dev:48108]
by Ken Takata

落ちる原因は修正済みの alloca のスタックオーバーフローの他に、グループ数を short で管理してるので 32768 以上で不正アクセスになるよ、ビット数を増やすかチェックを入れるかの検討が必要だよ、とのこと。


#9123

Numeric#nonzero? (true/false) と Numeric#zero? (self/nil) が一貫していない


[ruby-core:62040]
by Charles Nutter

言わせてもらえば、Ruby ユーザとしては真か偽かだけが重要だからどっちでもあまり気にしないよ、でも不要な情報まで露出することになるから真値として self を返すのは好きじゃないよ、変える方に一票だけど強くは言わないよ、API 互換が壊れてもいいリリースの時にやってほしいよ、とのこと。


#9743

openssl の ossl_pkey_verify でメモリリーク


[ruby-core:62042]
by Nobuyoshi Nakada

クローズコミット。


[ruby-core:62043]
by Nobuyoshi Nakada

チケット変更。Markdown 修正、1.9.3・2.0.0・2.1 すべてのバージョンをバックポート対象に。


#9744
(新規)
Net::HTTP での DNS タイムアウトを Ruby で解決したい


[ruby-core:62039]
by Pranas Kiziela

Net::HTTP のパッチ書いたよ、回線が貧弱で DNS 解決が失敗したときに、open_timeout を設定してるのに低レベルタイムアウトの 30 秒間待たないといけなかった(問題に関するパッチだ)よ、github にも pull request したよ、とのこと。

題がおかしい気がするし文意もとれてないかもだけど、Reject 済みで読む気がしないのでそのまま


[ruby-core:62041]
by Hiroshi SHIBATA

Reject。pull request についたコメント(require ‘resolv-replace’ するといい)を見てね、とのこと。


#9745
(新規)
r45595 (#9743) のバックポート(2.1)


[ruby-core:62046]
by Terence Lee

#9743 のメモリリーク修正をバックポートしてね、とのこと。


#9746
(新規)
r45595 (#9743) のバックポート(2.0.0)


[ruby-core:62047]
by Terence Lee

#9743 のメモリリーク修正をバックポートしてね、とのこと。


#9747
(新規)
r45595 (#9743) のバックポート(1.9.3)


[ruby-core:62048]
by Terence Lee

#9743 のメモリリーク修正をバックポートしてね、とのこと。


#9748
(新規)
preserve が偽の時にも FileUtils.cp がファイル権限をコピーする


[ruby-core:62049]
by Wei Hu

FileUtils.cp が :preserve=>false を渡したときもファイル権限をコピーしようとするよ、

(FileUtils::Entry_#copy_file で)File.open(dest, ‘wb’, s.stat.mode) としているのが原因だと思うよ、とのこと。

preserve: true でコピーしてくれないって話ならそれは困るけど、preserve: false でどうなるかは undocumented な気がする(いや読んでないけど)。実際に困るのってどんな時でしょうか。

ruby-ML ななめ読む [ruby-dev:無し] / [ruby-core:62024-62038]

2014/4/16 00:06:27

(2014/04/16 追記)#9742 がdebugger を使っていることに気づいていなかったので修正。
(2014/04/16 追記) [ruby-core:62035]を読み違えていることを指摘頂いたので修正。

[ruby-core:62024] by Mohamed Dokmak
[ruby-core:62025] by Andrew Vit
[ruby-core:62026] by Hans de Graaff:#8358
[ruby-core:62027] by Sreekanth Simhadri:#9742
[ruby-core:62028] by Sreekanth Simhadri:#9742
[ruby-core:62029] by Andrew Vit:#9742
[ruby-core:62030] by Koichi Sasada:#9321
[ruby-core:62031] by Henry Maddocks
[ruby-core:62032] by Zachary Scott:#8358
[ruby-core:62033] by NARUSE Yui
[ruby-core:62034] by Nobuyoshi Nakada:#9740
[ruby-core:62035] by Nobuyoshi Nakada:#9740
[ruby-core:62036] by Nobuyoshi Nakada:#9726
[ruby-core:62037] by Nobuyoshi Nakada:#9737
[ruby-core:62038] by Joel Westerberg:#9743

チケット無し


[ruby-core:62024]
by Mohamed Dokmak

配列の自己書き換えをフックしようとしてるんだけど難しいよ、たとえば arr.reverse! は元と同じ VALUE を参照して書き換えていて arr.reverse は新しい配列を返す(ので前者を検出したい)よなにかいい方法ないかな、rb_ary_modify_check() は見たけど shared array 関連だよね、とのこと。

移譲使っていいならなんとでもなりそうな気もする。いっそ freeze して例外が飛んだら書き換え発生だーとかどうかと思ったけどそれはフックとは呼べない。


[ruby-core:62025]
by Andrew Vit

[ruby-core:62024] への返信。メソッドをオーバーロードして中で super(して元のメソッドの呼び出しを)するのはどうかな、self を返すメソッドを全部列挙する方法は考えられないよ、とのこと。


[ruby-core:62031]
by Henry Maddocks

[ruby-core:62024] への返信。set_trace_func でなんとかなるかもね、とのこと。


[ruby-core:62033]
by NARUSE Yui

[ruby-core:61852] への返信。前回 Google docs を使ったのはリアルタイムにみんなでログを書いたからだよ、wiki だと衝突しまくると思うよ、あとでアーカイブするには wiki はいいね、(前回ログを)Google docs から持って来るべきだけどさぼっちゃったよ、とのこと。


#8358

TestSprintf#test_float が失敗する


[ruby-core:62026]
by Hans de Graaff

この変更(SSE2 使用)で x86 環境な Gentoo ユーザにも影響が出ているよ、Gentoo では configure.in から SSE2 関連の箇所を取り除いたよ、とのこと。


[ruby-core:62032]
by Zachary Scott

チケット操作。担当者を zzak さんからなかださんへ。
(どうして zzak さんを担当者にしたのか、というコメントを受けて)あとで時間があるときに見直そうと思って覚書き的に担当にしただけだよ、SSE2 コードの削除の件はなかださんがやってくれるはずだよ、パッケージメンテナが個別に設定を書き換えなきゃいけないなんてのはよろしくないと言わざるをえないよ、とのこと。

斬新な担当者欄の使い方。


#9321

rb_mod_const_missing が c-return イベントを発行してくれない


[ruby-core:62030]
by Koichi Sasada

チケットのバックポートに一票投じるよ、byebug で困ってる人たちをどうにかしてあげたいよ、とのこと。


#9726

Proc のパースがおかしい


[ruby-core:62036]
by Nobuyoshi Naka

チケット操作。Markdown 修正。

62024-9737″>

#9737

ruby の実行パスに非 ASCII 文字があると require パスが壊れる


[ruby-core:62037]
by Nobuyoshi Nakada

チケット操作。Markdown 修正。まだ途中だけど(パッチ書いたよ)、とのこと。


#9740

2.1.1 で super: no superclass method と言われる(コピーチケット)


[ruby-core:62034]
by Nobuyoshi Nakada

クローズおよびチケット操作。Markdown 修正。


[ruby-core:62035]
by Nobuyoshi Nakada

コミットログにチケット参照を入れ忘れてたけど、テストコードだけ(だからあまり問題ないはず)だよに入れてたよ、とのこと。(2014/04/16 修正)


#9742
(新規)
startDate = Time.parse(’2014-Apr-01 12:00:30′) という行をデバッグしようとしたら SEGV


[ruby-core:62027]
by Sreekanth Simhadri

日時を表す文字列パースする Time.parse(’2014-Apr-01 12:00:30′) という行を(debugger gem を使って)デバッグしたら SEGV したよ、Time を返してほしいよ、とのこと。

Expected Result がどうあるべきかは置いといて、SEGV はまずい。と思ったら SEGV してるの Debugger の中の出来事みたいですね。ruby 悪くないっぽい。


[ruby-core:62028]
by Sreekanth Simhadri

DateTime.parse(’2014-Apr-01 12:00:30′).to_time することで解決したよ、とのこと。


[ruby-core:62029]
by Andrew Vit

標準添付ライブラリの time を require すれば Time.parse(’2014-Apr-01 12:00:30′) できるよ、とのこと。


#9743
(新規)
openssl の ossl_pkey_verify でメモリリーク


[ruby-core:62038]
by Joel Westerberg

繰り返し pub_key.verify を呼ぶとメモリリークしているみたいだよ、openssl のドキュメントから読み解くと EVP_MD_CTX_cleanup() の呼び忘れっぽいよ、とのこと。

ruby-ML ななめ読む [ruby-dev:無し] / [ruby-core:62013-62023]

2014/4/14 23:16:38

[ruby-core:62013] by Tieg Zaharia:#9657
[ruby-core:62014] by Wei Hu:#9721
[ruby-core:62015] by Hiroshi Shirosaki:#9739
[ruby-core:62016] by Herwin .:#9379
[ruby-core:62017] by Wei Hu:#9740
[ruby-core:62018] by Wei Hu:#9721
[ruby-core:62019] by Wei Hu:#9740
[ruby-core:62020] by Konstantinos Karachalios:#9731
[ruby-core:62021] by Terence Lee:#9741
[ruby-core:62022] by Yui NARUSE:#9741
[ruby-core:62023] by Wei Hu:#9740


#9379

xmlrpc のパーサに libxml-ruby を使いたい


[ruby-core:62016]
by Herwin .

Nokogiri 対応もできると思うよ、REXML より効率のいいものとして手始めに libXML をやってみただけだよ、(rexml をロードすらしないようにできないか、というコメントを受けて)ロード部分を手直しをしなくちゃだから、このチケットの主眼からは外れちゃうかな、とのこと。


#9657

bigdecimal/util.rb の Float#to_d で SEGV


[ruby-core:62013]
by Tieg Zaharia

(bigdecimal は外部 gem 化されているので ruby 本体より先にリリースできるはず、という指摘を受けて)ありがとうそれは考えなかったよ、とのこと。


#9721

2.1.1 で super: no superclass method と言われる


[ruby-core:62014]
by Wei Hu

なかださん修正ありがとう、でもまだ問題があるみたいだよ、元のサンプルコードを走らせると SystemStackError になるよ、(コミットに含まれたテストとチケットのテストとの)違いはオーバーライドに define_method を使ってる点だよ、とのこと。


[ruby-core:62018]
by Wei Hu

チケット操作。#9740 にチケットをコピー。

チケットのコピーなんてあるんですね。しかし意味(というか意図)と使い道がわからない。同じなら元のチケットでやればいいだろうし、違うなら「関連するチケット」なだけでいいだろうし。


#9731

Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い


[ruby-core:62020]
by Konstantinos Karachalios

コメントに賛成するよ、2.2(以前のサポートの打ち切り)まで待つのが最善ってことだね、
でも params.slice(*args).symbolize_keys をスマートに扱う策を練ってみるよ、助言や意見があると嬉しいよ、とのこと

in a clever and unobstructive way 直訳するなら「賢く問題のない方法」?問題のない、ってのはメモリとかセキュリティとか諸々ひっくるめての話のように見える。


#9739
(新規)
TestException#test_machine_stackoverflow(_by_define_method) が x64-mingw32 で失敗する


[ruby-core:62015]
by Hiroshi Shirosaki

ruby x64-mingw32 on Windows 7 で標題の2つのテストが SEGV で失敗するよ、理由はよくわからないけどスタックサイズを大きくしたら直るよ、とのこと。パッチ添付されています。


#9740
(新規)
2.1.1 で super: no superclass method と言われる(コピーチケット)


[ruby-core:62017]
by Wei Hu

#9721 からのコピー。説明部分は 9721 の説明とコメントを組み合わせたもの。


[ruby-core:62019]
by Wei Hu

チケット操作。#9721 からコピー。


[ruby-core:62023]
by Wei Hu

ごめん r45585 で直ってるみたいだね、閉じていいよ修正ありがとう、とのこと。


#9741
(新規)
http://www.ruby-lang.org への公開公開アナウンスとセキュリティポストの方針について


[ruby-core:62021]
by Terence Lee

http://www.ruby-lang.org のブログに公開アナウンスするのかセキュリティポストするのかについての方針ってどんなふうになってるの、とのこと。


[ruby-core:62022]
by Yui NARUSE

「方針」ってどういう意味?何をポストするかって話?それとも記事候補をどう扱うかって話?とのこと。

ruby-ML ななめ読む [ruby-dev:48107] / [ruby-core:62002-62012]

2014/4/13 23:32:10

[ruby-dev:48107] by _ wanabe:#9698
[ruby-core:62002] by B Kelly:#9737
[ruby-core:62003] by Ippei Obayashi:#9738
[ruby-core:62004] by Nobuyoshi Nakada:#6869
[ruby-core:62005] by _ wanabe:#9711
[ruby-core:62006] by _ wanabe:#9660
[ruby-core:62007] by _ wanabe:#9692
[ruby-core:62008] by _ wanabe:#9710
[ruby-core:62009] by Alexey Muranov:#6869
[ruby-core:62010] by Nobuyoshi Nakada:#9716
[ruby-core:62011] by _ wanabe:#9692
[ruby-core:62012] by _ wanabe:#9710


#6869

引数 “_” を特別扱いしてほしくない


[ruby-core:62004]
by Nobuyoshi Nakada

Markdown 記法修正。({0=>1}.each_with_index { |_,_| p _ } が [0, 1] を出力するよ、との部分を受けて)”_” だからってわけじゃなくて #each_with_index はブロックの第一パラメータに配列を与えるよ、{0=>1}.each_with_index { |x,y| p x } も [0, 1] を出力するよ、とのこと。
(”_” をプレースホルダ的扱いにする提案を受けて)それって今以上に特別扱いになるんじゃない?とのこと。


[ruby-core:62009]
by Alexey Muranov

(”_” だからじゃなく each_with_index の仕様だよ、というコメントを受けて)ありがとう、何考えてたんだろうね、とのこと。
(プレースホルダにしたらもっと特別扱いになるのでは、という指摘を受けて)そうだね、だから一旦閉じて新しくチケット切るよ、元々他の言語でプレースホルダとして使われてたなんて知らなかったし Ruby のドキュメントや Programming Ruby にも小文字の英字と同じようにしか書かれてなかったよ、今度は “_” 代入しても無視するような動作を提案することにするよ、とのこと。


#9660

test/unit が minitest を要求して bundler がエラーになる


[ruby-core:62006]
by _ wanabe

チケット操作。関連するチケットに #9711 を追加。


#9692

__builtin_longjmp に 1 より大きい値が渡されていてコンパイルできない


[ruby-core:62007]
by _ wanabe

チケット操作。関連するチケットに #9710 を追加。


[ruby-core:62011]
by _ wanabe

チケット操作。2.0.0 と 2.1 をバックポート対象に。バックポートするべきだと思うよ、とのこと。


#9698

r45509以降、Solarisにて configureが thread model is missing でエラー(原文ママ)


[ruby-dev:48107]
by _ wanabe

チケット操作。2.0.0 と 2.1 をバックポート対象に。#9692と一緒にバックポートするべきだと思うよ、間違ってたら直してね、とのこと。


#9710

mingw で __builtin_setjmp/longjmp のところで SEGV


[ruby-core:62008]
by _ wanabe

チケット操作。関連するチケットに #9692 を追加。


[ruby-core:62012]
by _ wanabe

チケット操作。2.0.0 と 2.1 をバックポート対象に。#9692と一緒にバックポートするべきだと思うよ、とのこと。


#9711

test-unit と minitest を添付から外したい


[ruby-core:62005]
by _ wanabe

チケット操作。関連するチケットに #9660 を追加。


#9716

FileTest.exist? がパスを展開してくれない


[ruby-core:62010]
by Nobuyoshi Nakada

(File.expand_path の問題だから新しくチケットを作るつもりだとのコメントを受けて)File.absolute_path を File.expand_path の代わりに使ってね、とのこと。


#9737
(新規)
ruby の実行パスに非 ASCII 文字があると require パスが壊れる


[ruby-core:62002]
by B Kelly

Windows 上で ruby を呼び出したパスに非 ASCII 文字が含まれていると、$: に入るパスのエンコーディングがおかしく(ASCII-8BIT に)なって標準ライブラリを読めなくなるよ、GetModuleFileName() を呼び出してるところを GetModuleFileNameW() にするべきなんじゃないかな、とのこと。


#9738
(新規)
Rinda::TupleEntry#renew のドキュメント修正


[ruby-core:62003]
by Ippei Obayashi

パッチに書いたように、 Rinda::TupleEntry#renew は false じゃなく true を指定した時にタプルを有効期限切れにするよ、実際 false も受け付けるけどドキュメント通りには動かないよ、とのこと。

ruby-ML ななめ横断 [ruby-dev:48095-48106] / [ruby-core:61867-62001]

2014/4/13 19:21:51

一週間の振り返り。細かくやっても繰り返しになるだけなのでかいつまんで。
読み返すだけだから簡単かと思ってたらわりに大変だったので今回限りの予定です。
大変だったのは主に切り貼りの部分なので、ツール作れたら再開するかも。

分類しにくいものたち

大江戸 Ruby 会議 04 に伴う Ruby 開発者会議

zzak さんの呼びかけで決まった開発者会議。まつもとさんや emboss さんの skype 参加まで事前に取り付ける用意周到ぶりが素晴らしい。
根回しって大事ですね。

結論が出たものたち

#1685 Windows の Unicode パスがまだおかしい

結論というより、個別にチケット切ってそっちでやろう、ということ。あとチケットが古すぎて現状にそぐわない部分もあったりするのかな、と。

#9443 prepend しても alias されたメソッドはそのまま呼び出せてしまう

まだ続く気配も有りますけどはっきりと Reject されてるから「結論済み」ってことにしておきます。

#9453 attr 等が定義したメソッド名のメソッドを返してほしい

Reject 済み。private が配列を受け付けて欲しい、という意見も出ましたがそれは別問題だから別のチケットでね、とのことです。

#9557 Enumerator#next と Enumerator#peek にオプション引数をつけたい

Reject 済み。

#9565 (const|class_variable|instance_variable)_(defined?|get|set) を統一したい

Reject 済み。……ですがもしかしたら議論再燃しそうな気配も有ります。

#9655 Arch linux でビルドできない

3rd。

#9693 正規表現中で \x{} 表記が使えない

鬼雲としては受け付けるのに Ruby が解釈してくれない、というのが発端だったので、じゃあ鬼雲側のフラグ取っ払うかそのまま放置のどっちかかな、という感じ。フラグ変えようが特に変わりないので、そのままになる気がします。

#9695 (文字列が長くなると)部分文字列の検索が二次関数的に増える

O(m * n) であるサンデー法のワーストケースだったので、n 文字と n 文字で n ** 2 の時間がかかってましたという話。

#9710 mingw で __builtin_setjmp/longjmp のところで SEGV

#9692 というか r45503 からのバグのようなので、バックポート待ちではありません。#9692 がバックポートになるならこれもそのときに対象になるはず。

#9717 [BUG] setup_arg: unknown node: NODE_DVAR と出て異常終了する

コミット済みですが、まだバックポートの処遇が決まってません。

#9723 #size が lazy enumerator に作用してくれない

lazy なもののサイズが知りたけりゃ count 使ってね、らしいです。いったんサイズ確定後だと size も呼んでいいみたいですがよくわかってません。

#9731 Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い
#9732 Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い(重複チケット)
#9733 Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い(重複チケット)
#9734 Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い(重複チケット)
#9735 Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い(重複チケット)

シンボルを大量に作るわけにいかない Rails 側と、文字列キーでキーワード引数を受け付けるつもりはない Ruby 側。どちらも現状維持で、必要ならユーザが symbolize_keys したらいいよね、というところに落ち着きました。

まだ結論が出ていないものたち

#9660 test/unit が minitest を要求して bundler がエラーになる
#9711 test-unit と minitest を添付から外したい

これは2つセット。上がきっかけになって下の話が出てきました。

#5663 map と select いっぺんに済ますメソッドがほしい

select というより compact なんじゃねえのという視点も出まして、これは確かにそうかも。二年前と古めのチケットですが、さてどうなることか。

#6869 引数 “_” を特別扱いしてほしくない

してもいいじゃんとか個人的には思ってしまうわけですが。というかこれ受け入れられると「ぎゃっ」どころですまない感じが。

#8707 Hash#reverse_each

ユースケースが提出されない限りは放置されるのではないでしょうか。

#9379 Support for using libxml-ruby as XML parser in xmlrpc-libs

しまった邦題をつけるのを忘れてた。えーと、libxml-ruby が標準添付にならない限り require ‘libxml’ とか書いちゃってるパッチを取り込むのは(たとえ遅延ローディングしてるとしても)難しいんじゃないですかね。一般的に XML パーサを追加できるような仕組みを追加する方向とかならよさげ。

#9505 RSpec で subject { subject.new(double) } とか無限再帰させると SEGV

よくあるスタックエラーと SEGV の話。

#9594 2.1.1 で Rails アプリに debugger でブレークかけて cont すると SEGV

3rd 行きな気もするんですが、特に結論付けられてはいません。

#9607 フル GC のタイミングを戦略的に変える

ささださんと Eric Wong さんの実装に関するやりとりも終わらないうちに、そもそも自動ではなくユーザに調整させればいいんじゃねという論も出てきました。

#9625 パス追加用に `Pathname#/` が欲しい

よさげですが、特に結論付けられてはいません。実装待ち?

#9657 bigdecimal/util.rb の Float#to_d で SEGV

たぶん trunk で直ってるんじゃないかなーという状態。

#9704 ファイル単位で using する refinement

チケット起票者のトムソーヤさんの動機がモンキーパッチと refinement の併用だったらしいので、ユースケース的にまつもとさんが納得行っていないようです。ひと押しがないままだと立ち消えになりそうな雰囲気。良さげな提案に思うのですが、ぴったりくるユースケースが思いつかない。

#9712 Dir.entries で Unicode 文字が?(はてなマーク)に化ける

これは「ドキュメントの修正が求められるものたち」に入れてもいいかも。この動作はいわば「そういうもん」だよ、というのを起票者の Thomas Thomassen さんが納得してくれるかそれともまだ議論が続くのか。

#9714 呼ぶべきじゃない OpenSSL エンジン API を呼ぶようにビルドしてしまっている

Mac OS X の homebrew 固有の問題らしいです。

#9715 ユーザ名に Unicode 文字を含むと ENV に ASCII-8BIT な文字が入る

-E で default internal を指定したらそっち使ってよーという話らしいです。

#9716 FileTest.exist? がパスを展開してくれない

そういう仕様ということで Reject された、と思いきや Pathname#expand_path の問題ということになってまだ継続中のようです。

#9719 longjmp causes uninitialized stack frame と出て落ちる

どうなんでしょうこれ。tiny_tds の 3rd 行き、という気がしますが。

#9724 警告の有無をファイル単位で切り替えたい

まだコメントつかず。

#9725 verbose 以外で NameError での inspect を止めたい

まだコメントつかず。

#9726 Proc のパースがおかしい

まだコメントつかず。

#9728 /(?!^a).*b/ が “ab” にマッチしない

すでに Heesob さんが原因を特定しているので、ほぼコミット待ちのような気はします。

#9730 webrick/server.rb で SEGV

原因特定されておらず。

#9736 自前 rails アプリで SEGV

原因特定されておらず。

コミット予定・または解決予定のものたち

#9646 Hash#each で無限ループ
#9729 Hash#each が無限ループする(原文ママ)

重複ワンセット。

#9632 ccan 連結リストを使った IO#close の高速化パッチ

バックポート待ちのものたち

#9669 Ruby 2.1 で初期値のないキーワード引数を括弧なしで扱えない
#9722 複数のキーワード引数が扱えない

上記2つは重複なのでワンセット。

#9669 Ruby 2.1 で初期値のないキーワード引数を括弧なしで扱えない
#9722 複数のキーワード引数が扱えない

同じくこの2つもワンセット。

#8182 XMLRPC のリクエストが “Wrong size.” と言われて失敗する
#9600 gid にメンバが多いとき TestProcess#test_execopts_gid が失敗
#9697 rb_sys_fail(getaddrinfo) ? errno == 0 で落ちる
#9699 Windows で Unicode パスの .so を読めない(パッチ有)
#9706 Date# に #< メソッドを用いる
#9707 r45015 のバックポート(2.1)
#9708 r45015 のバックポート(2.0.0)
#9709 x64-mingw32 で大きな文字列を扱うと SEGV
#9718 trunk と 2.1 で、キューとスレッドの組み合わせで SEGV
#9721 2.1.1 で super: no superclass method と言われる
#9727 Array#reject の中に callcc しようとすると異常終了

ドキュメントの修正が求められるものたち

#9675 再帰的な構造があったり hash メソッドが再定義されていると Marshal.load できない
#9701 String#<< と String#concat の RDoc について
#9703 profile の出力がおかしい
#9713 __FILE__ の encoding が変なせいで Dir.glob が上手く動いてくれない

__FILE__ のエンコーディングの Windows での挙動がドキュメント化されるのが待たれている状態、のようです。でもこの挙動説明しにくいし理解しにくそう、というか私は理解していません。

#9720 Net::IMAP の RDoc の校正(パッチ有)

ruby-ML ななめ読む [ruby-dev:無し] / [ruby-core:61997-62001]

2014/4/13 09:35:08

前回に実質二日分やったようなもんなので今回は少なめ。
(2014/04/13 追記) Martin 先生の名前が化けてると指摘を頂いたので修正。基本的にウムラウトとかは取っ払って ASCII 表記にするようにしています。

[ruby-core:61997] by Yukihiro Matsumoto:#9453
[ruby-core:61998] by Nobuyoshi Nakada:#9443
[ruby-core:61999] by Martin Durst:#9443
[ruby-core:62000] by Alexey Muranov:#6869
[ruby-core:62001] by Dieter Komendera:#9657


#6869

引数 “_” を特別扱いしてほしくない


[ruby-core:62000]
by Alexey Muranov

“_” のプレースホルダ的扱いって他の言語でも(Vim のブラックホールレジスタとか Haskell のワイルドカードとか)よくあることだけど、あくまでプレースホルダだから書き込めるだけで読み出せないのが普通だよ、と考えると “_” をプレースホルダに「格下げ」するのはどうかな、とのこと。

“I do not like exceptions.” というのが発端だったように見えるので、プレースホルダにしたところでそれは全然解決されてないような。何か読み違えているのでしょうか。


#9443

prepend しても alias されたメソッドはそのまま呼び出せてしまう


[ruby-core:61998]
by Nobuyoshi Nakada

Ruby の alias は同じメソッド定義を参照するよ、もしかして Forwardable したいってことかな、とのこと。

“Probably what you want would be”、ニュアンスをうまく表す簡潔な訳が思いつかない。「もしかしてあなたの欲しい(あるいは欲しかった)のは」じゃあまりに直訳すぎて日本語らしくない。


[ruby-core:61999]
by Martin Durst

チケット題名の typo 修正。


#9453

attr 等が定義したメソッド名のメソッドを返してほしい


[ruby-core:61997]
by Yukihiro Matsumoto

Module#private がメソッド名の配列を受け付けるようにするっていうのはいいアイデアだと思うけどそれはまた別の話だよね、とのこと。


#9657

bigdecimal/util.rb の Float#to_d で SEGV


[ruby-core:62001]
by Dieter Komendera

(2.2 より前のバージョンで修正が動かない、とのコメントを受けて)Bigdecimal って個別の gem でリリースされてたはずだから、2.2 より先にリリース出来るんじゃないの?とのこと。

このコメントから考えるとやっぱり「2.2 未満で修正が動かない」ではなく「修正は 2.2 未満には入っていない」と読むべきだった気がしてきた。

ruby-ML ななめ読む [ruby-dev:48101-48106] / [ruby-core:61949-61996]

2014/4/12 11:37:51

50 メール超えはきつい。もう「眠いから明日の朝でいいや」とかいいません……と思ったら重複チケットとその reject で数が膨らんでたみたいです。しかしそれを抜いても多い。
トムソーヤさんが棚卸しのごとくコメントをしていくさまが印象的。

[ruby-dev:48101] by Nobuyoshi Nakada:#9727
[ruby-dev:48102] by Nobuyoshi Nakada:#9727
[ruby-dev:48103] by 三村 益隆 :#9729
[ruby-dev:48104] by Nobuyoshi Nakada:#9646
[ruby-dev:48105] by Nobuyoshi Nakada:#9729
[ruby-dev:48106] by Nobuyoshi Nakada:#9729
[ruby-core:61949] by Charles Nutter:#9725
[ruby-core:61950] by Vladimir Smelyansky:#9726
[ruby-core:61951] by Nobuyoshi Nakada:#9722
[ruby-core:61952] by Nobuyoshi Nakada:#9669
[ruby-core:61953] by Nobuyoshi Nakada:#9722
[ruby-core:61954] by Nobuyoshi Nakada:#9721
[ruby-core:61955] by Nobuyoshi Nakada:#9721
[ruby-core:61956] by Abinoam P. Marques Jr.:#9594
[ruby-core:61957] by Nobuyoshi Nakada:#9721
[ruby-core:61958] by James Ferguson:#9505
[ruby-core:61959] by Tsuyoshi Sawada:#9728
[ruby-core:61960] by Zeke Fast:#9723
[ruby-core:61961] by Yui NARUSE:#9712
[ruby-core:61962] by Vit Ondruch:#9711
[ruby-core:61963] by Heesob Park:#9728
[ruby-core:61964] by Swati Ray Dey:#9730
[ruby-core:61965] by Mario Maia:#9716
[ruby-core:61966] by Konstantinos Karachalios:#9731
[ruby-core:61967] by Konstantinos Karachalios:#9732
[ruby-core:61968] by Konstantinos Karachalios:#9733
[ruby-core:61969] by Konstantinos Karachalios:#9734
[ruby-core:61970] by Konstantinos Karachalios:#9735
[ruby-core:61971] by Konstantinos Karachalios:#9733
[ruby-core:61972] by Konstantinos Karachalios:#9733
[ruby-core:61973] by Konstantinos Karachalios:#9733
[ruby-core:61974] by jahongir alimov:#9736
[ruby-core:61975] by Yusuke Endoh:#9732
[ruby-core:61976] by Yusuke Endoh:#9731
[ruby-core:61977] by Yusuke Endoh:#9732
[ruby-core:61978] by Yusuke Endoh:#9733
[ruby-core:61979] by Yusuke Endoh:#9731
[ruby-core:61980] by Yusuke Endoh:#9733
[ruby-core:61981] by Yusuke Endoh:#9734
[ruby-core:61982] by Yusuke Endoh:#9731
[ruby-core:61983] by Yusuke Endoh:#9734
[ruby-core:61984] by Yusuke Endoh:#9735
[ruby-core:61985] by Yusuke Endoh:#9731
[ruby-core:61986] by Yusuke Endoh:#9735
[ruby-core:61987] by Rafael Franca:#9731
[ruby-core:61988] by Yukihiro Matsumoto:#9731
[ruby-core:61989] by Thomas Sawyer:#9379
[ruby-core:61990] by Thomas Sawyer:#8707
[ruby-core:61991] by Thomas Sawyer:#9443
[ruby-core:61992] by Thomas Sawyer:#9557
[ruby-core:61993] by Thomas Sawyer:#9565
[ruby-core:61994] by Thomas Sawyer:#9625
[ruby-core:61995] by Thomas Sawyer:#9453
[ruby-core:61996] by Rafael Franca:#9731


#8707

Hash#reverse_each


[ruby-core:61990]
by Thomas Sawyer

Enumerator って #reverse できるの?とのこと。

素数生成器とか円周率生成器とか reverse したらどうなるんですかね。


#9379

Support for using libxml-ruby as XML parser in xmlrpc-libs


[ruby-core:61989]
by Thomas Sawyer

とてもよさげだね、Nokogiri 対応もできるかもね、必要ないときは REXML をロードすらしないっていうのはどうかな、とのこと。


#9443

prepend しても alias されたメソッドはそのまま呼び出せてしまう


[ruby-core:61991]
by Thomas Sawyer

alias って Ruby ではコピーするだけだけど、同じ定義を複数の名前で参照するような本当の alias があるといいよね、とのこと。

ユースケースが思いつかない。破壊的操作して「ぎゃっ」となることのほうが多い気がする。


#9453

attr 等が定義したメソッド名のメソッドを返してほしい


[ruby-core:61995]
by Thomas Sawyer

private が配列を受け付けるようにするほうが private_attr_writer だの protected_attr_accessor だのをごちゃごちゃ追加するよりよさげだけどなあ、とのこと。


#9505

RSpec で subject { subject.new(double) } とか無限再帰させると SEGV


[ruby-core:61958]
by James Ferguson

相互参照した double で再現したよ、2.1.1-p76 でも同じだよ、とのこと。


#9557

Enumerator#next と Enumerator#peek にオプション引数をつけたい


[ruby-core:61992]
by Thomas Sawyer

(トムソーヤさんがメンテしている Ruby Facets の)Indexable を使うといいかもね、とのこと。


#9565

(const|class_variable|instance_variable)_(defined?|get|set) を統一したい


[ruby-core:61993]
by Thomas Sawyer

覚えるメソッドが少なくなるのはいいことだよ、あとグローバル変数操作も含めて欲しいよ、でも名前は token よりいいものがあるんじゃないかな、とのこと。


#9594

2.1.1 で Rails アプリに debugger でブレークかけて cont すると SEGV


[ruby-core:61956]
by Abinoam P. Marques Jr.

debugger のページに SEGV の件とか Ruby 2.0.0 非対応とかRuby 2.0.0 対応メンテナの登場とかがあるね、とのこと。

まだリンクあったけどこれ以上貼っても意味なさそうなので省略。


#9625

パス追加用に `Pathname#/` が欲しい


[ruby-core:61994]
by Thomas Sawyer

これは手間いらずでいいね、とのこと。

no-brainer ってなんか否定的なニュアンスを感じるけど無視。


#9646

Hash#each で無限ループ


[ruby-dev:48104]
by Nobuyoshi Nakada

チケット操作。重複チケットに #9729 を追加。


#9669

Ruby 2.1 で初期値のないキーワード引数を括弧なしで扱えない


[ruby-core:61952]
by Nobuyoshi Nakada

チケット操作。重複チケットに #9722 を追加。


#9711

test-unit と minitest を添付から外したい


[ruby-core:61962]
by Vit Ondruch

提案を心底支持するよ、とのこと。


#9712

Dir.entries で Unicode 文字が?(はてなマーク)に化ける


[ruby-core:61961]
by Yui NARUSE

チケット操作。バックポート対象から 2.0.0, 2.1 ともに除外。(ファイルシステムエンコーディングを使っているのか、という疑問を受けて)そうだよ、とのこと。
(Windows のファイル操作はすべて Unicode でやるべきでは、という提案を受けて)Ruby 内部でまだ W バージョン(Win32API 関数のワイド文字版)に切り替わってない部分があって、ユーザスクリプトでもそれを期待したコードが溢れかえってるよ、いつかは切り替わるべきだけどもまだそうはなってないよ、とのこと。

バックポートの全 DONTNEED 設定は、「入れるのは(バックポートメンテナ的には)ご自由にだけど新機能扱いね」という意思表示と解釈しました。


#9716

FileTest.exist? がパスを展開してくれない


[ruby-core:61965]
by Mario Maia

(~ で始まるファイルのことを考えるとパス展開すべきでない、とのコメントを受けて)なるほどそれは考えなかったよ、すると FileTest でなく #expand_path のバグだね、ちょっと試してみたけど ~/~derp_folder~/~derp は展開するのに ~derp は展開しなかったよ、とのこと。
(いちいち先頭の ~ を ./~ で置き換えたいのか、というコメントを受けて)そうしたいってこともないけどそれでも動くよね、やるとしたら Filetest でなく expand_path の中でだけどね、でもこれだとうまくいかないこともあるから sub のパターンは調整が必要だね、ところで expand_path の問題なわけでチケット変えたほうがいいかな、とのこと。


#9721

2.1.1 で super: no superclass method と言われる


[ruby-core:61954]
by Nobuyoshi Nakada

チケット操作。Markdown 修正。カテゴリを core にセット、対象を 2.2.0 に、2.0.0 と 2.1 をバックポート対象に。


[ruby-core:61955]
by Nobuyoshi Nakada

チケット操作。しかし 違いがわからず


[ruby-core:61957]
by Nobuyoshi Nakada

クローズコミット。


#9722

複数のキーワード引数が扱えない


[ruby-core:61951]
by Nobuyoshi Nakada

チケット操作。重複チケットに #9669 を追加。


[ruby-core:61953]
by Nobuyoshi Nakada

チケット操作。クローズ(#9669 で修正済みのため)、Markdown 修正、バックポートを 2.0.0 除外・2.1 対象に。


#9723

#size が lazy enumerator に作用してくれない


[ruby-core:61960]
by Zeke Fast

(size は lazy に動くから count 使って、というコメントを受けて)ありがとう、とのこと。


#9725
(新規)
verbose 以外で NameError での inspect を止めたい


[ruby-core:61949]
by Charles Nutter

NameError の表示でオブジェクトを inspect すようとするけど、inspect が馬鹿でかくてメモリエラーになるってレポートが JRuby によくくるよ、inspect するのは verbose モードでだけにしたらどうかな、とのこと。

元チケットには背景・問題とその解決法が書かれていますので詳しく知りたい方はどうぞ。JRuby がーってだけだと説得材料が弱い気がするので、MRI でもこんなとき困るよっていう事例があるとよさげなんですが。


#9726
(新規)
Proc のパースがおかしい


[ruby-core:61950]
by Vladimir Smelyansky

メソッドと括弧の間に空白があると、たとえば proc_issue (Proc.new do |n| end) などとすると構文エラーになるよ、do ? end でなく { ? } にすると動作するよ、とのこと。

{ ? } で動作するほうの挙動がバグな気がする。


#9727
(新規)
Array#reject の中に callcc しようとすると異常終了


[ruby-dev:48101]
by Nobuyoshi Nakada

2.0.0 と 2.1 をバックポート対象にして起票。一旦終わった Array#reject のブロック内に callcc でジャンプすると異常終了するよ、とのこと。


[ruby-dev:48102]
by Nobuyoshi Nakada

クローズコミット。

つまるところ、コミット前のバックポート用覚書的なチケット。


#9728
(新規)
/(?!^a).*b/ が “ab” にマッチしない


[ruby-core:61959]
by Tsuyoshi Sawada

StackOverflow にあるように、”ab” =~ /(?!^a).*b/ が nil になるよ、”ab” =~ /(?!^a).?b/ ならマッチするよ、1.9.3 では起きないよ、とのこと。


[ruby-core:61963]
by Heesob Park

ONIG_DONT_OPTIMIZE が関係してるっぽいよ、1.9.3 でも定義すれば起きるし、trunk でも外せば起きないよ、とのこと。


#9729
(新規)
Hash#each が無限ループする(原文ママ)


[ruby-dev:48103]
by 三村 益隆

h = {}; h[[]] = 1; h.keys[0] << 1; h[[]] = 1; h.keys[1] << 1; h.each { 1 } とすると無限ループになるよ、1.9.3-p545 だと起きないよ、とのこと。


[ruby-dev:48105]
by Nobuyoshi Nakada

チケット操作。重複チケットに #9646 を追加。


[ruby-dev:48106]
by Nobuyoshi Nakada

チケット操作。担当者を樽家さんに。

コミットしちゃいなよ、という無言の圧力。


#9730
(新規)
webrick/server.rb で SEGV


[ruby-core:61964]
by Swati Ray Dey

ruby 1.9.3p484 on i386-mingw32(ただし SysWOW64)で、webrick/server.rb 98 行目の select 呼び出し中に SEGV したよ、とのこと。.so 含む gem は watir-classic-4.0.1、sqlite3-1.3.9-x86-mingw32、ffi-1.9.0-x86-mingw32 ぐらいの模様。

あれ、fiddle 読んでても ffi gem って使うんでしたっけ。よくわからない。


#9731
(新規)
Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い


[ruby-core:61966]
by Konstantinos Karachalios

Rails のページで言われているように、キーワード引数を受け付けるところに rails の HashWithIndifferentAccess を渡しても動作してくれないよ、symbolize_keys してやれば一応動くよ、とのこと。


[ruby-core:61976]
by Yusuke Endoh

重複チケットに #9732 を追加。


[ruby-core:61979]
by Yusuke Endoh

重複チケットに #9733 を追加。


[ruby-core:61982]
by Yusuke Endoh

重複チケットに #9734 を追加。


[ruby-core:61985]
by Yusuke Endoh

重複チケットに #9735 を追加。


[ruby-core:61987]
by Rafael Franca

HashWithIndifferentAccess の問題じゃなく、文字列キーのハッシュがキーワード引数にマッチしない問題だってことを明らかにしておくよ、とのこと。


[ruby-core:61988]
by Yukihiro Matsumoto

提案は受け入れられないよ、キーワードに文字列を使わなければいいよ、ActiveSupport とかが文字列キーをシンボルキーに変換するようなメソッドを追加するのも策かもね、とのこと。


[ruby-core:61996]
by Rafael Franca

そうだねキーワード引数が文字列を受け付けてほしいとは思わないよ、でも Rails 固有の問題じゃなくて文字列キーのハッシュ全般の問題だとは言っておくよ、(シンボル GC が入った)2.2 だけがサポート対象になったらシンボルキーに移行するつもりだけどそれまでは DDoS 対策でそうしないよ、どうしてものときは symbolize_keys したらいいよ、とのこと。

言ってることはわかるんだけど、じゃあ何で rails 側の issue で “I recommend to report this to Ruby itself” なんて言ったのかがわからない。


#9732
(新規)
Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い(重複チケット)


[ruby-core:61967]
by Konstantinos Karachalios

#9731 の重複。

ここからしばらく重複なので、次のチケットまで読み飛ばし推奨。


[ruby-core:61975]
by Yusuke Endoh

重複チケットに #9731 を追加。


[ruby-core:61977]
by Yusuke Endoh

Reject。


#9733
(新規)
Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い(重複チケット)


[ruby-core:61968]
by Konstantinos Karachalios

#9731 の重複。


[ruby-core:61971]
by Konstantinos Karachalios

サーバータイムアウトで多重投稿しちゃったよ、とのこと。


[ruby-core:61972]
by Konstantinos Karachalios

[ruby-core:61971] の重複。


[ruby-core:61973]
by Konstantinos Karachalios

[ruby-core:61971] の重複。


[ruby-core:61978]
by Yusuke Endoh

重複チケットに #9731 を追加。


[ruby-core:61980]
by Yusuke Endoh

Reject。


#9734
(新規)
Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い(重複チケット)


[ruby-core:61969]
by Konstantinos Karachalios

#9731 の重複。


[ruby-core:61981]
by Yusuke Endoh

重複チケットに #9731 を追加。


[ruby-core:61983]
by Yusuke Endoh

Reject。


#9735
(新規)
Rails の HashWithIndifferentAccess とキーワード引数との食い合わせが悪い(重複チケット)


[ruby-core:61970]
by Konstantinos Karachalios

#9731 の重複。


[ruby-core:61984]
by Yusuke Endoh

重複チケットに #9731 を追加。


[ruby-core:61986]
by Yusuke Endoh

Reject。

重複ここまで。


#9736
(新規)
自前 rails アプリで SEGV


[ruby-core:61974]
by jahongir alimov

rails アプリ on rails-3.2.12 on 1.9.3p448 で SEGV したよ、ログ添付するよ、とのこと。
ログを見ると、therubyracer-0.10.2/lib/v8/portal/proxies.rb の @js2rb.delete(js) という行の Hash#delete 呼び出しから st_lookup() の if ((st_data_t)table->bins[i*2] == key) { なる行に辿り着いたところで SEGV のようです。

table と bins と num_entries のいずれかが壊れている、ということかな?いろいろ .so 読んでるからマーク忘れとか多重 free とかいろいろ考えられるけれども。

フォロー

新しい投稿をメールで受信しましょう。

現在145人フォロワーがいます。