コンテンツへ移動

ruby-ML ななめ読む [ruby-dev:48177-48178] / [ruby-core:62417-62444]

2014/5/7 23:46:39

いつもどおりの件数のはずなのに二時間近くかかった。おかしい。
(2014/05/08 追記)そのうえ数的にも内容的にも過去最高レベルで間違っていた。(頭が)おかしい。

[ruby-dev:48177] by Nobuyoshi Nakada:#9811
[ruby-dev:48178] by Nobuyoshi Nakada:#9811
[ruby-core:62417] by Akira Tanaka:#5328
[ruby-core:62418] by Akira Tanaka:#5828
[ruby-core:62419] by Nobuyoshi Nakada:#9344
[ruby-core:62420] by Ilya Vorontsov:#9808
[ruby-core:62421] by Nobuyoshi Nakada:#9019
[ruby-core:62422] by Nobuyoshi Nakada:#9038
[ruby-core:62423] by Nobuyoshi Nakada:#9486
[ruby-core:62424] by Nobuyoshi Nakada:#9808
[ruby-core:62425] by Myron Marston:#5328
[ruby-core:62426] by Ben Zhu:#9809
[ruby-core:62427] by Ben Zhu:#9809
[ruby-core:62428] by Richard Schneeman:#9777
[ruby-core:62429] by Andrew Vit:#9809
[ruby-core:62430] by Brian Shirai:#9810
[ruby-core:62431] by Charles Leu:#9806
[ruby-core:62432] by Andrew Grimm:#5828
[ruby-core:62433] by Akira Tanaka:#5328
[ruby-core:62434] by Nobuyoshi Nakada:#9777
[ruby-core:62435] by Yukihiro Matsumoto:#9809
[ruby-core:62436] by Nobuyoshi Nakada:#9809
[ruby-core:62437] by Nobuyoshi Nakada:#9372
[ruby-core:62438] by Nobuyoshi Nakada:#9372
[ruby-core:62439] by Martin Durst:#9807
[ruby-core:62440] by Nobuyoshi Nakada:#6074
[ruby-core:62441] by Nobuyoshi Nakada:#6074
[ruby-core:62442] by Myron Marston:#5328
[ruby-core:62443] by Heesob Park:#9677
[ruby-core:62444] by Akinori MUSHA:#9760


#5328

instance_exec/class_exec 内で引数展開がおかしい


[ruby-core:62417]
by Akira Tanaka

1.9 でブロックの引数の挙動が変わっているよ、lambda でないブロックの引数は必ず一つの配列に展開されるよ、もしメソッドと同じ振る舞いを期待するなら lambda を使ってね、とのこと。

このへんすっごい面倒くさいのを覚えています。test/ruby/test_* にいろいろとあるので興味がある方はそちらをどうぞ。


[ruby-core:62425]
by Myron Marston

説明どうも、Ruby 開発を何年もフォローしていて初めて proc と lambda のその違いを聞いてちょっと驚いたよ(return とか引数の個数の厳格さとかは知ってるよ)、直感的でないよ、以前に(この変更について)議論があったなら読んでみたいよ、とのこと。


[ruby-core:62433]
by Akira Tanaka

ドキュメントがいくつかあったのを覚えてるよ、Proc#lambda? のドキュメントとか、[ruby-core:47453] の「yield で引数展開すると展開されすぎる」のスレッド(Markdown になってないから b.r-l.o で読むのはおすすめしないよ)とか、日本語だけど [ruby-dev:38795] とかがあるよ、とのこと。
あとさっき「必ず一つの配列に展開される」って言ったけど間違いだよ、展開はブロック引数の形によるよ、とのこと。


[ruby-core:62442]
by Myron Marston

ありがとう、まだこんがらがってはいるけどとても助かったよ、とのこと。


#5828

無名でないクラスに freeze して clone すると inspect できなくなる


[ruby-core:62418]
by Akira Tanaka

フィードバック待ち。無名クラスの名前は初回の inspect のときにキャッシュされるよ、キャッシュは(内部的には)クラスの隠れインスタンス変数なので、クラスが freeze されるとこの変数に代入が出来ずキャッシュに失敗するよ、Module#freeze は freeze 前に名前をキャッシュするから clone しなければ例外は出ないけど、clone は再定義されてないので例外回避の仕組みはないよ、直すほどの価値があるかはわからないよ、とのこと。

へー勉強になる。でも MyClass.freeze.clone なら clone 前にキャッシュされてるんだからクローン先にもコピーされるのでは?隠れ変数だから引き継がれない?気がむいたら読んでみましょう。と思っていたら補足いただきました。なるほどねえ。


[ruby-core:62432]
by Andrew Grimm

クラスを freeze して clone することなんてないからチケット閉じちゃっていいよ、とのこと。


#6074

alias の区切りにコンマを入れるのを許してほしい


[ruby-core:62440]
by Nobuyoshi Nakada

サルベージして pull request したよ、とのこと。


[ruby-core:62441]
by Nobuyoshi Nakada

Markdown 修正。

最近、なかださんの description update だと無条件で「Markdown 修正」って書いてしまう。その後リンク先に飛んで確認してます。


#9019

EUC-KR と EUC-JP が動いてないっぽい


[ruby-core:62421]
by Nobuyoshi Nakada

Reject、Markdown 修正。


#9038

instance_eval に分光構文エラーな文字列を渡すと RuntimeError になる

指摘頂いたので修正。


[ruby-core:62422]
by Nobuyoshi Nakada

Markdown 修正。


#9344

正規表現の警告が示す行番号がおかしい


[ruby-core:62419]
by Nobuyoshi Nakada

Markdown 修正、カテゴリを「正規表現」、担当者を鬼雲作者の高田さんに、対象バージョンを 2.2.0 に、1.9.3・2.0.0・2.1 をバックポート対象に。


#9372

Date#cweek が 2013-12-30 に対して正しくない


[ruby-core:62437]
by Nobuyoshi Nakada

重複するチケットに #9809 を追加。


[ruby-core:62438]
by Nobuyoshi Nakada

FAQ なので例を(ドキュメントに)つけるのがよさそうだよ、とのこと。


#9486

Kernel#local_variables に同じブロックローカル引数が重複して出てくる


[ruby-core:62423]
by Nobuyoshi Nakada

クローズコミット。


#9677

OpenSSL::PKey::EC#to_text で SEGV


[ruby-core:62443]
by Heesob Park

public_key がセットされていない時に SEGV するのを見つけたよ、パッチ書いたよ、とのこと。


#9760

mkmf で、システムライブラリがあるときに(同名の)カスタムライブラリを指定できない


[ruby-core:62444]
by Akinori MUSHA

そうこうしてたら別の人たちがモンキーパッチ作ってたそれ(リリース)までの間はモンキーパッチでも回避できるよ、とのこと。

指摘頂いてまったく文を読めていなかったことがわかったので全面的に修正。


#9777

Proc#to_lambda の提案


[ruby-core:62428]
by Richard Schneeman

他にも proc を lambda に変換する理由として引数の厳格なチェックがあるよ、とのこと。


[ruby-core:62434]
by Nobuyoshi Nakada

ユーザが proc として書きたいときには例外は上がってほしくないんじゃないかな、とのこと。


#9806

URI#encode が ‘[‘ と ‘]’ をエンコードしてくれない


[ruby-core:62431]
by Charles Leu

追記するよ、RFC 2396 の 2.4.3 には「URI として適切に表すために除外文字データはエスケープされなければならない」とあるよ、RFC 2396 の 2.2 にある予約文字と URI::REGEXP::PATTERN を比較すると後者に ‘[‘ と ‘]’ が余分に含まれているよ、これを除くと正しくエンコードされるっぽいよ、とのこと。

他にも言えることですが、この項特に意訳してます。


#9807

String.new をブロック付きで呼び出したい


[ruby-core:62439]
by Martin Durst

同じく、String.new(“foobar”) というかいっそ “foobar” とどう違うのか例を見たいよ、(Array#join や tap を減らすことができる、とのコメントを受けて)空白文字をブロックに渡すのはミスリードだと思うよ、別のブロック引数を使うのがわかりやすいと思うよ、とのこと。

うーん自分で書いてて何を言ってるのかわからない。


#9808
(新規)
Enumerable#argmin_by と #argmax_by の提案


[ruby-core:62420]
by Ilya Vorontsov

Enumerable#argmin_by (と #argmax_by) を追加するのはどうかな、ユースケースは数学的な問題から一般的なタスクまで幅広いよ、(1..2).step(0.01).argmin_by{|x| Math.sin(x)*x} とか queues = [[],[],[],[]]; …; least_busy_queue = queues.argmin_by{|queue| queues.size } とかできるよ、とのこと。


[ruby-core:62424]
by Nobuyoshi Nakada

Markdown 修正、フィードバック待ち。これが何なのか説明してくれるかな、とのこと。


#9809
(新規)
Date.new(2000, 1, 1).cweek は 1 になるべき


[ruby-core:62426]
by Ben Zhu

Date.new(2000,1,1).cweek が 52 を返すよ、2.1.1 で確かめたよ、とのこと。


[ruby-core:62427]
by Ben Zhu

#9372 を見たよ、バグじゃないならチケット閉じてくれて構わないよ、とのこと。


[ruby-core:62429]
by Andrew Vit

正しい動作みたいだよ、#9372 から引用すると「カレンダー上の月曜から始まる 7 日を一区切りとするよ、年の最初の cweek はその年の最初の火曜木曜を含む週だよ」らしいよ、とのこと。

うわあ訳わからん。わからんついでに間違っていたのを指摘頂いたので修正。


[ruby-core:62435]
by Yukihiro Matsumoto

クローズ。


[ruby-core:62436]
by Nobuyoshi Nakada

重複するチケットに #9372 を追加。


#9810
(新規)
Numeric#step に浮動小数点数と文字列を渡すとドキュメントと違う動きをする


[ruby-core:62430]
by Brian Shirai

Numeric#step のドキュメントに「引数に浮動小数点数が含まれるとすべての引数が浮動小数点数に変換される」と書いてあるよ、1.1.step(5.1, “1”) {} が 2.0.0 だと no implicit conversion の TypeError だったのに 2.1.1 だと comparison of String with 0 の ArgumentError になるけど意図的なの?とのこと。


#9811
(新規)
Numeric#step にキーワード引数を与えると to 引数を無視する


[ruby-dev:48177]
by Nobuyoshi Nakada

Numeric#step にキーワード引数を与えると、終了値を無視するようになる上に無効なキーワード引数でもエラーにならないよ、とのこと。


[ruby-dev:48178]
by Nobuyoshi Nakada

クローズコミット。

広告
No comments yet

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。